華為云計算 云知識 Ansible是什么
Ansible是什么

簡介

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認證信息即可。