Ansible是一个综合的强大的管理工具,他可以对多台主机安装操作系统,并为这些主机安装不同的应用程序,也可以通知指挥这些主机完成不同的任务.查看多台主机的各种信息的状态等,ansible都可以通过模块的方式来完成。
1、Ansible特性
No agents:不需要再被管理节点上安装客户端,只要有sshd即可
No server:在服务端不需要启动任何服务,只需要执行命令就行
No additional PKI:由于不基于ssl,所以也不基于PKI工作
Modules in any language:基于模块工作,ansible拥有众多的模块
YAML:支持YAML语法
SSH by default:默认使用ssh控制各节点
2、Ansible的基本组件
核心:ansible
核心模块(Core Modules):这些都是ansible自带的模块
扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):把需要完成的多个任务定义在剧本中
连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory):ansible在管理多台主机时,可以选择只对其中的一部分执行某些操作
3、Ansible工作机制
Ansible 在管理节点将 Ansible 模块通过 SSH 协议(或者 Kerberos、LDAP)推送到被管理端执 行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排。
4、Ansible的安装
Ansible的安装方式有很多种,常用的安装方法是基于yum或者源码,如果是基于yum安装,需要配置epel源,然后直接执行yum -y install ansible即可。源码安装配置如下:
解决依赖关系:
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
下载ansible:
wget https://github.com/ansible/ansible/archive/release1.6.1.zip
解压安装
unzip release1.6.1
cd ansible-release1.6.1
python setup.py build
python setup.py install
mkdir /etc/ansible
cp -r examples/* /etc/ansible