部署自動化運維服務——Ansible
阿新 • • 發佈:2018-08-02
部署 python開發 生成密鑰 ssh-key 以及 幫助 img 運維人員 容易
由於互聯網的快速發展導致產品更新換代速度逐漸加快,運維人員每天都要進行大量的維護操作,仍舊按照傳統方式進行維護會使得工作效率低下。部署自動化運維就成為了首先,自動化運維能夠幫助工程師盡可能安全、高效的完成工作。自動化運維的工具一般分為兩類:一類是需要使用代理工具,也就是基於專用的Agent程序來完成管理功能;另一類是不需要管理工具,可以直接基於SSH服務來完成管理功能。
簡述Ansible
Ansible基於python開發,集合了眾多優秀運維工具的優點,實現了批量運行命令、部署程序、配置系統等功能。默認通過SSH協議進行遠程命令執行或下發配置,無需部署任何客戶端代理軟件,從而使得自動化環境部署變得更加簡單。可同時支持多臺主機並行管理,使得管理主機更加便捷。
Ansible具有獨特的設計理念:
- 安裝部署過程特別簡單,學習曲線很平坦;
- 管理主機便捷,支持多臺主機並行管理;
- 避免在被管理主機上安裝客戶代理,打開額外端口,采用無代理方式,只是利用現在的ssh後臺進程;
- 用於描述基礎架構的語言無論對機器還是對人都是友好的;
- 關註安全,很容易對執行的內容進行審計、評估、重寫;
- 能夠立即管理遠程被管理主機,不需要預先安裝任何軟件;
- 不僅僅支持Python,可運行使用任何動態語言開發的模塊;
- 非root賬號也可以使用;
- 成為最簡單、易用的IT自動化系統
環境準備
- 關閉防火墻及selinux防火墻
systemctl stop firewalld setenforce 0
- 虛擬機規劃
角色 | 系統版本 | IP地址 | 所用軟件 |
---|---|---|---|
管理主機 | CentOS-7-x86_64 | 172.16.10.34 | ansible 2.6.2 |
被管主機 | CentOS-7-x86_64 | 172.16.10.30 | \ |
被管主機 | CentOS-7-x86_64 | 172.16.10.38 | \ |
被管主機 | CentOS-7-x86_64 | 172.16.10.39 | \ |
部署ansible服務
安裝軟件
yum install epel-release -y
yum -y install ansible
配置主機清單
將多臺主機添加到同一個人組中進行集中管理,在使用管理命令時只需要使用類名稱,即可管理整個類
cd /etc/ansible/
vim hosts
[web] //被管理主機分類,名稱自定義
172.16.10.30
172.16.10.38
[mysql]
172.16.10.39
設置SSH無密碼登陸
SSH以非對稱加密實現身份驗證。身份驗證有多種途徑,例如其中一種方法是使用自動生成的公鑰-私鑰對來簡單地加密網絡連接,隨後使用密碼認證進行登錄;另一種方法是人工生成一對公鑰和私鑰,通過生成的密鑰進行認證,這樣就可以在不輸入密碼的情況下登錄。任何人都可以自行生成密鑰。公鑰需要放在待訪問的電腦之中,而對應的私鑰需要由用戶自行保管。認證過程基於生成出來的私鑰,但整個認證過程中私鑰本身不會傳輸到網絡中。
生成公私鑰
ssh-keygen -t rsa
下發公鑰到被管主機
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] //依次修改IP,發送到三臺被管主機
設置ssh自動代理,避免交互
ssh-agent bash
ssh-add
測試ansible是否搭建成功
以一條簡單命令測試是否成功,分別使用IP、組名、以及查看所有被管主機的時間
使用IP地址
ansible 172.16.10.30 -m command -a ‘date‘
使用組名
ansible web -m command -a ‘date‘
查詢所有被管主機
ansible all -m command -a ‘date‘
部署自動化運維服務——Ansible