自动化运维工具ansible的安装与使用

来源:互联网 发布:fcc 网络中立 编辑:程序博客网 时间:2024/05/20 20:43

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

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
二、安装和使用
(1
yum install epel-release -y 
 yum install ansible -y

(2)配置主机组:
cd   /etc/ansible/hosts
找到webservice,这个是主机组的名字,可以自定义,比如test,增加两台主机进入test组,分别是192.168.50.202和192.168.50.203如下图所示
(3)配置从这个管理节点(安装了ansible)的节点到其他两台的面密码登陆
 ssh-keygen     //生成这台主机的公钥
将公钥发送到要管理的服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub192.168.50.202 
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.50.202 
,此时已经可以实现从该主机到这两台主机的面密码登陆了
(4)使用ansible来操作和管理其他机器

命令格式如下: 
   ansible + 主机组名称 + -m + 模块名称 + -a + 参数

主机组名称,即hosts中定义的主机组名称 ,次数为test

-m 指使用模块,后加指定的模块名称 

-a 指传给模块的参数

在不指定模块时,默认调用command模块,即执行命令的动作,伺候还有copy等等

如我们想看下test组上的服务器的/root下面有哪些文件,可以使用如下命令 
      ansible test -a “ls /root”//运行结果会显示test下的所有主机组的root下的文件


将本机的文件发给其他主机的做法
ansible test -m copy -a “src=/root/install.log dest=/tmp” 
这个命令是将本地的/root/install.log发送到test组的/tmp下,执行的效果如下:
[root@worker ~]# ansible test -m copy -a "src=/root/test.txt dest=/root"192.168.50.202 | SUCCESS => {    "changed": true,     "checksum": "656f625555335decef0659baf45acc406cc311f5",     "dest": "/root/test.txt",     "failed": false,     "gid": 0,     "group": "root",     "md5sum": "1822a4a658cb424813c8bfc7422d9077",     "mode": "0644",     "owner": "root",     "secontext": "system_u:object_r:admin_home_t:s0",     "size": 14,     "src": "/root/.ansible/tmp/ansible-tmp-1512651368.98-190797399495490/source",     "state": "file",     "uid": 0}192.168.50.203 | SUCCESS => {    "changed": true, 

此时表明已经发送成功,好了今天下介绍ansible简单应用到这里。


原创粉丝点击