华为云计算 云知识 Ansible是什么
Ansible是什么

简介

Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

配置流程

1.选择操作环境

本文选用华为鲲鹏云服务ECS KC1实例做测试

2.获取源代码

https://releases.ansible.com/ansible/提供Ansible各版本的源码压缩包,可以直接下载。

3.编译源代码

本文以“ansible-2.0.0.0”版本为例进行说明。

1)由于Ansible是基于Python开发的,所以需要先安装Python开发包“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命令是否成功执行,来验证Ansible是否安装成功并能正常使用。

步骤一:设置SSH认证信息

1)在本地机器上使用ssh-keygen产生公钥私钥对。

cd~
ssh-keygen-t rsa

参数说明:

−“-t rsa”表示使用rsa算法进行加密,执行后,会在“/root/.ssh”目录下生成“id_rsa”(私钥)和“id_rsa.pub”(公钥)。

−过程中依次提示输入保存的文件名、使用该秘钥的密码和确认密码时,直接按“enter”键。

回显内容如下:

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)添加目标节点的SSH认证信息。

用“ssh-copy-id”将公钥“id_rsa.pub”复制到目标节点中。

ssh-copy-id-i~/.ssh/id_rsa.pub root xxxx

−“xxxx”表示目标节点的IP地址,可用ifconfig命令查看,过程中会提示输入目标节点的“root”用户密码,输入即可。

−添加认证信息后,目标节点的“~/.ssh/”目录下将会出现一个“authorized_keys”文件,里面包含了Ansible管理节点的公钥信息,可以检查一下是否存在。

步骤二:验证Ansible命令是否成功执行

1)在Ansible管理服务器中创建“hosts”文件。

a.创建配置目录:

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编译安装完成后,执行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管理节点(即安装Ansible的节点)上添加目标节点(即需要管理的节点)的SSH认证信息。

解决方法:请参见4.测试已完成编译的软件的描述设置SSH认证信息即可。

上一篇:Weblogic迁移TomEE案例 下一篇:查询配额ShowQuotas