淺談ANSIBLE模塊

ansible介紹

  • ansible:自動化運維工具,實現了批量系統配置、批量程序部署、批量運行命令
  • 特性:
    模塊化:調用特定的模塊,完成特定任務
    基於Python語言實現:包含Paramiko, PyYAML和Jinja2三個關鍵模塊
    部署簡單:agentless,不需在被配置主機安裝客戶端
    支持自定義模塊
    支持playbook
    冪等性:任意多次執行所產生的影響均與一次執行的影響相同
  • ansible架構圖
    在這裏插入圖片描述

ansible 相關文件

在這裏插入圖片描述

  • 文件結構
    配置文件:/etc/ansible/ansible.cfg
    主機清單:/etc/ansible/hosts
    存放角色的目錄:/etc/ansible/roles/
  • Ansible 的配置文件 /etc/ansible/ansible.cfg,其中大部分的配置內容無需進行修改
[defaults]
#inventory = /etc/ansible/hosts # 主機列表配置文件
#library = /usr/share/my_modules/ # 庫文件存放目錄
#remote_tmp = $HOME/.ansible/tmp #臨時py命令文件存放在遠程主機目錄
#local_tmp = $HOME/.ansible/tmp # 本機的臨時命令執行目錄
#forks = 5 # 默認併發數
#sudo_user = root # 默認sudo 用戶
#ask_sudo_pass = True #每次執行ansible命令是否詢問ssh密碼
#ask_pass = True
#remote_port = 22
#host_key_checking = False # 檢查對應服務器的host_key,建議取消註釋
#log_path=/var/log/ansible.log #日誌文件,建議啓用
#module_name = command #默認模塊,可以修改爲shell模塊
  • 主機清單配置文件格式:
[mysqlsrv]     // 主機組名,包含下面的主機
172.20.54.1
172.20.54.2

[websrv]
172.20.54.3
172.20.54.4
  • ansible相關工具
    /usr/bin/ansible 主程序,臨時命令執行工具
    /usr/bin/ansible-doc 查看配置文檔,模塊功能查看工具
    /usr/bin/ansible-galaxy 下載/上傳優秀代碼或Roles模塊的官網平臺
    /usr/bin/ansible-playbook 定製自動化任務,編排劇本工具
    /usr/bin/ansible-pull 遠程執行命令的工具
    /usr/bin/ansible-vault 文件加密工具
    /usr/bin/ansible-console 基於Console界面與用戶交互的執行工具
    利用ansible實現管理的主要方式:
    • Ad-Hoc 即利用ansible命令,主要用於臨時命令使用場景
    • Ansible-playbook 主要用於長期規劃好的,大型項目的場景,需要有前期的規劃過程

ansible工具

1️⃣ansible-doc 此工具用來顯示模塊幫助

  • 格式
ansible-doc [options] [module...]
-l, --list #列出可用模塊
-s, --snippet #顯示指定模塊的playbook片段
  • 範例:
#列出所有模塊
ansible-doc -l
#查看指定模塊幫助用法
ansible-doc ping
#查看指定模塊幫助用法
ansible-doc -s ping

2️⃣ansible
此工具通過ssh協議,實現對遠程主機的配置管理、應用部署、任務執行等功能

  • 建議:使用此工具前,先配置ansible主控端能基於密鑰認證的方式聯繫各個被管理節點
  • 範例:利用sshpass批量實現基於key驗證
ssh-keygen -f /root/.ssh/id_rsa -P ''   / 生成密鑰對
NET=192.168.100
export SSHPASS=password                 / 定義密碼
for IP in {1..200};do
sshpass -e ssh-copy-id $NET.$IP         / 託管密碼for循環
done
  • 語法格式 ansible <host-pattern> [-m module_name] [-a args]
  • 選項說明
--version #顯示版本
-m module #指定模塊,默認爲command
-v #詳細過程 –vv -vvv更詳細
--list-hosts #顯示主機列表,可簡寫 --list
-k, --ask-pass #提示輸入ssh連接密碼,默認Key驗證
-C, --check #檢查,並不執行
-T, --timeout=TIMEOUT #執行命令的超時時間,默認10s
-u, --user=REMOTE_USER #執行遠程執行的用戶
-b, --become #代替舊版的sudo 切換
--become-user=USERNAME #指定sudo的runas用戶,默認爲root
-K, --ask-become-pass #提示輸入sudo時的口令
  • ansible命令執行過程

    1. 加載自己的配置文件 默認/etc/ansible/ansible.cfg
    2. 加載自己對應的模塊文件,如:command
    3. 通過ansible將模塊或命令生成對應的臨時py文件,並將該文件傳輸至遠程服務器的對應執行用戶$HOME/.ansible/tmp/ansible-tmp-數字/XXX.PY文件
    4. 給文件+x執行
    5. 執行並返回結果
    6. 刪除臨時py文件,退出
  • ansible 的執行狀態:

    • 綠色:執行成功並且不需要做改變的操作
    • 黃色:執行成功並且對目標主機做變更
    • 紅色:執行失敗

3️⃣ansible-galaxy
此工具會連接 https://galaxy.ansible.com 下載相應的roles
範例:

#列出所有已安裝的galaxy
ansible-galaxy list
#安裝galaxy
ansible-galaxy install geerlingguy.redis
#刪除galaxy
ansible-galaxy remove geerlingguy.redis

ansible常用模塊

command模塊

  • 功能:命令模塊,默認模塊,用於在遠程主機執行命令,
  • 缺點:運行的命令中無法使用變量,管道。如果需要使用管道、變量,請使用raw模塊,或者shell模塊。
[root@node1 ~]# ansible-doc -s command
- name: 在遠程節點執行命令
action: command
chdir           # 在執行命令之前,先切換到該目錄
creates         # 一個文件名,當這個文件存在,則該命令不執行,可以用來做判斷
executable      # 切換shell來執行命令,需要使用命令的絕對路徑
free_form=      #要執行的Linux指令,一般使用Ansible的-a參數代替。
removes         #一個文件名,這個文件不存在,則該命令不執行,與creates相反的判斷

shell模塊

  • 功能:與command模塊相似,執行的命令中有管道或者變量,就需要使用shell
[root@node1 ~]# ansible-doc -s shell
- name: Execute commands in nodes.
action: shell
chdir       # 執行之前,先cd到指定目錄在執行命令
creates     # 一個文件名,當這個文件存在,則該命令不執行
executable  # 切換shell來執行命令,需要使用命令的絕對路徑
free_form=  # 執行的命令
removes     # 一個文件名,這個文件不存在,則該命令不執行
  • 注意:調用bash執行命令 類似 cat /tmp/test.md | awk -F‘|’ ‘{print $1,$2}’ &> /tmp/example.txt 這些複雜命令,即使使用shell也可能會失敗,解決辦法:寫到腳本時,copy到遠程,執行,再把需要的結果拉回執行命令的機器

script模塊

  • 功能:在遠程主機上運行ansible服務器上的腳本
[root@node1 ~]# ansible-doc -s script
- name: 將本地腳本複製到遠程主機並運行之
action: script
creates      # 一個文件名,當這個文件存在,則該命令不執行
free_form=   # 本地腳本路徑
removes      # 一個文件名,這個文件不存在,則該命令不執行
  • 語法格式
    ansible webserver -m script -a '/root/script.sh'

copy模塊

  • 功能:從ansible服務器主控端複製文件到遠程主機
[root@node1 ~]# ansible-doc -s copy
- name: 將文件複製到被管理主機
action: copy
backup          # 創建一個備份文件包括時間戳信息,如果以某種方式重創錯了,還可以拿回原始文件
content         # 取代src=,表示直接用此處指定的信息生成爲目標文件內容;
dest=           # 遠程節點存放文件的路徑,必須是絕對路徑
directory_mode  # 遞歸複製設置目錄權限,默認爲系統默認權限
force           # 如果目標主機包含該文件,但內容不同,如果設置爲yes,則強制覆蓋,如果設置爲no,則只有當目標主機的目標位置不存在該文件時,才複製。默認爲yes
group           # 複製到遠程主機後,指定文件或目錄的屬
mode            # 複製到遠程主機後,指定文件或目錄權限,類似與 `chmod'指明如 0644
owner           # 複製到遠程主機後,指定文件或目錄屬主
src             # 要複製到遠程主機的文件在本地的地址,可以是絕對路徑,也可以是相對路徑。如果路徑是一個目錄,它將遞歸複製。在這種情況下,如果路徑使用"/"來結尾,則只複製目錄裏的內容,如果沒有使用"/"來結尾,則包含目錄在內的整個內容全部複製,類似於rsync。 

示例

  • 將本地的/etc/fstab文件複製到目標主機的/tmp/fstab.ansbile,屬主爲root權限爲640
[root@ansible ~]#ansible websrv -m copy -a 'src=/etc/fstab dest=/tmp/fstab.ansible mode=640'
172.20.54.3 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "533c326f3c3654b97e826cf7b942a855de096969", 
    "dest": "/tmp/fstab.ansible", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "dec527a553b1dbd9c9518d966a81e30e", 
    "mode": "0640", 
    "owner": "root", 
    "size": 595, 
    "src": "/root/.ansible/tmp/ansible-tmp-1575796184.03-84641622955757/source", 
    "state": "file", 
    "uid": 0
}
[root@ansible ~]#ansible websrv -a 'ls /tmp/fstab.ansible -l'
172.20.54.4 | CHANGED | rc=0 >>
-rw-r----- 1 root root 595 Dec  8 17:09 /tmp/fstab.ansible
  • 在webserver組主機創建文件,自己手動指定文件內容
[root@ansible ~]#ansible websrv -m copy -a 'content="hello,world!\n" dest=/tmp/hello.txt'
172.20.54.4 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "8e41fa769f837c3cd5edec26f22c9e846e1d1dff", 
    "dest": "/tmp/hello.txt", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "abdb60390ee5dcf80db30b45433551a7", 
    "mode": "0644", 
    "owner": "root", 
    "size": 13, 
    "src": "/root/.ansible/tmp/ansible-tmp-1575796437.85-106616853454191/source", 
    "state": "file", 
    "uid": 0
[root@ansible ~]#ansible websrv -a 'cat /tmp/hello.txt'
172.20.54.4 | CHANGED | rc=0 >>
hello,world!
  • 使用backup選項
#如目標存在,默認覆蓋,此處指定先備份
ansible srv -m copy -a “src=/root/test1.sh dest=/tmp/test2.sh owner=wang
mode=600 backup=yes”
#複製/etc/下的文件,不包括/etc/目錄自身
ansible srv -m copy -a “src=/etc/ dest=/backup”

File模塊

  • 功能:設置文件屬性
[root@node1 ~]# ansible-doc -s file
- name: 設置文件屬性
action: file
force          # 需要在兩種情況下強制創建軟連接,一種是源文件不存在但之後會建立的情況下;另一種是目標連接已存在,需要先取消之前的軟連接,有兩個選項:yes|no
group          # 設置文件或目錄的屬組,後面可以加上mode:定義文件/目錄的權限
mode           # 設置文件或目錄的權限
owner          # 設置文件或目錄的屬主,後面必須跟上path:定義文件/目錄的路徑
path=          # 必選項,定義文件或目錄的路徑
recurse        # 遞歸設置文件的屬性,只對目錄有效
src            # 要被鏈接到的路徑,只應用與state=link的情況
dest         #被鏈接到的路徑,只應用於state=link的情況
state          # directory:如果目錄不存在,創建目錄;
    file:即使文件不存在,也不會被創建   
    link:創建軟連接;
    hard:創建硬連接;
    touch:如果文件不存在,則會創建一個新的文件,如果文件或目錄已存在,則更新其最後修改時間
    absent:刪除目錄、文件或者取消鏈接文件

示例

  • 設置/tmp/fstab.ansbile屬主和屬組都爲mysql,權限爲644
[root@ansible ~]#ansible websrv -m file -a 'path=/tmp/fstab.ansible owner=mysql mode=640 group=mysql'
172.20.54.3 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 996, 
    "group": "mysql", 
    "mode": "0640", 
    "owner": "mysql", 
    "path": "/tmp/fstab.ansible", 
    "size": 595, 
    "state": "file", 
    "uid": 998
}

172.20.54.3 | CHANGED | rc=0 >>
-rw-r----- 1 mysql mysql 595 Dec  8 17:09 /tmp/fstab.ansible
  • 在webserver組創建/test/fstab.ansible的連接文件
[root@ansible ~]#ansible websrv -m file -a 'src=/tmp/fstab.ansible dest=/tmp/fstab.link state=link'
172.20.54.3 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dest": "/tmp/fstab.link", 
    "gid": 0, 
    "group": "root", 
    "mode": "0777", 
    "owner": "root", 
    "size": 18, 
    "src": "/tmp/fstab.ansible", 
    "state": "link", 
    "uid": 0
}
[root@ansible ~]#ansible websrv -a 'ls -l /tmp/fstab*'
172.20.54.4 | CHANGED | rc=0 >>
-rw-r----- 1 root root 595 Dec  8 17:09 /tmp/fstab.ansible
lrwxrwxrwx 1 root root  18 Dec  8 17:46 /tmp/fstab.link -> /tmp/fstab.ansible
  • 創建並刪除空文件
ansible srv -m file -a 'path=/data/test.txt state=touch'
ansible srv -m file -a 'path=/data/test.txt state=absent'
ansible srv -m file -a "path=/root/test.sh owner=wang mode=755
  • 創建並刪除空目錄
[root@ansible ~]#ansible websrv -m file -a "path=/tmp/mysql state=directory owner=mysql group=mysql"
172.20.54.3 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 996, 
    "group": "mysql", 
    "mode": "0755", 
    "owner": "mysql", 
    "path": "/tmp/mysql", 
    "size": 6, 
    "state": "directory", 
    "uid": 998
}
[root@ansible ~]#ansible websrv -a 'ls -l /tmp/mysql/ -d'
172.20.54.3 | CHANGED | rc=0 >>
drwxr-xr-x 2 mysql mysql 6 Dec  8 17:56 /tmp/mysql/
/ 刪除此目錄
[root@ansible ~]#ansible websrv -m file -a 'path=/tmp/mysql state=absent'
172.20.54.3 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "path": "/tmp/mysql", 
    "state": "absent"
}
[root@ansible ~]#ansible websrv -a 'ls -l /tmp'
172.20.54.3 | CHANGED | rc=0 >>
total 16
drwx------ 2 root  root   41 Dec  8 17:59 ansible_command_payload_M_jyx1
-rw-r--r-- 1 root  root   53 Dec  8 17:28 ceshi.sh
-rw-r----- 1 mysql mysql 595 Dec  8 17:09 fstab.ansible
lrwxrwxrwx 1 root  root   18 Dec  8 17:46 fstab.link -> /tmp/fstab.ansible
-rw-r--r-- 1 root  root   13 Dec  8 17:13 hello.txt
-rw-r--r-- 1 root  root   23 Dec  5 19:39 issue

unarchive模塊

  • 功能:解包解壓縮
  • 實現有兩種用法:
    1、將ansible主機上的壓縮包傳到遠程主機後解壓縮至特定目錄,設置copy=yes
    2、將遠程主機上的某個壓縮包解壓縮到指定路徑下,設置copy=no
  • 常見參數
copy:在解壓文件之前,是否先將文件複製到遠程主機,默認爲yes。若爲no,則要求目標主機上壓縮包必須存在。
creates:指定一個文件名,當該文件存在時,則解壓指令不執行
dest:遠程主機上的一個路徑,即文件解壓的路徑 
grop:解壓後的目錄或文件的屬組
list_files:如果爲yes,則會列出壓縮包裏的文件,默認爲no,2.0版本新增的選項
mode:解決後文件的權限
src:如果copy爲yes,則需要指定壓縮文件的源路徑 
owner:解壓後文件或目錄的屬主
  • 注意:要傳輸解壓縮的文件必須是tar歸檔文件之後的各種壓縮格式,單獨的壓縮文件,這個模塊不支持
  • 示例
  • 把ansible主機本地文件推送到遠程主機並解壓
[root@ansible ~]#ansible websrv -m unarchive -a 'src=/root/hello.tar.gz dest=/tmp/'
172.20.54.3 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dest": "/tmp/", 
    "extract_results": {
        "cmd": [
            "/usr/bin/gtar", 
            "--extract", 
            "-C", 
            "/tmp/", 
            "-z", 
            "-f", 
            "/root/.ansible/tmp/ansible-tmp-1575808678.08-128025411979564/source"
        ], 
        "err": "", 
        "out": "", 
        "rc": 0
    }, 
    "gid": 0, 
    "group": "root", 
    "handler": "TgzArchive", 
    "mode": "01777", 
    "owner": "root", 
    "size": 254, 
    "src": "/root/.ansible/tmp/ansible-tmp-1575808678.08-128025411979564/source", 
    "state": "directory", 
    "uid": 0
}
  • 解壓遠程主機tar歸檔文件
    [root@ansible ~]#ansible testsrv -m unarchive -a 'src=/tmp/fstab.tar dest=/tmp copy=no'

Archive模塊

  • 功能:打包壓縮
  • 範例
    ansible testsrv -m archive -a 'path=/var/log dest=/tmp/log.tar.bz2 format=bz2 owner=yijie mode=700'

Hostname模塊

  • 功能:管理主機名,而且是修改文件內容生效,不是臨時設置
  • 範例
ansible testsrv -m hostname -a 'name="test001"'
ansible 172.20.54.3 -m hostname -a 'name="test002"'

Cron模塊

  • 功能:計劃任務
  • 支持時間minutehourdaymonthweekday
  • 常用參數
- name: 設置管理節點生成定時任務
action: cron
backup             # 如果設置,創建一個crontab備份
cron_file          #如果指定, 使用這個文件cron.d,而不是單個用戶crontab
day                # 日應該運行的工作( 1-31, *, */2, etc )
hour               # 小時 ( 0-23, *, */2, etc )
job                #指明運行的命令是什麼
minute             #分鐘( 0-59, *, */2, etc )
month              # 月( 1-12, *, */2, etc )
name               #定時任務描述
reboot             # 任務在重啓時運行,不建議使用,建議使用special_time
special_time       # 特殊的時間範圍,參數:reboot(重啓時),annually(每年),monthly(每月),weekly(每週),daily(每天),hourly(每小時)
state              #指定狀態,prsent表示添加定時任務,也是默認設置,absent表示刪除定時任務
user               # 以哪個用戶的身份執行
weekday            # 周 ( 0-6 for Sunday-Saturday, *, etc )
  • 示例:
/ 創建備份數據庫腳本
[root@ansible ~]#vim mysql_backup.sh
#!/bin/bash
mysqldump -uroot -ppassword -A -F --single-transaction --master-data=2 | gzip> /data/mysql_`date +%F_%T`.sql.gz
/ 創建任務
[root@ansible ~]#ansible testsrv -m cron -a 'hour=2 minute=30 weekday=1-5 name="mysql" job=/root/mysql_backup.sh'
/ 查看任務
[root@ansible ~]#ansible testsrv -a 'crontab -l'
172.20.54.3 | CHANGED | rc=0 >>
#Ansible: mysql
30 2 * * 1-5 /root/mysql_backup.sh
/ 禁用任務
[root@ansible ~]#ansible testsrv -m cron -a 'hour=2 minute=30 weekday=1-5 name="mysql" job=/root/mysql_backup.sh disabled=yes'
/ 查看任務
[root@ansible ~]#ansible testsrv -a 'crontab -l'
172.20.54.3 | CHANGED | rc=0 >>
#Ansible: mysql
#30 2 * * 1-5 /root/mysql_backup.sh    / 被註釋掉了
/ 啓用任務
[root@ansible ~]#ansible testsrv -m cron -a 'hour=2 minute=30 weekday=1-5 name="mysql" job=/root/mysql_backup.sh disabled=no'
/ 刪除任務
[root@ansible ~]#ansible testsrv -m cron -a 'name="mysql" state=absent'

Yum模塊

  • 功能:管理軟件包
  • 常用參數
conf_file          # yum的配置文件
disable_gpg_check  # 關閉gpg_check
disablerepo        # 不啓用某個源
enablerepo         # 啓用某個源
name=              # 指定要安裝的包,如果有多個版本需要指定版本,否則安裝最新的包
state              # 安裝(`present'),安裝最新版(`latest'),卸載程序包(`absent')
  • 範例
/ 安裝httpd
ansible testsrv -m yum -a 'name=httpd state=present'
/ 卸載httpd
ansible testsrv -m yum -a 'name=httpd state=absent'

Service模塊

  • 功能:管理服務
  • 常用參數
action: service
arguments     # 向服務傳遞的命令行參數
enabled       # 設置服務開機自動啓動,參數爲yes|no
name=         # 控制服務的名稱
pattern       # 定義一個模式,如果通過status指令來查看服務的狀態時,沒有響應,就會通過ps指令在進程中根據該模式進行查找,如果匹配到,則認爲該服務依然在運行
runlevel      # 設置服務自啓動級別
sleep         # 如果執行了restarted,則在stop和start之間沉睡幾秒鐘
state         # 啓動`started' 關閉`stopped' 重新啓動 `restarted' 重載 `reloaded'
  • 範例
/ 啓動服務並設爲開機啓動
ansible testsrv -m service -a 'name=httpd enabled=yes state=started'
/ 停止服務
ansible testsrv -m service -a 'name=httpd state=stopped'
/ 重裝服務
ansible testsrv -m service -a 'name=httpd state=reloaded'
/ 修改配置文件然後重啓服務
ansible testsrv -m shell -a "sed -i 's/^Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf"
ansible testsrv -m service -a 'name=httpd stated=restarted'

User模塊

  • 功能:管理用戶
  • 常見參數
comment          # 用戶的描述信息
createhome       # 是否創建家目錄
force            # 在使用`state=absent'是, 行爲與`userdel --force'一致.
group            # 指定基本組
groups           # 指定附加組,如果指定爲('groups=')表示刪除所有組
home             # 指定用戶家目錄
login_class      #可以設置用戶的登錄類 FreeBSD, OpenBSD and NetBSD系統.
move_home        # 如果設置爲`home='時, 試圖將用戶主目錄移動到指定的目錄
name=            # 指定用戶名
non_unique       # 該選項允許改變非唯一的用戶ID值
password         # 指定用戶密碼
remove           # 在使用 `state=absent'時, 行爲是與 `userdel --remove'一致.
shell            # 指定默認shell
state            #設置帳號狀態,不指定爲創建,指定值爲absent表示刪除
system           # 當創建一個用戶,設置這個用戶是系統用戶。這個設置不能更改現有用戶。
uid              #指定用戶的uid
update_password  # 更新用戶密碼
  • 範例
/ 創建用戶
ansible testsrv -m user -a 'name=user1 comment="test user" uid=2048 home=/data/user1 group=root'
/ 創建系統用戶 不需要用戶家目錄
ansible testsrv -m user -a 'name=nginx comment=nginx uid=88   
shell=/sbin/nologin non_unique=yes create_home=no system=yes'
/ 刪除指定用戶nginx
ansible testsrv -m user -a 'name=nginx state=absent'

Group模塊

  • 功能:管理組
  • 常用參數
gid       # 設置組的GID號
name=     # 管理組的名稱
state     # 指定組狀態,默認爲創建,設置值爲absent爲刪除
system    # 設置值爲yes,表示爲創建系統組
  • 範例
/ 創建用戶組
ansible testsrv -m group -a 'name=nginx gid=88 system=yes'
/ 刪除用戶組
ansible testsrv -m group -a 'name=nginx state=absent'

Setup模塊

功能:返回系統狀態信息

ansible srv -m setup
ansible srv -m setup -a "filter=ansible_nodename"
ansible srv -m setup -a "filter=ansible_hostname"
ansible srv -m setup -a "filter=ansible_domain"
ansible srv -m setup -a "filter=ansible_memtotal_mb"
ansible srv -m setup -a "filter=ansible_memory_mb"
ansible srv -m setup -a "filter=ansible_memfree_mb"
ansible srv -m setup -a "filter=ansible_os_family"
ansible srv -m setup -a "filter=ansible_distribution_major_version"
ansible srv -m setup -a "filter=ansible_distribution_version"
ansible srv -m setup -a "filter=ansible_processor_vcpus"
ansible srv -m setup -a "filter=ansible_all_ipv4_addresses"
ansible srv -m setup -a "filter=ansible_architecture"

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