1. 在/etc/ansible/hosts默认文件中定义变量
[test]
192.168.163.130
#[test:vars]
#key=ansible
或者
192.168.163.130 key=ansible
[test]
192.168.163.130
2. 编写var.yaml文件
- hosts: test
gather_facts: False
tasks:
- name: display Host Variable from hostfile
debug: msg="The {{ inventory_hostname }} Vaule is {{ key }}" ansible-playbook var.yaml #检查yaml文件语法

3. 在/etc/ansible下新建目录host_vars
写入变量文件名要以主机ip或者绑定的host命名
cat host_vars/192.168.163.130
key: 192.168.163.130
ansible-playbook var.yaml

4. 针对主机组设置变量
在/etc/ansible下新建group_vars
变量文件以主机组命名
cat group_vars/test && rm -rf host_vars
key: abcdefg

5. 手动传入变量,可传入多个变量
ansible-playbook var.yaml -e "key=JSON" 6.支持文件传入变量
变量文件支持YAML和JSON两种格式
cat vars.yaml
key: KEY-YAML
cat var.json
{"key": "KEY_JSON"}
ansible-playbook var.yaml -e "@var.json"
7. 在playbook文件内使用vars
- hosts: test
gather_facts: False
vars:
key: Ansible-KEY
tasks:
- name: display Host Variable from hostfile
debug: msg="The {{ inventory_hostname }} Vaule is {{ key }}" 8. 在playbook文件使用vars_files
- hosts: test
gather_facts: False
vars_files:
- vars.yaml 或者group_vars/test
tasks:
- name: display Host Variable from hostfile
debug: msg="The {{ inventory_hostname }} Vaule is {{ key }}"
9. 使用register内的变量
cat var.yaml
- hosts: test
gather_facts: False
tasks:
- name: register variable
shell: hostname
register: aaaaa  #输出结果为python字典
- name: display Host Variable from hostfile
debug: msg="The {{ inventory_hostname }} Vaule is {{ aaaaa }}" #{aaaaa['stdout']}具体输出某个字段的值

10. vars_prompt传入参数
cat var.yaml
- hosts: test
gather_facts: False
vars_prompt:
- name: "aaa"
prompt: "please input aaa value"
default: '123'
private: no
- name: "bbb"
prompt: "please input bbb value"
default: '456'
private: yes
tasks:
- name: display aaa value
debug: msg="aaa value is {{ aaa }}"
- name: display bbb value
debug: msg="bbb value is {{ bbb }}"

 

最新文章

  1. [C++11][数据结构]自己的双链表实现
  2. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_acce
  3. 通过点击取消按钮关闭dialog窗口
  4. 关于JS加载的问题
  5. hive安装配置错误
  6. 微信公众平台开发(57)Emoji表情符号
  7. SignalR--Http/WebSockets消息推送
  8. Js数学函数1
  9. macbook安装mysql
  10. 山寨QQ音乐的布局(一)
  11. python_装饰器_语法糖
  12. POJ-2632 Crashing Robots模拟
  13. Python就业指导
  14. Android hook神器frida(二)
  15. 2017 ACM/ICPC(北京)总结
  16. 【转】Linux netstat命令详解,高级面试必备
  17. 《SQL 基础教程》第三章:聚合和排序
  18. 微信小程序记账本进度一
  19. git 标签管理
  20. docker之故障问题解决方案

热门文章

  1. 学生管理系统(python实现)
  2. 详解javascript的eventloop(二):eventloop和dom渲染
  3. Luffy /3/ 前台主页搭建&轮播图接口
  4. 『现学现忘』Git基础 — 13、Git的基础操作
  5. react-router@6 版本初体验
  6. MySQL常用数据类型及细节
  7. 网络协议之:Domain name service DNS详解
  8. Linux编译安装-软件
  9. 菜B的初来乍到。
  10. Java学习笔记-基础语法ⅩⅠ-UDP、TCP