第十一章 Ansible-playbook變數註冊和Facts快取
阿新 • • 發佈:2021-12-23
一、變數註冊概述
當absible的模組在執行之後,其實都會返回一些result結果,就像是執行指令碼,我們有的時候需要指令碼給我們一些return返回值,我們才知道,上一步是否可以執行成功,但是...預設情況下,ansible的result並不會顯示出來,所以,我們可以把這些返回值'儲存'到變數中,這樣我們就能通過'呼叫'對應的變數名,從而獲取到這些result,這種將模組的返回值,寫入到變數中的方法被稱為變數註冊。
二、變數註冊配置
1.配置
[root@m01 ~]# vim list.yml - hosts: web01 tasks: - name: list dir shell: ls -l /root register: list_dir
2.輸出呼叫的變數
[root@m01 ~]# vim list.yml
- hosts: web01
tasks:
- name: list dir
shell: ls -l /root
register: list_dir
- name: get list_dir
debug:
msg: "{{ list_dir }}"
3.輸出我們想要的部分
[root@m01 ~]# vim list.yml - hosts: web01 tasks: - name: list dir shell: ls -l /root register: list_dir - name: get list_dir debug: msg: "{{ list_dir.stdout_lines }}"
三、變數註冊使用場景
#一般使用變數註冊進行判斷 [root@m01 ~]# cat install.yml - hosts: nfs tasks: - name: decide nfs status shell: systemctl is-active nfs ignore_errors: yes register: nfs_status - name: Start nfs systemd: name: nfs state: started when: nfs_status.rc != 0 - name: Restart nfs systemd: name: nfs state: restarted when: nfs_status.rc == 0
四、Facts快取概述
Ansible facts是在被管理主機上通過Ansible自動採集發現的變數。facts包含每臺特定的主機資訊。比如:被控端的主機名、IP地址、系統版本、CPU數量、記憶體狀態、磁碟狀態等等。
setup模組實際上就是facts快取得到的
五、Facts快取使用場景
1.通過facts快取檢查CPU,來生成對應的nginx配置檔案
2.通過facts快取檢查主機名,生成不同的zabbix配置檔案
3.通過facts快取檢索物理機的記憶體大小來生成不通的mysql配置檔案
綜上所述的Ansible facts類似於saltstack中的grains對於做自動化的小夥伴是非常有用滴。
六、Facts快取基本用法
#編輯
[root@m01 ~]# vim facts.yml
- hosts: web_group
tasks:
- name: Get Host Info
debug:
msg: Hostname "{{ ansible_fqdn }}" and IP "{{ ansible_default_ipv4.address }}"
七、關閉facts快取
[root@m01 ~]# vim facts.yml
- hosts: web_group
gather_facts: no #關閉資訊採集
tasks: