ansible -i /home/admin/hosts
-i 指定本地的hosts主机清单文件
如果不使用 -i 指定hosts 默认会去用 /etc/ansible/hosts清单文件
ansible -f 10
-f 指的是并发数,表示同时返回10台受控主机命令的结果 需要根据实际情况调整参数值提高ansible执行命令的并发度
ansible -m yum -a "name=httpd state=latest"
-m 指定调用的ansible模块
-a 表示给调用的模块传递的参数
主机别名
[webserver]
nginx 192.168.1.1
mysql 192.168.1.2
ansible以别名的方式来对受控端进行区分,IP地址太多的时候分不清各个IP的用途
命令模块
command shell 模块本质上执行的都是基础命令 默认是执行command模块
command模块 不支持管道类型的命令
shell模块 支持管道shell命令
理论上ansible -m shell 可以执行任何远程命令操作,但是多次调用ansible -m shell命令的时候,ansible并不会判断是否重复在执行.而其他模块是可以先判断是否在重复操作。
安装模块
yum模块
state字段
absent 移除卸载指定包
present 正常安装包
latest 安装最新版本的包
配置模块
copy模块
受控端主机必须存在相应的目录和文件,并且可以设置相应的文件权限和属主和属组.
1.把控制端的一个被修改的文件推送到所有被控端的主机上
ansible appserver -m copy -a "src=/home/admin/a.conf dest=/etc/a.conf owner=root group=root mode=777 backup=yes"
2.copy模块写入内容到远程主机的一个文件中
ansible appserver -m copy -a "content=helloword dest=/etc/a.conf"
file模块
file模块和copy模块最大的不同是,copy模块只能拷贝和创建文件.file模块是为了创建和递归授权远程目录,而不是拷贝文件
ansible apperserver -m file -a "path=/etc/ owner=admin group=admin mode=777 recurse=yes"
state字段
touch 表示创建一个新文件
directory 表示创建一个新的目录
get_url模块
从网络上下载对应的文件下载到被控端的主机上
ansible appserver -m get_url -a "url=http://www.baidu/index.html dest=/etc/index.html checksum=md5:7be4568"
url参数可以使用http,https,ftp等协议
checksum参数可以检查网络文件是否被修改过
服务管理模块
service模块
ansible appserver -m service -a "name=httpd state=started enabled=yes"
用户管理模块
user模块
创建和删除用户
group模块
创建和删除用户组
定时任务模块
挂载模块
mount
防火墙模块
selinux
firewalld
原文:https://www.cnblogs.com/yxh168/p/14771069.html