当前位置: 首页 > >

Ansible 简单使用介绍

发布时间:

注:本文基于CentOS 7.2系统搭建ansible进行说明


1、简介

ansible是新出现的自动化运维工具,基于Python开发。主要用于对批量系统的配置、程序进行管理,而这些管理主要通过批量命令的执行实现。ansible底层是基于ssh协议的,因此并不需要在客户端另外安装其他组件。


2、搭建

在CentOS 7系列上,直接使用以下命令安装,


yum install ansible -y

3、主机配置

ansible的配置文件为:


/etc/ansible/ansible.cfg

这个配置文件不需要修改即可运行,里面的配置几乎也都是注释状态。真正需要我们配置的就是hosts文件。


/etc/ansible/hosts

该文件定义了我们管理的主机,配置里可以自定义组,这样我们就能通过组的概念来对服务器进行管理和操作。


4、连通性配置

要远程管理服务器,必然是要通过身份验证才能操作。但是如果每次都要输入密码,那就不叫自动化了。既然是通过ssh协议通信,那我们就可以通过公钥的方式实现免密登录。


首先大概讲一下ssh免密登录配置,假如要通过A管理B、C、D三台服务器,那么就要将A服务器上的公钥都放到B、C、D上,这样在ssh登录鉴权的时候就直接通过公钥确认,无需输入密码。


具体配置如下:


    在A服务器上生成公钥

ssh-keygen -b 2048 -t rsa

其中,-b指定密钥位数,目前rsa算法大于等于2048才认为是安全的,-t指定使用的算法。之后可以一路狂按enter。默认会在~/.ssh/下面(注意.ssh有个点)生成公私钥对,如下:


[root@localhost ~/.ssh]# ls
. .. id_rsa id_rsa.pub

接下来就要把公钥id_rsa.pub 拷贝到B、C、D服务器上。ssh提供了ssh-copy-id这个命令。


ssh-copy-id -i id_rsa.pub host

其中, -i指定要拷贝的公钥文件,host即为拷贝对象ip或域名。如果是针对其他用户,可以在ip前指定用户名,


ssh-copy-id -i id_rsa.pub user@host

这个命令执行的效果即为:在host机器的user用户的家目录下生成目录“.ssh”,并在该目录下生成authorized_keys文件。该文件内容即为id_rsa.pub的内容。


通过将公钥一一拷贝到B、C、D上后,就能通过服务器A免密登录这三台机器,ansible命令也就可以执行了。


5、ansible命令使用

ansible是基于模块工作的,本身没有批量部署的能力,其具体功能都是通过各个模块实现的,常用的模块有shell、raw、command、copy、fetch、script等等,具体使用可通过ansible-doc 命令查看使用帮助。


6、注意事项

因为ansible是比较新的工具,因此,对于一些旧的*台支持不太好,比如对于python的版本是有要求的,CentOS 7系列的ansible是2.4版本,这要求它管理的客户端的python版本不低于2.6,所以CentOS 5系列的原生python版本是不支持的,需要手动升级到对应高版本或者管理端使用ansible的低版本。ansible社区回复如下:


Ansible 2.4 dropped support for Python 2.4 and 2.5, so it is not expected to work on such nodes. You can either upgrade/install a supported Python version or use Ansible 2.3.



友情链接: