ansible简单介绍
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架,架构图如下:
- 连接插件connection plugins:负责和被监控端实现通信;
- host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
- 各种模块核心模块、command模块、自定义模块;
- 借助于插件完成记录日志邮件等功能;
- playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
ansible特点
- 无终端只需在主控节点部署ansible环境,是基于ssh实现管理的
- 模块化管理工具,有大量常规运维操作模块,可实现日常绝大部分操作
- 支持API及自定义模块,可通过Python轻松扩展
- 过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常用的模块。
------做运维之前很矫情的小年轻-----