Linux命令集錦:ansible命令


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

一、安裝 ansible

yum install ansible

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

二、ansible 命令參數介紹

基本使用:

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

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

常用 -m (module) 參數:

shell、copy、script、file、yum、user、service

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

編輯 /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

三、常用批量操作

ansible常用批量操作方式基本可以有 shell、copy 和 script 三個 module 完成。

3.1 批量執行 shell 命令

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM