Linux命令集錦:ansible命令
阿新 • • 發佈:2018-12-19
ansible 命令主要用於批量管理,來實現自動化管理。常用批量操作包括:主機分組管理、實時批量執行命令或指令碼、實時批量分發檔案或目錄、定時同步檔案等。
一、安裝 ansible
yum install ansible
安裝完成後 /etc/ansible/ 目錄下有個 hosts 檔案,對主機實現批量管理主要是通過配置 hosts 檔案。
二、ansible 命令引數介紹
基本使用:
ansible -i /etc/ansible/hosts all -m shell -a 'command' -k -u root
-i 引數是指定配置的 hosts 檔案位置, all 是對 hosts 檔案中所有主機生效,當然也可以進行分組,下面會有介紹;
-m 引數表示執行的模組為 shell,執行指令碼用 script;
-a 引數後面為具體的 shell 命令;
-k 引數表示通過輸入密碼來執行命令,這種方式就不需要設定 ssh 免密碼登入;
-u 表示表示連線的使用者名稱,例子中是以 root 使用者執行。
主要引數如下:
-u username 指定ssh連線的使用者名稱,即執行後面命令的使用者 -i inventory_file 指定所使用的inventory檔案的位置,預設為/etc/ansible/hosts -m module 指定使用的模組,預設為command -f 10指定併發數,併發量大的時候,提高該值 --sudo [-k] 當需要root許可權執行的化,-k引數用來輸入root密碼
三、ansible 批量管理常用操作
3.1 主機分組管理
(1) 編輯 /etc/ansible/hosts 檔案,將主機分為兩組。
[GROUP1] #組名 10.111.17.119:22 # 主機:埠,不指定埠則預設 ssh 埠為22 10.111.17.120:22 [GROUP2] 10.111.18.119:22 10.111.18.120:22
(2) 分組執行方式
獲取 GROUP1 組中主機的主機名
ansible -i /etc/ansible/hosts GROUP1 -m shell -a 'hostname' -k
出現如下結果說明執行成功:
# ansible -i /etc/ansible/hosts GROUP1 -m shell -a 'hostname' -k SSH password: 10.111.17.119 | SUCCESS | rc=0 >>
host-10-111-17-119
10.111.17.120 | SUCCESS | rc=0 >>
host-10-111-17-120
【參考資料】
[1] 楊雲1028, 自動化運維工具ansible詳細介紹.