随笔-ansible-4

触发器:

一个任务同时调用多个触发器:

为远程主机上的用户设置环境变量:

保存前一步命令的输出结果,并保存到foo中:

添加环境变量的另一种方式:

注意:lineinfile模块只适用于修改少量环境变量的情况。如果要修改大量的环境变量,请使用copy模块和模板。

如果任务量变多,或者环境变量变多,则需要在playbook中的var区块定义环境变量。

playbook中的变量:

ansible-playbook example.yml --extra-vars "foo=bar"

ansible-playbook example.yml --extra-vars "@even_more_vars.json"

ansible-playbook example.yml --extra-vars "@even_more_vars.yml"

vars.yml的格式如下:

顶格写。

ansible的内置环境变量,可以通过setup模块查看到。

使用场景:根据ansible的内置环境变量来判断如何执行。

为CentOS系统定义一个变量配置文件:apache_CentOS.yml,内容为apache: httpd

为Debian系统定义一个变量配置文件:apache_default.yml,内容为apache: apache2

在inventory文件中定义变量:【不建议这么做】

在group_vars目录下,按照组名创建文件,然后填写变量。

在host_vars目录下,按照主机名创建文件,然后填写变量。

注意:组名和主机名是根据/etc/ansible/hosts文件中的内容来的。

假如给app1.example.com这台主机设置一组变量,则需要先创建/etc/ansible/host_vars/app1.example.com文件,

然后将变量填写到里面即可。

在app1.example.com文件中填写内容如下:

假如给shanghai这组主机设置一组变量,则需要先创建/etc/ansible/group_vars/shanghai文件,然后将变量填写到里面即可。

注册变量:将操作的结果,包括标准输出和标准错误输出,保存到变量中,然后再根据这个变量的内容来决定下一步的操作。

数组变量或列表变量:

取值时,用python语法:

foo_list[0]

foo_list[1]

foo_list[2]

用jinja语法:

foo_list|first

猜你喜欢

转载自www.cnblogs.com/t-road/p/11448843.html