本文共 2235 字,大约阅读时间需要 7 分钟。
只能包含数字,下划线,字母
只能用下划线或字母开头全局:从命令行或配置文件中设定的
play:在play和相关结构中设定的 主机:由清单,事实或注册的任务 变量优先级:狭窄范围与广域范围 变量设定和使用方式 在playbook中直接定义变量 编写playbook vim user.yml 在文件中定义变量 定义变量 vim userlist vim user.yml 设定主机变量和清单变量 在定义主机变量和清单变量时使用 vim inventory vim user.yml## 目录设定变量
mkdir group_vars
mkdir host_vars vim group_vars/list2 vim user.yml vim host_vars/172.25.2.254 vim user.yml 如果多个文件都存在统一个变量会按照读取顺序,最后读取的变量会覆盖前边的## 使用命令覆盖变量
vim user.yml
ansible-playbook user.ymlansible-playbook user.yml -e “user=linux”
使用数组设置变量
vim user_var.yml
vim user.yml
注册变量
register把模块输出注册到指定字符中 vim hostname.ymlvim showrc.yml
运行,这是playbook执行信息
将这些信息用变量表示 (ignore_errors=yes表示前边的play运行失败后边的也可以运行,默认为no)
运行
删除nod1中的/mnt/file运行
ansible nod1.westos.com -m file -a ‘path=/mnt/file state=absent’ ansible-playbook file.yml 可以看到虽然已经运行失败但还是运行了下去事实变量
事实变量是ansible在受控主机中自动检测出的变量 事实变量中含有与主机相关的信息 当需要使用主机相关信息时不需要采集赋值,直接调用即可,因为变量信息为系统信息所以不能随意设定仅为采集信息,故而被成为事实变量 例如查看ip vim ip.ymlplaybook练习
采集nod1.westos.com 受控主机的ip,主机名,内存,并保存到/mnt/host中 vim vhost.yml运行并查看
模板变量
hostvars:ansible软件的内部信息group_names:当前受管主机所在组
groups:列出清单中所有的组和主机
inventory_hostname:包含清单中配置的当前受管主机的名称
Jinja2是Python下一个被广泛应用的模板引擎
他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能,其中最显著的一个是增加了沙箱执行功能和可选的自动转译功能 J2模板书写规则 例如写一个地址解析 for循环 vim user.ymlvim users.j2
vim user.yml
运行并查看
练习 采集所有受控主机的ip和主机名并保存到受控主机的/mnt/host
vim host.j2vim host.yml
运行并查看
if判断 编写实验playbook
vim user_messages.ymlvim user_messages.j2
vim user_messages.yml
运行并查看
Ansible中的加密控制 创建建立文件
ansible-vault create westos查看
使用ansible查看并输入密码
ansible-vault view westos文件包含密码
vim westos-vaultansible-vault create --vault-password-file=westos-vault westos
查看(使用westos-vault中写入的字符串作为密码) ansible-vault view --vault-password-file=westos-vault westos加密现有文件
vim westos.ymlansible-vault encrypt westos.yml
查看
使用ansible输入密码查看
编辑加密文件(注意缩进)
ansible-vault edit westos.yml使用ansible查看
文件密码编辑
ansible-vault edit --vault-password-file=westos-vault westos使用ansible查看
解密文件
ansible-vault decrypt westos解密加密文件变成另外一个文件,原文件不变
ansible-vault decrypt westos.yml --output=linux.yml更改密码
ansible-vault rekey westos.yml文件更改密码
ansible-vault rekey westos.yml --new-vault-password-file=key1(需要编辑key1文件写入密码)加密文件运行 文件加密后只用playbook命令无法运行
ansible-playbook westos,yml --ask-vault-pass转载地址:http://qoegn.baihongyu.com/