1. 程式人生 > >Ansible簡單介紹及安裝部署詳解

Ansible簡單介紹及安裝部署詳解

ansible簡單介紹

ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。

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

在這裡插入圖片描述

  1. 連線外掛connection plugins:負責和被監控端實現通訊;
  2. host inventory:指定操作的主機,是一個配置檔案裡面定義監控的主機;
  3. 各種模組核心模組、command模組、自定義模組;
  4. 藉助於外掛完成記錄日誌郵件等功能;
  5. playbook:劇本執行多個任務時,非必需可以讓節點一次性執行多個任務。

ansible特點

  1. 無終端只需在主控節點部署ansible環境,是基於ssh實現管理的
  2. 模組化管理工具,有大量常規運維操作模組,可實現日常絕大部分操作
  3. 支援API及自定義模組,可通過Python輕鬆擴充套件
  4. 過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常用的模組。

------做運維之前很矯情的小年輕-----