Ansible 常用模組

2021-10-09 10:51:01 字數 2106 閱讀 9081

ansible是基於python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點

具有批量系統配置、批量程式部署、批量執行命令等功能。

是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架。

以下通過實際演練來更好的理解ansible的工作原理

使用三颱機器組建ansible使用環境

注意:三颱主機要網路同步時間,101主機作為ansible控制機,106和107主機作為普通伺服器

yum -y install ansible

#安裝ansible

基於金鑰進行ssh認證

配置/etc/ansible/hosts

ssh-keygen  -t rsa -p ''

for i in 106 107;do ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected].$i ;done

ansible -help

-m 指定呼叫的模組

-a 每個模組都有自己的專有的引數,指定此模組引數

-f 指定每批處理多少臺主機,預設5臺

#更多的引數可自行了解

eg:ansible all --list-hosts #列出當前處於同一模式的所有主機

ansible webservers --list-hosts

ping模組:

ansible all -m ping

#測試ansible到各個伺服器的連通性

192.168.1.106 | success =

>

192.168.1.107 | success =

>

ansible-doc -h#檢視ansible文件的幫助資訊

ansible-doc -l#列出ansible支援的所有模組資訊,如上文只能中的ping模

ansible-doc -s command#檢視指定模組的引數資訊,command是一種常用的模組,預設不指定模組時就是使用command

command模組:

command模組是不能是被shell語法的,所有在用到如bash類的shell時可以使用shell模組

ansible all -m shell -a 「echo centos| passwd --stdin user1」

#shell模組與command模組基本相同,只是此模組支援shell型別的語法

#如果換成command模組,則結果是echo後的內容全部作為字串輸出,即command是不識別管道和passwd等shell語言的

此模組僅設定檔案屬性,不改變檔案內容

從網際網路獲取檔案到本節點,可通過http、https和ftp實現

計畫任務

ansible webservers -m cron -a 「name=『timesync』 job=』/usr/sbin/ntpdate 172.18.0.1』 minute=』/5』"

#建立熱舞計畫,name指定計畫任務的名稱,job指定任務計畫的操作,minute表示執行的時間點即每五分鐘執行一次同步時間操作

ansible webservers -m cron -a 「name=『timesync』 state=absent」

#刪除計畫任務

ansible webservers -m cron -a "name=『timesync』 job=』/usr/sbin/ntpdate 172.18.0.1』 minute=』/5』 disabled=true」

#disabled表示雖然建立計畫任務但是不啟用,要啟用的話將true改為false

ansible webservers -m yum -a 「name=nginx state=latest」

#安裝nginx,最新版本,安裝過程中的資訊會全部輸出值螢幕端

管理服務

ansible webservers -m service -a 「name=nginx enabled=true state=started」

#開啟nginx服務,並設定成開機自啟

Ansible常用模組

1.ping模組2.ansible command模組是ansible預設模組,主要用於執行linux基礎命令,可以執行遠端伺服器命令執行 任務執行等操作。但command模組不支援變數 重定向 管道符等,這些操作需要用shell模組執行 command模組使用詳解 chdir 執行命令前,切換到目...

ansible常用模組

1.setup 該模組主要用於收集資訊,是通過呼叫facts元件來實現的 ansible doc s setup ansible mysql m setup 檢視mysql伺服器上所有資訊檢視遠端主機基本資訊 ansible all m setup2.ping測試遠端主機執行狀態 ansible a...

Ansible常用模組

例子 ansible webserver m pingname 指定安裝包的名字 state latest 安裝最新版 present 預設安裝 installed 安裝 absent 解除安裝 removed 解除安裝 例子 ansible webservers m yum a name http...