1. 程式人生 > >自動化運維之Ansible安裝部署

自動化運維之Ansible安裝部署

Ansible核心元件
ansible可以看做是一種基於模組進行工作的框架結構,批量部署能力就是有ansible所執行的模組實現的。簡而言之ansible是基於“模組”完成各種“任務”的。
結構圖如下所示

ansible元件由如下六部分組成
Ansible core 核心引擎

Host inventory 主機清單:用來定義Ansible所管理的主機,預設是在Ansible的hosts配置檔案中定義被管理的主機,同時也支援自定義動態主機清單和指定其他配置檔案的位置

Connection plugins 連線外掛:負責和被管理主機實現通訊。除支援使用SSH連線被管理主機外,ansible還支援其它的連線方式,所以需要有連線外掛將各個主機用連線外掛連線到ansible

Playbooks(yam1,jinja2)劇本:用來集中定義ansible的任務配置檔案,即將多個任務定義在一個劇本中由ansible自動執行,可以由控制主機針對多臺被管理主機同時執行多個任務

Core modules 核心模組:是ansible自帶的模組,使用這些模組將資源分發到被管理主機,使其執行特定任務或匹配特定狀態

Custom modules 自定義模組:用於完成模組功能的補充,可藉助相關外掛完成記錄日誌,傳送郵件等功能

安裝部署ansible服務
ansible自動化運維環境由控制主機與被管理主機組成,由於ansible是基於SSH協議進行通訊的,所以控制主機安裝ansible軟體後不需要重啟或執行任何程式,被管理主機也不需要安裝或執行任何代理程式。

案例環境如下:


yum install epel-release -y

下載好yum源之後,就可以直接使用yum命令安裝ansible


yum install ansible -y

安裝好之後可以檢視ansible軟體的版本資訊。

ansible主要相關配置檔案在/etc/ansible目錄下

cd /etc/ansible/
總用量 24
-rw-r--r--. 1 root root 20269 10月  9 09:34 ansible.cfg        #配置檔案
-rw-r--r--. 1 root root  1016 10月  9 09:34 hosts                  #管控主機檔案
drwxr-xr-x. 2 root root    6 10月  9 09:34 roles

2 配置主機清單
ansible通過讀取預設主機清單/etc/ansible/hosts檔案,修改主機與組配置後,可同時連線到多個被管理主機上執行任務。具體配置如下:

vim hosts
[web]                                  #被管理主機分類
192.168.199.130
[mysql]                                #被管理主機分類
192.168.199.131

3 設定SSH無密碼登入
為了避免ansible下發指令時輸入被管理主機的密碼,可以通過證書籤名達到SSH無密碼登入的效果,使用ssh-keygen產生一對密匙,使用ssh-copy-id來下發生成的公匙
關閉三臺伺服器的防火牆

systemctl stop firewalld.service
setenforce 0

配置祕鑰驗證

ssh-keygen -t rsa
ssh-copy-id [email protected]
ssh-copy-id [email protected]

到此,ansible的環境就部署完成了。