Ansible_变量定义与引用
-
- inventory定义主机及主机组(自定义变量)
- 通过/etc/ansible/ 定义文件表示变量
- 使用ansible-playbook命令行传入:
- playbook中写入:
- playbook中引用vars_file:
- vars_prompt传入
- register变量:
- setup模块获取变量传入
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‘]
时间: 2024-10-13 09:00:17