1、安装ansible
yum install ansible
2、添加主机,修改/etc/ansible/hosts
3、不检查是否曾登录过,修改/etc/ansible/ansible.cfg
host_key_check 检查host_key,建议设置为false
4、log_path =/var/log/ansible.log #输出日志
5、语法:并集、交集
并集: group1:group2
交集,要加引号 : 'group1:&group2'
在group1不在group2中 : 'group1:!group2'
6、推送ssh-key
生成key : ssh-keygen
推送key : ssh-copy-id {ipAddress}
7、command 模块对特殊字符支持度不高,如$、重定向符号(>)、管道符号(|)
8、command 模块可以用shell模块替换
9、fetch 从远程获取文件到本地ansible控制主机
copy 本地ansible控制主机推送文件到远程
10、script 执行脚本
11、service 用于管理服务 重启,修改配置等
12、user 管理用户
group 管理组
13、hostname 管理主机名
14、file 管理文件的
15、ansible-galaxy 下载roles
显示所有本地剧本 ansible-galaxy list [juben]
安装 ansible-galaxy install 剧本
删除 ansible-galaxy remove 剧本
16、ansible-pull 推送命令到远程
17、ansible-playbook {剧本} 运行剧本
ansible-playbook -C {剧本} 测试剧本语法
ansible-playbook {剧本} --check 测试剧本语法
18、ansible-vault encrypt 剧本名 加密剧本
ansible-vault decrypt 剧本名 解密剧本
ansible-vault edit 剧本名 编辑加密的剧本
ansible-vault view 剧本名 查看加密的剧本
ansible-vault rekey 剧本名 修改剧本加密密码
19、handler
与task并列
notify:监听task中的一个action动作
20、tags:定义后,可单独执行tags所在的命令
多个动作可以公用一个标签
21、ansible-playbook httpd.yml --list-tags 查看标签
22、ansible-playbook -t tagname ymlNamel 选择性执行标签内容
23、查询一个包是否被安装 # rpm -q < rpm package name>
24、变量:
命令行指定变量
ansible-playbook -e "xxx=xxxx" 剧本名
在playbook中声明变量
vars:
- var1: xxx
- var2: xxx
在hosts文件中定义
普通变量>公用变量
普通变量 放在 主机ip后, 如192.168.8.0.130 http_port=80
公共变量为单独模块
[groupName:vars]
var1=xxx
var2=xxx
25、在ansible-playbook中使用循环 with_items
26、在template中使用循环与判断
{% for i in elements %}
{% endfor %}
{% if xxx is defined %}
{% endif %}