Ansible_变量定义与引用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible_变量定义与引用相关的知识,希望对你有一定的参考价值。

Ansible_变量定义与引用

inventory定义主机及主机组(自定义变量)

$?cat?hosts
localhost?ansible_ssh_host=192.168.38.104?key=104client_105?ansible_ssh_host=192.168.38.105?key=105sour_106?ansible_ssh_host=192.168.38.106?key=106

通过/etc/ansible/ 定义文件表示变量

创建:/etc/ansible/host_vars/
创建:/etc/ansible/group_vars/

目录下文件名与host?&?group名一致,并未yml格式
例:
????$?cat?/etc/ansible/host_vars/client_105.yml
????
---
client_105_key:?105

使用ansible-playbook命令行传入:

-?为全局变量:-?-e?"name=duanyifei"-?--extra-vars=EXTRA_VARS-?-e?"@var.json"?/?"@var.yaml"?(通过文件传入)???-?cat?var.json:????????-?{"key":?"json"}???-?cat?var.yaml:????????-?key:?yaml

playbook中写入:

---
-?host:?client_105
??vars:
????key:?ansible

playbook中引用vars_file:

vars_files:
????-?var.yaml

vars_prompt传入

---
-?hosts:?client_105
??gather_facts:?False
??vars_prompt:
????-?name:?‘client_105_key‘
??????prompt:?‘Input?key‘??#交互时提示信息
??????private:?no??????????#输入数据是否显示
??tasks:
????-?name:?print?105_key
??????debug:?msg="{{?client_105_key?}}"

register变量:

两个tasks之前传递变量:

????tasks:
??-?name:?test1
????shell:?hostname
????register:?info
??-?name:?test2
????debug:?msg="the?varibale?is?{{?info?}}"

setup模块获取变量传入

#?获取remote_ip变量,并传给对端

$?cat?variable.yml
---
-?hosts:?client_105
??tasks:
????-?name:?print?105_key
??????template:?src=1.txt?dest=/tmp


$?cat?1.txt
{{?ansible_all_ipv4_addresses?}}


结果:
[[email protected]_105?~]#?cat?/tmp/1.txt
[u‘192.168.38.105‘]





以上是关于Ansible_变量定义与引用的主要内容,如果未能解决你的问题,请参考以下文章

Ansible自动化运维工具Ansible的变量定义和引用

Ansible系列:各种变量定义方式和变量引用

ansible 变量定义和引用

006.Ansible自定义变量

ansible内置主机变量与魔法变量

ansible变量类型