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部署
- 下载ansible的相关rpm包及其依赖包,并进行安装
查看版本
2.编辑/etc/hosts解析文件
3.添加普通用户使用ansible
4.编辑ansible.cfg文件
5.设置ansible主机编写 inventory文件
创建一个inventory文件,用于定义将要管理的服务器。这个文件可以命名为任何名字可以定义一些要管理的服务器。Inventory是Ansible管理主机信息的配置文件,相当于系统HOSTS文件的功能,默认存放在/etc/ansible/hosts
定义组嵌套及组变量
组与组之间可以相互调用,并且可以向组中的主机指定变量。不过,这些变量只能在Ansible-playbook中使用,而Ansible不支持
6.给ansible的客户端添加同样的ansible用户,均设定密码为redhat
7.设置ssh免密登录
8、测试ansible
ansible已经部署成功