Ansible快速實戰指南----多機自動化執行命令、部署神器
阿新 • • 發佈:2021-09-19
1、需求:
需要在多臺主機上,傳送檔案、執行命令,進行快速部署
2、ansible 遠端複製檔案
例子:在當前節點(20.88.14.7) 上向其他指定的節點發送檔案
(1)建立host---基於密碼連線其他節點
vim host
[ip_list]
20.88.14.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root"
20.88.14.9 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root"
(2)建立測試檔案
vim test_ansible.sh
(3)遠端複製檔案到各個節點
ansible ip_list -i ./host -m copy -a "src=./test_ansible.sh dest=/root/"
解釋:
-i :指定hosts檔案路徑, 預設default=/etc/ansible/hosts
-m :要執行的模組,預設為command(這裡使用的是copy模組,更多模組見 後文,4(3)ansible常用模組)
-a:指定模組的引數 (可增加許可權引數:owner=root mode=777)
copy模組:
[root@node1 ~]# ansible-doc -s copy - name: 將檔案複製到被管理主機 action: copy backup # 建立一個備份檔案包括時間戳資訊,如果以某種方式重創錯了,還可以拿回原始檔案 content # 取代src=,表示直接用此處指定的資訊生成為目標檔案內容; dest= # 遠端節點存放檔案的路徑,必須是絕對路徑 directory_mode # 遞迴複製設定目錄許可權,預設為系統預設許可權 force # 如果目標主機包含該檔案,但內容不同,如果設定為yes,則強制覆蓋,如果設定為no,則只有當目標主機的目標位置不存在該檔案時,才複製。預設為yes group # 複製到遠端主機後,指定檔案或目錄的屬 mode # 複製到遠端主機後,指定檔案或目錄許可權,類似與 'chmod' 指明如 0644 owner # 複製到遠端主機後,指定檔案或目錄屬主 src # 要複製到遠端主機的檔案在本地的地址,可以是絕對路徑,也可以是相對路徑。如果路徑是一個目錄,它將遞迴複製。 在這種情況下,如果路徑使用"/"來結尾,則只複製目錄裡的內容,如果沒有使用"/"來結尾,則包含目錄在內的整個內容全部複製,類似於rsync。
(4)執行結果:
當前節點執行成功的結果:
其他節點:
3、ansible 遠端執行命令,修改 test_ansible.sh 的名字為 test_ansible_new.sh
(1)建立host---基於密碼連線其他節點
同前
(2)遠端執行命令,改名
ansible ip_list -i ./host -m command -a "mv /root/test_ansible.sh /root/test_ansible_new.sh"
解釋:
command模組(命令模組,預設模組,用於在遠端主機執行命令,缺點:執行的命令中無法使用變數,管道。如果需要使用管道、變數,請使用raw模組,或者shell模組)
[root@node1 ~]# ansible-doc -s command
chdir # 在執行命令之前,先切換到該目錄
creates # 一個檔名,當這個檔案存在,則該命令不執行,可以用來做判斷
executable # 切換shell來執行命令,需要使用命令的絕對路徑
free_form= #要執行的Linux指令,一般使用Ansible的-a引數代替。
removes #一個檔名,這個檔案不存在,則該命令不執行,與creates相反的判斷
(3)執行結果
本節點(20.88.14.7):
其他節點:
4、參考:
(1)ansible的安裝和連線
https://www.cnblogs.com/yanjieli/p/10969089.html
(2)ansible常用引數
https://www.cnblogs.com/tyk3201/p/12383081.html
(3)ansible常用模組
https://www.cnblogs.com/ccorz/p/ansible-chang-yong-mo-kuai.html
owner[ˈəʊnə(r)]詳細X 基本翻譯 n. 所有人,物主 網路釋義 Owner: 所有者 beneficial owner: 受益所有人 co-owner: 共同擁有人 Only action can relieve the uneasiness.