Ansible簡單介紹及安裝部署詳解
阿新 • • 發佈:2018-12-30
ansible簡單介紹
ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。
ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架,架構圖如下:
- 連線外掛connection plugins:負責和被監控端實現通訊;
- host inventory:指定操作的主機,是一個配置檔案裡面定義監控的主機;
- 各種模組核心模組、command模組、自定義模組;
- 藉助於外掛完成記錄日誌郵件等功能;
- playbook:劇本執行多個任務時,非必需可以讓節點一次性執行多個任務。
ansible特點
- 無終端只需在主控節點部署ansible環境,是基於ssh實現管理的
- 模組化管理工具,有大量常規運維操作模組,可實現日常絕大部分操作
- 支援API及自定義模組,可通過Python輕鬆擴充套件
- 過Playbooks來定製強大的配置、狀態管理
1.安裝ansible
本次安裝基於CentOS7系統環境、Python2.7.5、root使用者。
部署架構規劃:
master | slave |
---|---|
ser1:10.220.5.111 | ser2:10.220.5.112 ser3:10.220.5.113 |
配置三臺主機能夠相互解析
#在三臺主機的 /etc/hosts 檔案中新增以下內容
10.220.5.111 ser1
10.220.5.112 ser2
10.220.5.113 ser3
下載yum源
[[email protected] ~]# wget -O /etc/yum.repos.d/7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安裝epel
[[email protected] ~]# yum install epel-release -y
安裝ansible
[[email protected] ~]# yum install ansible -y
[[email protected] ~]# ansible --version
ansible 2.7.2
# 檢視相關檔案
[[email protected] ~]# rpm -qc ansible
/etc/ansible/ansible.cfg <<<配置檔案
/etc/ansible/hosts <<<主機清單列表,即host inventory
需要注意的是安裝ansible的主機需要有python2.7及以上版本python -V
可以檢視當前python版本,如果低於2.7版本可能會安裝失敗,或者在後期使用中會有位置bug
2.配置master節點與其他主機的互信
由於ansible是基於ssh工作實現對其他節點的管理,so我們需要讓anssible基於ssh與被管理節點通訊。
[[email protected] ~]# ssh-keygen -t rsa -P ""
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.111
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.112
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.113
# 測試
[[email protected] ~]# ssh ser3 ip addr
3. 新增被管理節點
將所有被管理的主機加入到/etc/ansible/hosts
中,否則無法管理
[[email protected] ~]# cp /etc/ansible/hosts{,.bak}
[[email protected] ~]# vim /etc/ansible/hosts
[webservers]
10.220.5.112
10.220.5.113
4.執行ping存活檢測
[[email protected] ~]# ansible all -m ping
10.220.5.112 | SUCCESS => {
"changed": false,
"ping": "pong"
}
10.220.5.113 | SUCCESS => {
"changed": false,
"ping": "pong"
}
到這裡ansible就已經安裝部署完成,但想要使用ansible進行後端節點的管理是需要基於ansible的眾多模組來實現,下一篇博文詳細講解ansible常用的模組。
------做運維之前很矯情的小年輕-----