一、Ansible配置公私鑰
上面我們已經提到過 ansible 是基於 ssh 協議實現的,所以其配置公私鑰的方式與 ssh 協議的方式相同,具體操作步驟如下:
生成密鑰
[root@ localhost ~]# ssh-keygen -t rsa
向主機分發私鑰
[root@ localhost ~]# ssh-copy-id [email protected]
[root@ localhost ~]# ssh-copy-id [email protected]
這樣,就可以實現無密碼登錄到各個服務器上。
二、Ping模塊
用於測試遠程主機是否在線,回覆pong表示在線
ping模塊用於檢查指定節點機器(被管理主機)是否還能連通,用法簡單,不涉及參數,主機如果在線,則回覆pong
三、yum模塊
使用yum軟件包管理器安裝,升級,降級,刪除和列出軟件包和組。
這個模塊是RedHat / CentOS系統作爲遠端節點的OS的時候,用的最多的。Yum是啥就不多說了,RedHat 、CentOS包管理工具
yum模塊用來在Centos系統上使用yum命令安裝軟件包
ansible webservers -m service -a 'name=vsftpd state=started enabled=yes'
ansible webservers -m yum -a 'name=httpd state=latest'
present:默認的,表示爲安裝
lastest: 安裝爲最新的版本
absent:表示刪除卸載
四、copy模塊
copy模塊用來複制文件至目標主機
https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module
src:源文件絕對路徑或相對路徑
dest:目標地址,必須是絕對路徑
content:可以代替src,要寫入到dest文件中的內容,會echo追加進去
owner:屬主
group:屬組
mode: 複製到遠程主機後,指定文件或目錄權限,類似與chmod指明
backup:覆蓋文件之前是否備份,yes|no
directory_mode:遞歸設定目錄權限
force:yes,如果文件存在,但是內容不同,則強行覆蓋,默認選項;no,如果文件不存在才複製
ansible webservers -m copy -a ‘src=/root/nginx.sh dest=/opt/’
ansible webservers -m copy -a 'src=skaf.txt dest=/opt/'
五、fetch模塊
它用於從遠程機器獲取文件,並將其本地存儲在由主機名組織的文件樹中。
src: 遠程系統上要獲取的文件。 這必須是一個文件,而不是一個目錄。 後續版本可能會支持遞歸提取。
dest: 保存文件的目錄。
flat: 允許覆蓋將主機名/路徑/文件/文件附加到目的地的默認行爲。
fail_on_missing: 當設置爲yes時,如果源文件丟失,任務將會失敗。
validate_checksum: 在獲取文件之後驗證源和目標校驗和是否匹配
六、service 模塊
服務管理模塊這是常用模塊,用於控制服務:
name:必選項,服務的名稱。
state: started(啓動) stopped(停止) restarted(重啓) reloaded(重載)
enabled:設置服務是否開機自動啓動,默認是no,參數爲yes|no, 要求狀態(state)和啓用(enabled)中至少有一個。
arguments:給命令行提供一些選項,向服務傳遞的命令行參數。
runlevel:運行級別,設置服務自啓動級別。
sleep:如果執行了restarted,則在stop和start之間沉睡幾秒鐘
pattern:定義一個模式,如果通過status指令來查看服務的狀態時,沒有響應,就會通過ps指令在進程中根據該模式進行查找,如果匹配到,則認爲該服務依然在運行