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


結果:
[root@Client_105 ~]# cat /tmp/1.txt
[u'192.168.38.105']





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章