Ansible一種集成IT系統的配置管理,應用部署,執行特定任務的開源平臺。Ansible具有如下特點:
部署簡單,只需在主控制端部署Ansible環境,被控端無需做任何操作;
默認使用SSH協議對設備進行管理;
主從集中化管理;
配置簡單,功能強大,擴展性強
通過Playbooks來定制強大的配置、狀態管理;
一、Ansible安裝
1.環境配置
角色 | 主機名 | IP | 組名 |
msster | Automation | 192.168.1.23 | |
cleint | test1 | 192.168.1.24 | webservers |
client | test2 | 192.168.1.76 | webservers |
2.安裝ansible,在master上執行以下操作
EPEL已經提供了ansible所需的所有支持軟件包,所以在這里使用epel源進行安裝:
3.ansible配置及測試
第一步修改主機與組配置,文件位置/etc/ansible/hosts,格式為ini,添加兩臺主機Ip,同時定義兩個ip到webservers組,內如如下:
通過ping模塊測試主機的連通性,分別對單主機及組進行ping操作,出現如下圖所示表示測試成功
注意:由于主控端與被控主機未配置SSH證書信任,需要在執行ansible命令時添加-k參數,要求提供root默認密碼,
4.配置Linux主機SSH無密碼訪問
在主控端主機192.168.1.23創建密鑰,執行ssh-keygen -t rsa ,有詢問直接按回車鍵即可,將在/root/.ssh/下生成一對密鑰,其中id_rsa為私鑰,id_rsa.pub為公鑰
[root@Automation ~]# ssh-keygen -t rsaGenerating 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:8c:b2:59:d6:39:14:92:7f:95:98:3d:98:55:36:aa:bd root@AutomationThe key's randomart image is:+--[ RSA 2048]----+| ... B.o+ || .. .= =o . || .. ... || =...o || . + S.. . || * . . || o E || || |+-----------------+
接下來同步公鑰id_rsa.pub到目標主機,推薦使用ssh-copy-id 公鑰拷貝工具
檢驗SSH無密碼配置是否成功,運行ssh root@192.168.1.24,直接進入目標root賬戶提示符,說明配置成功.
5.定義主機與組規則
ansible通過定義好的主機與組規則對匹配的目標主機進行遠程操作,配置規則文件默認是/etc/ansible/hosts。
6.定義主機與組
所有定義的主機與組規則都在/etc/ansible/hosts文件中,為ini文件格式,主機可以用域名、IP、別名進行標識,其中webservers,dbservers為組名,緊跟著主機為其成員
192.168.1.21:29050 [webservers]192.168.1.23 [dbservers]192.168.1.76
其中,192.168.1.21:29050的意思是定義一個SSH服務器端口29050的主機,當然我們也可以使用別名來描述一臺主機,如
web1 ansible_ssh_port=22 ansible_ssh_host = 192.168.1.34
web1為定義的一個別名,ansible_ssh_port為主機SSH服務端口,ansible_ssh_host為目標主機
新聞熱點
疑難解答
圖片精選