Ansible介绍
Ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。通过ssh远程管理。
-
自动化运维
- saltstack 适用于中大型公司,通过agent的方式。
- ansible 适用于小型公司(500台以内)
- puppet
- chef
Ansible架构
Ansible架构图:
Ansible是核心;
Host Inventory:主机清单,要管理的主机,是一个配置文件里面定义监控的主机;
Playbooks:剧本,剧本执行多个任务时,非必需可以让节点一次性运行多个任务;
Connection Plugins:连接插件,负责和被监控端实现通信;
Core Modules:核心模块
Custom Modules:定制模块
Plugins:插件
Ansible无需代理
Ansible 围绕无代理架构构建。由于没有代理,也不需要额外的自定义安全基础架构。
Ansible的优缺点
-
Ansible的优点
- 跨平台支持
- 人类可读的自动化
- 完美描述应用
- 轻松管理版本控制
- 支持动态清单
- 编排可与其他系统轻松集成 Ansible的缺点
- 对备管理节点为Windows有待加强
- web管理界面是内置的Ansible的一部分
- 需导入资源清单
- 执行效率较低
Ansible安装
控制节点
Ansible 易于安装。 Ansible 软件只需要安装到要运行它的一个(或多个)控制节点上。由 Ansible管理的主机不需要安装 Ansible。
-
对控制节点的要求
- 控制节点应是Linux或UNIX系统。不支持将Windows用作控制节点,但Windows系统可以是受管主机。
- 控制节点需要安装Python3(版本3.5或以上)或Python2(版本2.7或以上)。
受管主机
Ansible的一大优点是受管主机不需要安装特殊代理。Ansible控制节点使用标准的网络协议(ip地址)连接受管主机,从而确保系统处于指定的状态。
安装Ansible
查看是否有ansible
[root@localhost ~]# ls /etc/yum.repos.d/ (查看是否有epel源)
[root@localhost ~]# yum -y install epel-release (安装epel源)
[root@localhost ~]# yum list all|grep ansible (查看ansible的主程序)
[root@localhost ~]# yum -y install ansible (安装ansible)
[root@localhost ~]# ansible -m setup localhost (查看本机信息)
简单的使用
查看python
[root@localhost ~]# cd /etc/ansible
[root@localhost ansible]# ls
ansible.cfg hosts roles
[root@localhost ansible]# cat hosts
[root@localhost ansible]# vim ansible.cfg
#inventory = /etc/ansible/hosts
inventory = /etc/ansible/inventory
-
ssh免密登录
- ssh-keygen -t rsa
- ssh-copy-ip root@IP