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
|