现在很多人都在说运维自动化工具,这里大致介绍下Ansible的一个安装配置过程。
Ansible简介
Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由红帽主导。
Ansible最大的特点:无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程命令执行或下发配置。
- Ansible官网:https://www.ansible.com/
在官网中有个Get started,点击可看到教学视频,英语好的伙伴可以简单过一遍,大致明白一个概念。 - Ansible-Github:https://github.com/ansible/ansible
- 中文资料:http://www.ansible.com.cn/
- 英文文档:https://docs.ansible.com/ansible/latest/index.html
Ansible架构图:
各个功能模块在网上可以查到具体的说明,这里简单是一个环境搭建的分享,功能模块在今后的分享中会具体来说明。
Ansible的特点,这个网上可以找到不少,这里大致罗列了一些:
- 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;默认使用SSH协议对设备进行管理。
- 配置简单、功能强大、扩展性强。
- 支持API及自定义模块,可通过Python轻松扩展。
- 通过Playbooks来定制强大的配置、状态管理。
- 对云计算平台、大数据都有很好的支持。
Ansible安装配置(一)
实验环境
笔者在Zstack虚拟化环境上搭建了4台云主机来操作,操作系统版本为Centos7.4
对应主机名和IP地址:
1. 192.168.1.122 jacky1 主管理节点
2. 192.168.1.123 fisho1 客户端节点
3. 192.168.1.124 jacky2 客户端节点
4. 192.168.1.125 fisho2 客户端节点
- 安装过程中记得配置好/etc/hosts文件,然后关闭Selinux,关闭防火墙。
1. vim /etc/sysconfig/selinux
2. SELINUX=enforcing 改为 SELINUX=disabled
1. systemctl disable firewalld.service
系统重启。
- 配置SSH密钥:
在主管理节点中(192.168.1.122 jacky1):
1. sh-keygen -N ''
2. yes即可
然后分发密钥:
1. ssh-copy-id root@192.168.1.123
2. ssh-copy-id root@192.168.1.124
3. ssh-copy-id root@192.168.1.125
完成后测试:
- 安装Ansible:
主管理节点(192.168.1.122 jacky1)通过yum命令安装:
1. yum install ansible -y
过程稍等片刻就好了,安装成功后显示如下:
配置host文件:
这里配置的不是/etc/hosts,而是:etc/ansible/hosts
1. vim etc/ansible/hosts
2. 增加客户端设备的IP,并设置为【jacky】组
检查配置文件:
检查/etc/ansible/ansible.cfg中的host_key_checking = False
- 基本测试:
完成上述过程,其实很简单,那么可以测试是否能运行:
主节点运行命令:
1. ansible jacky -m command -a "uptime"
显示如下:
表示目前为止是成功的,关于上述命令,可以参考下命令的说明。
- 命令说明:
1. ansible -m MOD_NAME -a MOD_ARGS
通过执行:
1. ansible -h
可以看到命令的使用说明:
1. ansible-doc -l 获取模块信息
2. ansible-doc -s MOD_NAME 获取指定模块的使用帮助
3. 举例:ansible-doc -s aos_ip_pool
如图: