Ansible模塊詳解

一、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指令在進程中根據該模式進行查找,如果匹配到,則認爲該服務依然在運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章