playbook-----变量
1.为什么要使用变量
简化playbook项目的一个维护,使用一个固定的字符串,表示一个不固定的值
2.ansible怎么定义变量
分为三种:
通过playbook文件中的play进行定义
通过inventory主机清单进行变量定义
通过执行playbook时使用-e参数指定变量
3.ansible怎么使用变量
- 通过playbook文件中的play进行定义,使用关键字vars
[root@localhost opt]# vi vars.yml
- hosts: dbserver
vars:
- web_package: httpd
- ftp_package: vsftpd
tasks:
- name: install http server
yum: name={{ web_package }} state=present
- name: install vsftpd server
yum: name={{ ftp_package }} state=present
方法二:
[root@localhost opt]# vi vars.yml
- hosts: dbserver
vars:
- web_package: httpd
- ftp_package: vsftpd
tasks:
- name: install {{ web_package }} {{ ftp_package}} server
yum:
name:
- "{{ web_package }}"
- "{{ ftp_package }}"
state: present
第二种方式,编写vars_file 变量文件,使得playbook可以应用变量文件,实现变量的自定义

第三种 通过inventory主机清单进行变量定义
1.在inventory主机清单中定义变量
2.在项目目录下通过创建目录来调用主机变量和主机组变量,
host_vars 和group_vars


默认情况下,group_vars目录中文件名与hosts清单中的组名保持一致
比如在group_vars目录中创建一个dbserver组的变量,其他组是无法使用dbsever组的变量的
系统提供了一个特殊组,all,只需要在group_vars目录下建立一个all文件 编写好变量,所有组度能够使用

3.主机的变量
在host_vars目录中创建一个文件,文件名与inventory清单中的主机名保持一致,如果是ip则就ip当做文件名就行了

4. 通过执行playbook时使用-e参数指定变量,外置传参。

5.ansible变量优先级
-e参数指定变量,外置传参
编写vars_file 变量文件,使得playbook可以应用变量文件,实现变量的自定义
在playbook中使用关键字vars
在inventory主机清单中定义变量 host_vars
在inventory主机清单中定义变量 group_vars
在inventory主机清单中定义变量 all
版权声明:本文为Meimei_X原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。