1. 程式人生 > >自動化運維系列之Ansible的簡介與安裝【持續更新···】

自動化運維系列之Ansible的簡介與安裝【持續更新···】

zabbix cti 服務 部署安裝 部署 ansible ffffff 執行 gen

自動化運維系列之Ansible的簡介與安裝

自動化運維工具簡介

由於互聯網的快速發展導致產品更新換代的速度逐漸加快,這就導致運維人員的日常工作會大大增加,如果還是按照傳統方式進行維護工作會使工作效率低下。此時,就需要部署自動化運維了,自動化運維會盡可能安全、高效的完成運維人員的日常工作。

自動化運維工具劃分為兩類:一類是需要使用代理工具的,也就是基於專用的Agent程序來完成管理功能,如:Puppet、Func、Zabbix等;另一類是不需要配置代理工具的,可以直接基於SSH服務來完成管理功能,如:Ansible、Fabric等。

Ansible簡介

Ansible是基於Python開發的,集合了眾多優秀運維工具的優點,實現了批量運行命令、部署程序、配置系統等功能。默認通過ssh協議進行遠程命令執行或下發配置,無需部署任何客戶端代理軟件,從而使得自動化環境部署變得更加簡單。可同時支持多平臺主機並行管理,使得管理主機更加便捷。

技術分享圖片

以上就是Ansible基本構架組成,主要分為六個部分:

Ansible core 核心引擎

Host inventory 主機清單:用來定義Ansible所管理的主機,默認是在Ansible的hosts配置文件中定義被管理主機,同時也支持自定義動態主機清單和指定其他配置文件的位置。

Connection plugins 連接插件:負責和被管理主機實現通信。除支持使用SSH連接被管理主機外,Ansible還支持其他的連接方式,所以需要有連接插件將各個主機用連接插件連接到Ansible。

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

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

Custom modules 自定義模塊:用於完成模塊功能的補充,可借助相關插件完成記錄日誌、發送郵件等功能。

Ansible自動化運維工具的部署安裝

  • 實驗環境
角色 主機名 IP地址 組名
控制主機 CentOS7-1 172.16.10.138
被管理主機 CentOS7-2 172.16.10.147 webserver
被管理主機 CentOS7-3 172.16.10.133 mysql
  • 安裝配置yum源

yum -y install epel-release

  • 安裝Ansible工具及tree樹形圖顯示工具

yum -y install ansible tree

  • 安裝好ansible之後,可以查看ansible的版本信息

ansible --version

技術分享圖片

  • 以樹形圖的方式顯示ansible的相關文件

tree /etc/ansible

技術分享圖片

  • 修改ansible的主機清單,將兩臺被管理主機的IP及組名添加

vim /etc/ansible/hosts

[webserver]
172.16.10.147    #將第一臺被管理主機添加至webserver組

[mysql]
172.16.10.133   #將第二臺被管理主機添加至mysql組
  • 生成密鑰對,使控制主機發送部署時免交互
ssh-keygen -t rsa
ssh-copy-id [email protected]
ssh-copy-id [email protected]

ssh-agent bask
ssh-add

自動化運維系列之Ansible的簡介與安裝【持續更新···】