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

自動化運維之Ansible服務部署

基礎 cat body openstac -m release firewall 應用領域 引擎

Ansible簡介

Ansible使用Python語言開發,巧妙的設計、實現了簡單易用、功能強大的自動化管理工具。目前它已經廣泛應用於各種規模、各個領域的企業。

Ansible應用領域

Ansible的編排引擎可以出色地完成配置管理、流程控制、資源部署等工作,與其他IT自動化產品比較,Ansible提供了一種不需要安裝客戶端軟件、管理簡便、功能強大的基礎架構配置、維護工具。

  • 安裝部署過程特別簡單,學習曲線很平坦;
  • 管理主機便捷,支持多臺主機並行管理;
  • 避免在被管理主機上安裝客戶代理,打開額外端口,采用無代理方式,只是利用現在的ssh後臺進程;
  • 用於描述基礎架構的語言無論對機器還是對人都是友好的;
  • 關註安全,很容易對執行的內容進行審計、評估、重寫;
  • 能夠立即管理遠程被管理主機,不需要預先安裝任何軟件;
  • 不僅僅支持Python,可運行使用任何動態語言開發的模塊;
  • 非root賬號也可以使用;
  • 成為最簡單、易用的IT自動化系統

Ansible功能特性

從功能上實現了以下目標:

  • 應用代碼自動化部署
  • 系統管理配置自動化
  • 支持持續交付自動化
  • 支持雲計算、大數據平臺(如AWS、OpenStack、CloudStack、VMWare等環境)
  • 輕量級,無需在客戶端安裝agent,更新時只需在控制機上進行一次更新
  • 批量任務執行可以寫成腳本,不用分發到遠程主機就可以執行
  • 使用Python編寫,維護更簡單
  • 支持非root用戶管理操作,支持sudo

系統環境

主機 操作系統 IP地址
Ansible Server Centos 7.3 X86_64 192.168.96.15
Client1 Centos 7.3 X86_64 192.168.96.23
Client2 Centos 7.3 X86_64 192.168.96.24

一、安裝Ansible

1.關閉防火墻及Selinux

setenforce 0
systemctl stop firewalld

2.安裝repo源

yum -y install epel-release

3.安裝rabbitmq-server軟件包

yum -y install ansible tree

4.查看ansible目錄結構

tree /etc/ansible/

技術分享圖片

5.編輯主機及組的配置

vim /etc/ansible/hosts

#新增主機
[webserver]
192.168.96.23
192.168.96.24
[mysql]
192.168.96.24

二、配置Linux被控機ssh無密碼訪問

1.生成一對密鑰

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rkN0zcCPMUsNd/JcugxgF2z5DGCbQtMVCqDl4ZSg6rA root@client
The key‘s randomart image is:
+---[RSA 2048]----+
|  ..=o+o**B+. .  |
| . *.o =BB*= o   |
|. . o ..+@.++    |
|.     ..+ +oo.   |
|o    . .S   o    |
|o.    ..         |
|E.   .  .        |
|      ..         |
|      ..         |
+----[SHA256]-----+

技術分享圖片

2.發送公鑰至被控制機上

cd /root/.ssh

ssh-copy-id [email protected]
yes----->輸入對方root密碼--->

ssh-copy-id [email protected]
yes----->輸入對方root密碼--->

技術分享圖片

3.啟用ssh代理

ssh-agent bash
ssh-add

技術分享圖片

至此,ansible管理端已經安裝完畢了


三、對被管節點批量執行操作

1.對所有被管節點連通性進行測試

ansible all -m ping
技術分享圖片

2.對webserver組所有主機執行date命令

ansible webserver -m command -a ‘date‘

技術分享圖片

3.對webserver組所有主機執行添加計劃性任務

ansible webserver -m cron -a ‘minute="*/10" job="/bin/echo hello" name="test cron job"‘

技術分享圖片

4.對webserver組所有主機執行查詢計劃性任務

ansible webserver -a ‘crontab -l‘
技術分享圖片

自動化運維之Ansible服務部署