按顺序食用,口味更佳
( 1 ) ⾃动化运维利器Ansible-基础
( 2 ) ⾃动化运维利器 Ansible-Playbook
( 3 ) ⾃动化运维利器 Ansible-变量
( 4 ) ⾃动化运维利器AnsiblePlaybook的任务控制
( 5 ) ⾃动化运维利器 Ansible-Jinja2
( 6 ) ⾃动化运维利器 Ansible-最佳实战
ansible作为一门特殊的语言,肯定要涉及到变量定义、控制结构的使⽤等特性。
一、变量命名规则
变量的名字由字母、下划线和数字组成,必须以字⺟开头。保留关键字不能作为变量名称,具体关键字比较多,不在列举。
正确的变量命名: aimyon_36,ztmy_1
错误的变量命名:_aaa ,2_bb
二、变量的类型
根据变量的作⽤范围⼤体的将变量分为:
- 全局变量
- 剧本变量
- 资产变量
2.1 全局变量
全局变量,使⽤ansible 或使⽤ansible-playbook 时,手动通过 -e 参数传递给Ansible 的变量。
通过ansible 或 ansible-playbook 的 help 帮助, 可以获取具体格式使⽤⽅式:
ansible -h | grep var
-e EXTRA_VARS,
--extra-vars=EXTRA_VARS set additional variables as key=value or YAML/JSON
ansible-playbook -h | grep var
-e EXTRA_VARS,
--extra-vars=EXTRA_VARS set additional variables as key=value or YAML/JSON
上述的help比较难懂,通过下边的举例说明。
传统的kv形式
ansible all -i localhost, -m debug \
-a "msg='my key is {
{ key }}'" -e "key=value"
传递YAML/JSON的形式
cat a.json
{
"name":"qfedu","type":"school"}
ansible all -i localhost, -m debug \
-a "msg='name is {
{ name }}, type is {
{ type }}'" -e @a.json
2.3 剧本变量
该种变量和playbook有关,定义在playbook中,大多数场景下使用这种方式。
此处的playbook可以理解为inventory清单,可以定义在host.ini文件中。
通过PLAY属性vars定义:
---
- name: test play vars
hosts: all
vars:
user: lilei
home: /home/lilei
tasks:
- name: create the user {
{
user

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



