簡介
Ansible是新出現(xiàn)的 自動化 運維工具,基于Python開發(fā),集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優(yōu)點,實現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運行命令等功能。
配置流程
1.選擇操作環(huán)境
本文選用華為鯤鵬云服務ECS KC1實例做測試
2.獲取源代碼
https://releases.ansible.com/ansible/提供Ansible各版本的源碼壓縮包,可以直接下載。
3.編譯源代碼
本文以“ansible-2.0.0.0”版本為例進行說明。
1)由于Ansible是基于Python開發(fā)的,所以需要先安裝Python開發(fā)包“python-devel”。
yum install python-devel-y
2)安裝ansible依賴的模塊“paromiko”。
下載“paromiko”源碼,解壓并安裝。
wget https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz tar-xvzf paramiko-1.15.1.tar.gz cd paramiko-1.15.1 python setup.py install
3)獲取Ansible的源代碼。
cd wget https://releases.ansible.com/ansible/ansible-2.0.0.0.tar.gz
4)解壓并安裝Ansible。
tar-zxvf ansible-2.0.0.0.tar.gz cd ansible-2.0.0.0 make make install
5)編譯安裝完成后,查看Ansible版本號是否與源碼版本號一致。
ansible--version
回顯信息如下,則表示“ansible-2.0.0.0”編譯并安裝成功。
ansible 2.0.0.0 config file= configured module search path=Default w/o overrides
4.測試已完成編譯的軟件
安裝了Ansible的服務器,可以作為管理服務器,管理整個服務器集群中的其他目標服務器。通過驗證安裝了Ansible服務器上的Ansible命令是否成功執(zhí)行,來驗證Ansible是否安裝成功并能正常使用。
步驟一:設置SSH認證信息
1)在本地機器上使用ssh-keygen產(chǎn)生公鑰私鑰對。
cd~ ssh-keygen-t rsa
參數(shù)說明:
−“-t rsa”表示使用rsa算法進行加密,執(zhí)行后,會在“/root/.ssh”目錄下生成“id_rsa”(私鑰)和“id_rsa.pub”(公鑰)。
−過程中依次提示輸入保存的文件名、使用該秘鑰的密碼和確認密碼時,直接按“enter”鍵。
回顯內(nèi)容如下:
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:UgSw+84uCqU+PqllkGC/dknlkR1ueO5GndVdKWv2e9U root ecs-xjt-c-0004
The key's randomart image is:
+---[RSA 2048]----+
|......o|
|..=....o|
|...=.=.o..|
|o...o.=.o+|
|o......So oo..|
|+o...o.E|
|o+o o.o o|
|.B.oo...|
|+o+.o+.|
+----[SHA256]-----+
2)添加目標節(jié)點的SSH認證信息。
用“ssh-copy-id”將公鑰“id_rsa.pub”復制到目標節(jié)點中。
ssh-copy-id-i~/.ssh/id_rsa.pub root xxxx
−“xxxx”表示目標節(jié)點的IP地址,可用ifconfig命令查看,過程中會提示輸入目標節(jié)點的“root”用戶密碼,輸入即可。
−添加認證信息后,目標節(jié)點的“~/.ssh/”目錄下將會出現(xiàn)一個“authorized_keys”文件,里面包含了Ansible管理節(jié)點的公鑰信息,可以檢查一下是否存在。
步驟二:驗證Ansible命令是否成功執(zhí)行
1)在Ansible管理服務器中創(chuàng)建“hosts”文件。
a.創(chuàng)建配置目錄:
mkdir-p/etc/ansible
b.編輯目標主機列表,在“hosts”文件中輸入需要管理的主機IP地址(與步驟一:設置SSH認證信息中目標主機的IP地址一致)。
vi/etc/ansible/hosts
c.保存并退出。
2)在Ansible管理服務器上運行Ansible命令。
ansible all-m ping
回顯信息如下,則表示Ansible安裝成功且運行正常:
192.168.1.163|SUC CES S=>{
"changed":false,
"ping":"pong"
}
已知問題
問題描述:
Ansible編譯安裝完成后,執(zhí)行ansible all-m ping命令后,報“UNREACHABLE”錯誤,如下:
192.168.1.163|UNREACHABLE!=>{
"changed":false,
"msg":"ERROR!SSH encountered an unknown error during the connection.We recommend you re-run the command using-vvvv,w
hich will enable SSH debugging output to help diagnose the issue",
"unreachable":true
}
問題原因:沒有在Ansible管理節(jié)點(即安裝Ansible的節(jié)點)上添加目標節(jié)點(即需要管理的節(jié)點)的SSH認證信息。
解決方法:請參見4.測試已完成編譯的軟件的描述設置SSH認證信息即可。