zoukankan      html  css  js  c++  java
  • ansible变量引用

    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 }}"
    

     

  • 相关阅读:
    【原创】VNC-view配置
    【LVM】LVM自动扩容脚本
    【linux磁盘分区--格式化】fdisk,parted,mkfs.ext3
    【原】Centos 7 下创建LVM流程
    【Spring-AOP-学习笔记-7】@Around增强处理简单示例
    【转】libvirt kvm 虚拟机上网 – Bridge桥接
    【phantomjs】使用phantomjs生成highChart的图片(待完善)
    【Redis】使用Redis Sentinel实现Redis HA
    【Redis】配置redis主从复制
    【转载】优秀博文转载
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/11980225.html
Copyright © 2011-2022 走看看