目录
在play中定义变量: play_var = play_var -> 使用debug模块输出
在文件中定义变量: file_var = file_var -> 使用debug模块输出
在host_vars和group_vars中定义文件:在文件中定义变量使用debug模块输出
vault加密:创建加密文件(注意提供密码的方式:键盘输入,文件读取)
加密已有文件 解密文件 使用--vault-id选项来对已有文件进行加密
使用debug模块输出:收集事实的hostname, default_address, fqdn, kernel
编写Playbook
具备两个play, 每个Play具备两个任务
在play中定义变量: play_var = play_var -> 使用debug模块输出
在文件中定义变量: file_var = file_var -> 使用debug模块输出
在清单文件中定义主机变量和主机组变量:
inventory_host_var = inventory_host_var -> 使用debug模块输出
inventory_group_var = inventory_group_var -> 使用debug模块输出
[root@server .ansible]# vim myplaybook.yml #编辑剧本
[root@server .ansible]# ansible-playbook myplaybook.yml #执行剧本
在host_vars和group_vars中定义文件:在文件中定义变量使用debug模块输出
要求定义单个变量,数组变量,和字典变量
[root@server .ansible]# vim firstbook.yml
[root@server .ansible]# ansible-playbook firstbook.yml
vault加密:创建加密文件(注意提供密码的方式:键盘输入,文件读取)
加密已有文件
解密文件
使用--vault-id选项来对已有文件进行加密
事实:facts
使用debug模块输出:收集事实的hostname, default_address, fqdn, kernel
[root@server .ansible]# vim ansible_facts.yml
关闭事实:两种方式
针对单个play的关闭
针对所有play的关闭
# 在.yml文件中加入gather_facts: no 可以关闭收集事实
----------------------------------------------------------------------
如果不想从fact中获取变量,或者说整个playbook当中都没有使用到fact变量,可以通过如下方法关闭fact以提升执行效率:
也可以在ansible.cfg中添加如下配置:
[defaults]
gathering = explicit (明确的)
ansible的配置文件中可以修改'gathering'的值为smart、implicit或者explicit。
(1)smart 表示默认收集facts,但facts已有的情况下不会收集,即使用缓存facts;
(2)implicit 表示默认收集facts ;
(3)explicit 则表示默认不收集;
自定义事实:使用两种方式:INI和json方式(注意格式)
提供数据:需要自己组织成INI格式或json格式的数据
student1:
name: zhangsan
age: 8
agender: male
address: openlab.com
student2:
name: lisi
age: 8
agender: female
address: openlab.com
默认情况下setup模块从受管主机的/etc/ansible/facts.d目录下的文件和脚本中加载自定义事实。各个文件名必须以.fact结尾才能使用。动态自定义事实脚本必须输出JSON格式的事实,而且必须是可执行文件。
INI和JSON格式编写的静态自定义事实文件。INI格式的自定义事实文件包含由一部分定义的顶层值,后跟用于待定义事实的键值对。