Linux命令集錦:ansible命令

ansible 命令主要用於批量管理,來實現自動化管理。經常使用批量操做包括:主機分組管理、實時批量執行命令或腳本、實時批量分發文件或目錄、定時同步文件等。shell

1、安裝 ansible

yum install ansible

安裝完成後 /etc/ansible/ 目錄下有個 hosts 文件,對主機實現批量管理主要是經過配置 hosts 文件。vim

2、ansible 命令參數介紹

基本使用:運維

ansible命令格式:ansible <host-pattern> [options]

經常使用 options 參數:
-m, NAME, --module-name=NAME: 指定執行使用的模塊。
-a, 'ARGUMENTS', --args='ARGUMENTS': 模塊參數。
-k, --ask-pass SSH: 認證密碼。ssh

經常使用 -m (module) 參數:工具

shell、copy、script、file、yum、user、servicespa

<host-pattern> 主機列表配置:code

編輯 /etc/ansible/hosts 文件,添加要批量執行的主機,能夠指定分組。blog

[GROUP1]    #組名
10.111.17.119:22    # 主機:端口,不指定端口則默認 ssh 端口爲22
10.111.17.120:22

[GROUP2]
10.111.18.119:22
10.111.18.120:22

3、經常使用批量操做

ansible經常使用批量操做方式基本能夠有 shell、copy 和 script 三個 module 完成。進程

3.1 批量執行 shell 命令

好比查看 GROUP1 主機組機器的 ssh 進程。ip

ansible GROUP1 -m shell -a 'ps -ef |grep ssh' -k

shell 模塊是使用最頻繁的,file、yum、user、service 這四個 module 的功能 shell 均可以完成。

ansible GROUP1 -m shell -a 'mkdir -p /root/test/' -k       #file-module,新建目錄   
ansible GROUP1 -m shell -a 'yum install vim -y' -k         #yum-module,安裝軟件
ansible GROUP1 -m shell -a 'useradd -d /mnt/kwang kwang' -k   #file-module,添加用戶
ansible GROUP1 -m shell -a 'service status iptables' -k     #service-module,查看服務狀態

3.2 批量拷貝文件

將 /root/ 目錄下的 ansible-test.jar 批量拷貝到指定主機組機器上。

ansible GROUP1 -m copy -a 'src=/root/ansible-test.jar dest=/root/' -k

3.3 批量執行 shell 腳本

在指定主機組機器上執行本機上的 /root/test.sh 腳本

ansible GROUP1 -m script -a '/root/test.sh' -k

批量執行 shell 腳本的邏輯是先將腳本拷貝到指定主機組機器上,而後執行命令。

3.4 批量替換相同文件的指定內容

 將主機組機器上的 /root/ansible.txt 文本中的 'ansible script test' 內容替換成 'be replaced',其實批量替換操做是 shell 模塊的操做。

ansible GROUP1 -m shell -a "sed -i 's/ansible script test/be replaced/g' /root/ansible.txt" -k 

【參考資料】

[1] 楊雲1028, 自動化運維工具ansible詳細介紹.

相關文章
相關標籤/搜索