回顾:
Ansible:
无需客户端程序
只要有SSH
模块化

ansible帮助工具
ansible-doc 模块名
ansible-doc 模块名 -s 列出该模块的所有选项
ansible-doc -l 列出所有模块

6.group组模块

- gid
设置组id
= name
需要管理的组名
- state
执行状态,absent 删除
present 创建(默认) 例1:创建组名www,并设置gid为666
[root@m01 ~]# ansible oldboy -m group -a "name=www gid=666" 例2:修改ww组的gid为888
[root@m01 ~]# ansible oldboy -m group -a "name=www gid=888" 例3:删除www组
[root@m01 ~]# ansible oldboy -m group -a "name=www gid=888 state=absent"

7.user用户模块

= name
用户名
- uid
uid
- group
gid或groupname
- state
执行状态,absent 删除
present 创建(默认)
- shell
登录shell,/bin/bash(默认),/sbin/nologin
- create_home
创建用户时,是否创建家目录
- password
用户密码,不能使用明文,需要使用openssl加密后的密码
例1:创建一个用户oldboy,指定uid ,gid ,并设置密码为123
注意:password不能使用明文,需要加密,password的加密值需使用双引号
# -1使用MD5进行加密 -stdin 非交互式
[root@m01 ~]# echo "" | openssl passwd - -stdin
$$ByoqasKh$lGSK41WgqAYJ/Ha9K3Yd00
[root@m01 ~]# ansible oldboy -m user -a 'name=oldboy uid=6000 group=666 password="$1$ByoqasKh$lGSK41WgqAYJ/Ha9K3Yd00"' 例2:创建一个程序用户www,指定uid666 gid666 不让登录 不创建家目录
[root@m01 ~]# ansible oldboy -m user -a "name=www uid=666 group=www create_home=no shell=/sbin/nologin

8.file模块

= path
目标文件路径
copy模块的dest
其他模块的name
- src
源文件路径
- owner
属主
- group
属组
- mode
权限
- state
absent 删除
directory 创建目录
file 修改文件属性(默认)
touch 创建文件
link hard 链接
- recurse
递归
recurse=yes
例1:创建目录/data和/backup,属主666,属组666
[root@m01 ~]# ansible oldboy -m file -a "path=/data owner=666 group=666 recurse=yes state=directory"
[root@m01 ~]# ansible oldboy -m file -a "path=/backup owner=666 group=666 recurse=yes state=directory" 例2:创建文件/etc/rsync.passwd,权限600
[root@m01 ~]# ansible oldboy -m file -a "path=/etc/rsync.passwd mode=600 state=touch" 例3:对/etc/hosts做个软链接到/tmp/hosts
[root@m01 ~]# ansible oldboy -m file -a "src=/etc/hosts path=/tmp/hosts state=link" 总结:file模块仅适合创建目录,修改所属和权限,创建链接;除开这些操作的其他文件管理都通过copy模块实现

9.mount挂载模块

= path
挂载点
- src
需要挂载的设备
- fstype
挂在设备的文件系统
iso9660 光驱
ext4
xfs
nfs
cifs samba的共享文件系统
ntfs windows磁盘文件系统
- opts
挂载属性
noatime
noexec
nosuid
= state
挂载动作
present # 开机挂载,仅将挂载配置写入/etc/fstab
mounted # 挂载设备,并将配置写入/etc/fstab
unmounted # 卸载设备,不会清除/etc/fstab写入的配置
absent # 卸载设备,会清理/etc/fstab写入的配置

例1:通过nfs实现网络文件共享

)安装nfs
ansible nfs -m yum -a "name=nfs-utils state=installed"
)启动服务
ansible nfs -m service -a "name=rpcbind state=started"
ansible nfs -m service -a "name=nfs state=started"
)修改配置文件
方法一:在m01上创建配置文件,然后通过copy模块推送给nfs(建议使用)
mkdir -p /server/conf
echo '/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)' > /server/conf/exports
ansible nfs -m copy -a 'src=/server/conf/exports dest=/etc/'
方法二:在m01上直接使用copy模块,推送文件内容
ansible nfs -m copy -a 'content="/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" dest=/etc/exports'
)创建目录用户,并修改所属
ansible nfs -m group -a "name=www gid=666"
ansible nfs -m user -a "name=www uid=666 group=666 create_home=no shell=/sbin/nologin"
ansible nfs -m file -a "path=/data state=directory owner=666 group=666 recurse=yes"
)重载配置文件
ansible nfs -m shell -a "exportfs -arv" 或 ansible nfs -m service -a "name=nfs state=restarted"
ansible nfs -m shell -a "showmount -e"
)在web上挂载nfs的共享目录
ansible web -m yum -a "name=httpd state=installed"
ansible web -m service -a "name=httpd state=started"
ansible web -m mount -a "src=172.16.1.41:/data path=/var/www/html state=mounted fstype=nfs"
ansible nfs -m copy -a "content='xiao ming is your father' dest=/data/index.html"

10.script

).写个脚本,创建用户,并配置密码
[root@m01 scripts]# cat .sh
#!/bin/bash
useradd oldgirl
echo | passwd --stdin oldgirl &> /dev/null && echo 'create passwd success'
).运行脚本
ansible all -m script -a "/server/scripts/1.sh"

11.cron

- name
描述,必须要写,如果不写,默认为None,会导致无法指定删除某条计划任务
- job
任务,命令
- state
执行状态,absent 删除
present 创建(默认)
- minute
Minute when the job should run ( -, *, */, etc )
[Default: *]
- hour
Hour when the job should run ( -, *, */, etc )
[Default: *]
- day
Day of the month the job should run ( -, *, */, etc )
(Aliases: dom)[Default: *]
- weekday
Day of the week that the job should run ( - for Sunday-Saturday, *, etc
)(Aliases: dow)[Default: *]
- month
Month of the year the job should run ( -, *, */, etc )
[Default: *]
例子:每天的凌晨1点执行rsync_backup.sh
[root@m01 ~]# ansible all -m cron -a "name='Rsync backup' hour=1 minute=0 job='/bin/sh /server/scripts/rsync_backup.sh &> /dev/null'"

ansible批量部署模块(二)的更多相关文章

  1. Ansible批量部署工具

    Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...

  2. ansible 批量部署准备工作

    Ansible:自动化运维工具,基于Python开发 功能{ 批量系统配置 批量程序部署 批量运行命令等等 } 准备工作: 一.操作主机安装epel源 和 ansible工具 yum -y insta ...

  3. 利用ansible批量部署zabbix-agent

    应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...

  4. ansible批量部署(一)

    自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...

  5. ansible批量部署mysql

    1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/r ...

  6. ansible批量部署tomcat

    1.1 构建目录结构 此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~ mkdir -p /ansible/roles/{nginx,mysql,tomcat,d ...

  7. Ansible批量部署工具的安装

    1.系统安装gcc,以及python2.6以上(2.6.8): 第一种比较简单的安装方法: 1)直接yum install -y ansible; 2)然后更改配置,/etc/ansible/ansi ...

  8. ansible批量部署nginx

    1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz ...

  9. Ansible安装部署以及常用模块详解

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

随机推荐

  1. python的常用序列

    list1.list(obj)函数 obj可以为:元组(1,2,3),可迭代对象,字符串等转换换成数组类型2. 列表元素的添加 (1)list+[添加的元素] (2)list.append(添加元素) ...

  2. QSignalMapper is deprecated

    今天参考 qt4 的书籍,在 qt5 的平台上面,用了 QSignalMapper,结果收到警告" QSignalMapper is deprecated". 经过一番查找,找到了 ...

  3. POJ - 1127 Jack Straws(几何)

    题意:桌子上放着n根木棍,已知木棍两端的坐标.给定几对木棍,判断每对木棍是否相连.当两根木棍之间有公共点或可以通过相连的木棍间接的连在一起,则认为是相连的. 分析: 1.若线段i与j平行,且有部分重合 ...

  4. JZOJ-TGB817-SOL

    T1 题面 "封印大典启动,请出Nescafe魂珠!"随着圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上.封印台是一个树形 ...

  5. 安装adobe reader阅读器

    首先  在我的网盘里有那个软件. 安装的教程在这个歌网址:http://www.zhanshaoyi.com/6730.html

  6. echart曲线图标识最大值、最小值、平均值

    option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAx ...

  7. TextView和Button的学习

    常用属性,界面跳转,按钮学习,按压颜色的变换,图片的插入学习等 工程目录: MainActivity.java: package com.example.revrse; import androidx ...

  8. Java集合(一)——Collection

    集合概述 集合(Collections)是存储对象的容器.方便对多个对象的操作.存储对象,集合的作用就在这时显现了. 集合的出现就是为了持有对象.集合中可以存储任意类型的对象, 而且长度可变.在程序中 ...

  9. 深度学习在美团配送ETA预估中的探索与实践

    1.背景 ETA(Estimated Time of Arrival,“预计送达时间”),即用户下单后,配送人员在多长时间内将外卖送达到用户手中.送达时间预测的结果,将会以”预计送达时间”的形式,展现 ...

  10. vscode显示当前文件完整路径信息

    Code->Preferences->Settings 搜索window.title 原本是activeEditorShort,修改 activeEditorShort => act ...