简介
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 fing erp rint 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认证信息即可。