Ansible简单介绍及安装部署详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cx55887/article/details/84640057

ansible简单介绍

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

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

在这里插入图片描述

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

ansible特点

  1. 无终端只需在主控节点部署ansible环境,是基于ssh实现管理的
  2. 模块化管理工具,有大量常规运维操作模块,可实现日常绝大部分操作
  3. 支持API及自定义模块,可通过Python轻松扩展
  4. 过Playbooks来定制强大的配置、状态管理

1.安装ansible

本次安装基于CentOS7系统环境、Python2.7.5、root用户。
部署架构规划:

master slave
ser1:10.220.5.111 ser2:10.220.5.112 ser3:10.220.5.113

配置三台主机能够相互解析

#在三台主机的 /etc/hosts 文件中添加以下内容
10.220.5.111 ser1
10.220.5.112 ser2
10.220.5.113 ser3

下载yum源

[root@ser1 ~]# wget -O /etc/yum.repos.d/7.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装epel

[root@ser1 ~]# yum install epel-release -y

安装ansible

[root@ser1 ~]# yum install ansible -y
[root@ser1 ~]# ansible --version
ansible 2.7.2
# 查看相关文件
[root@ser1 ~]# rpm -qc ansible
/etc/ansible/ansible.cfg        <<<配置文件
/etc/ansible/hosts              <<<主机清单列表,即host inventory

需要注意的是安装ansible的主机需要有python2.7及以上版本python -V可以查看当前python版本,如果低于2.7版本可能会安装失败,或者在后期使用中会有位置bug

2.配置master节点与其他主机的互信

由于ansible是基于ssh工作实现对其他节点的管理,so我们需要让anssible基于ssh与被管理节点通信。

[root@ser1 ~]# ssh-keygen -t rsa -P ""
[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.111
[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.112
[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.113
# 测试
[root@ser1 ~]# ssh ser3 ip addr

3. 添加被管理节点

将所有被管理的主机加入到/etc/ansible/hosts中,否则无法管理

[root@ser1 ~]# cp /etc/ansible/hosts{,.bak}
[root@ser1 ~]# vim /etc/ansible/hosts 
[webservers]
10.220.5.112
10.220.5.113

4.执行ping存活检测

[root@ser1 ~]# ansible all -m ping
10.220.5.112 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
10.220.5.113 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

到这里ansible就已经安装部署完成,但想要使用ansible进行后端节点的管理是需要基于ansible的众多模块来实现,下一篇博文详细讲解ansible常用的模块。

------做运维之前很矫情的小年轻-----

猜你喜欢

转载自blog.csdn.net/cx55887/article/details/84640057