一、目标
几种剧本中使用变量的方式
二、实例
1.在剧本中定义参数,且在剧本中使用参数
- # 给目标主机组zabbix_agent执行操作
- - hosts: zabbix_agent
- # 剧本以root身份执行
- user: root
- # 在剧本中定义参数,变量叫xuser,值是user1
- vars:
- - xuser: "user1"
- tasks:
- - name: create user to system by kahn
- # user模块、present是添加,absent是删除{{ xuser }}调用上面定义的参数
- user: name={{ xuser }} state=present
2.在ansible主机组中给每个主机定义参数
2-1.编辑/etc/ansible/hosts,在每个主机后面定义上相应的参数,如:
- [zabbix_agent]
- 10.100.100.30 xuser="userA"
- 10.100.100.40 xuser="userB"
2-2.写剧本调用参数
- # 给目标主机组zabbix_agent执行操作
- - hosts: zabbix_agent
- # 剧本以root身份执行
- user: root
- tasks:
- - name: create user to system by kahn
- # user模块、present是添加,absent是删除{{ xuser }}调用别的地方定义的参数
- user: name={{ xuser }} state=present
2-3.执行脚本,看效果
3.在ansible主机组中创建组级别的变量
3-1.编辑/etc/ansible/hosts,为主机组[zabbix_agent]创建组级别的变量,在配置中新增一行[zabbix_agent:vars],然后在它下面写上变量kv。如下图
格式:
[主机组名:vars]
变量key="变量值value"
3-2.剧本同上不变
3-3.执行剧本看效果