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...