Ansible 简介与安装部署

互联网技术的发展,机房里面机器的数量随之增加,运维的难度和复杂度也在增加,需要投入的运维人员和成本也在增加,从而催生了一系列的自动化运维工具(Ansible、SaltStack、Puppet)的产生来减少运维的成本。
Ansible、SaltStack、Puppet都是目前比较受用户欢迎的自动化化运维工具,其中Ansible和SaltStack使用python编写,具有良好的可移植性。Puppet的使用脚本语法复杂,且可移植性比较差,目前的使用者慢慢变少。本博文介绍Ansible,下一系列博文将介绍Saltstack。

什么是Ansible?

当下有许多的运维自动化工具(配置管理 ),例如:Chef、Ansible、SaltStack、Puppet、Fabric 等。Ansible 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。

Ansible 特点:

    部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。

    默认使用 SSH(Secure Shell)协议对设备进行管理。

    主从集中化管理。

    配置简单、功能强大、扩展性强。

    支持 API 及自定义模块,可通过 Python 轻松扩展。

    通过 Playbooks 来定制强大的配置、状态管理。

    对云计算平台、大数据都有很好的支持。

     提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口 —- AWX 平台

Ansible 与 SaltStack的区别:

   最大的区别是 Ansible 无需在被监控主机部署任何客户端代理,默认通过 SSH 通道进行远程命令执行或下发配置。

    相同点是都具备功能强大、灵活的系统管理、状态配置,都使用 YAML 格式来描述配置,两者都提供丰富的模板及 API,对云计算平台、大数据都有很好的支持

实验环境(rhel7.3版本)

1、firewalld和selinux均为disabled

2、各主机信息:

主机  ip

Ansible(服务端)  172.25.60.1

Ansible(客户端)  172.25.60.2

Ansible(客户端)  172.25.60.3

Ansible部署

  1. 下载ansible的相关rpm包及其依赖包,并进行安装

Ansible 简介与安装部署

Ansible 简介与安装部署

查看版本

Ansible 简介与安装部署

2.编辑/etc/hosts解析文件

Ansible 简介与安装部署

3.添加普通用户使用ansible

4.编辑ansible.cfg文件

Ansible 简介与安装部署

5.设置ansible主机编写  inventory文件

创建一个inventory文件,用于定义将要管理的服务器。这个文件可以命名为任何名字可以定义一些要管理的服务器。Inventory是Ansible管理主机信息的配置文件,相当于系统HOSTS文件的功能,默认存放在/etc/ansible/hosts

Ansible 简介与安装部署

定义组嵌套及组变量
组与组之间可以相互调用,并且可以向组中的主机指定变量。不过,这些变量只能在Ansible-playbook中使用,而Ansible不支持

6.给ansible的客户端添加同样的ansible用户,均设定密码为redhat

Ansible 简介与安装部署

Ansible 简介与安装部署

7.设置ssh免密登录

Ansible 简介与安装部署

Ansible 简介与安装部署

 

8、测试ansible

Ansible 简介与安装部署

Ansible 简介与安装部署

ansible已经部署成功