--list-host查看主机列表
··········
--limit ip 只对这个主机执行
·········
-vvvv 查看详细信息
·········
-C 测试
·······
notify通知
handlers触发
有变动想改变
·········
tags:跟在action后面使用,标签
命令行调用为ansible-playbook -t tagsname xx.yml
多个标签用,隔开
多个action可以共用一个标签
·········
{{ 变量名 }}
命令行赋值可以用-e ‘变量名=xxx‘
多个变量用空格隔开
··········
在playbook中直接定义变量
vars:
···········
变量还可以在hosts文件定义
跟在ip后面直接定义
还可以
[组名:vars]
直接定义
优先级是命令行大于单个主机大于组定义
············
变量还可以是一个单独的文件
vars_files:
playbook里这么调用
········
[root@ansible ansible-test]# cat vars.yml
var1: ding
文件里面这么设置变量
·········
template模板
模板里也可以引用变量
既有通用性也有灵活性
·········
when语句可以做控制
·········
{{ item }}
with_items:
迭代
···········
{{ item.name }} {{ item.banji }}
with_items:
-- { ‘name‘: ‘ding‘,‘banji‘:‘3‘}
迭代嵌套
··········
ports: 列表 可以是字符串也可以是字典
x - ‘x1‘:‘1‘
{% endfor %}
············
{% for i in ports %}
{% if x is defiend %} 循环里嵌套判断
{% endif %}
{% endfor%}
roles/
├── httpd
├── memcache
├── mysql
└── nginx
├── tasks
│?? ├── group.yml
│?? ├── main.yml
│?? ├── restart.yml
│?? ├── service.yml
│?? ├── templ.yml
│?? ├── user.yml
│?? └── yum.yml
└── templates
└── nginx.conf.j2
roles角色,可以将多个要做的事分开,主配playbook里只需调用即可
- hosts: 192.168.3.61
remote_user: root
roles:
- role: nginx
原文:https://blog.51cto.com/13293172/2412944