Ansible快速實戰指南----多機自動化執行命令、部署神器

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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模塊,更多模塊見 後文,43)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: 共同擁有人

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章