Linux ssh/ansible 遠程批量執行命令


對於簡單的命令,ssh

# ssh remote_ip "command01 ; command02"

注意:
A. 雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
B. 分號,兩個命令之間用分號隔開

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

一. 安裝ansible

# yum install ansible

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

二. ansible 命令參數詳解

常用參數:
-m MODULE_NAME, --module-name=MODULE_NAME,執行模塊的名字,默認使用 command 模塊,所以如果是只執行單一命令可以不用 -m參數
-a MODULE_ARGS, --args=MODULE_ARGS  模塊的參數,如果執行默認COMMAND的模塊,即是命令參數,如:“date”,"pwd"等等,module arguments模塊參數
-C, --check     don't make any changes; instead, try to predict some  只是測試一下會改變什么內容,不會真正去執行;相反,試圖預測一些可能發生的變化
-i INVENTORY, --inventory-file=INVENTORY,指定庫存主機文件的路徑,默認為/etc/ansible/hosts,(default=/etc/ansible/hosts)
-k, --ask-pass  ask for SSH password  登錄密碼,提示輸入SSH密碼而不是假設基於密鑰的驗證

常用 -m (module) 參數:
shell、copy、script、file、yum、user、service

三. 常用批量操作(在免密機器上操作,參數 -k 忽略)
ansible常用批量操作方式基本可以有 shell、copy 和 script 三個 module 完成。

1. 批量執行
比如查看 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,查看服務狀態

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

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

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

# ansible GROUP1 -m script -a '/root/test.sh' -k
批量執行shell腳本腳本,ip.txt里包含100個ip地址 # ansible
-i ip.txt all -m script -a "fal.sh"

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 

 


免責聲明!

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



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