1. 程式人生 > >Linux命令集錦:ansible命令

Linux命令集錦:ansible命令

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詳細介紹.