Ansible怎么定义变量
- 通过
playbook
中的play
进行变量的定义
- 通过
inventory
主机清单进行变量定义
- 通过执行
playbook
的时候增加-e
选项进行定义
通过Playbook中的vars定义变量
- 在
Playbook
中通过写入vars
语法定义变量
- 通过
{{变量名}}
进行引用!
1 2 3 4 5 6 7 8 9 10
| - hosts: test remote_user: root vars: - httpd_package: httpd tasks: - name: Install DepencyEnvorment yum: name: {{httpd_package}} state: present update_cache: yes
|
通过定义变量文件进行使用
- 定义一个名字为
public_vars.yaml
的变量配置文件
1
| depence: ['openssl-devel','pcre-devel','zlib-devel']
|
注意: 当你引用了变量文件中的变量,请在读取变量的时候增加双引号""
1 2 3 4 5 6 7 8 9 10 11
| - hosts: test remote_user: root vars_files: - ./public_vars.yaml - ./public_vars2.yaml tasks: - name: "Install De" yum: name: "{{depence}}" state: present update_cache: no
|
通过编辑inventory
主机清单进定义
1 2 3 4
| [test] 10.1.6.205 [test:vars] file_name=group_sys
|
官方推荐的方法: 在项目目录中创建两个变量目录host_vars
和group_vars
group_vars
1
| mkdir host_vars; mkdir group_vars
|
创建一个同名文件,用于写入变量内容
必须与hosts清单中的组名保持一致,如果不同名会报错。但是如果你想要多个配置文件使用同一个组中的变量,只需要在group_vars/all
新建一个all
文件,所有组可用!
1 2
| [root@bogon ~] file_name: group_sys
|
host_vars
- 在
host_vars
中创建一个文件,文件名与inventory
清单中的主机名称要保持完全一致,如果是IP地址,则创建相同IP地址的文件即可
1 2 3
| vim host_vars/10.1.6.205 [root@bogon ~]# cat host_vars/10.1.6.205 file_name: group_sys
|