1. Ansible 介绍
基于Python 开发,无需客户端,轻量级,配置语言采用YAML,具有幂等性(无论执行多少次,最终结果一样)。
2. Ansible 优点
1) 简单可读性高的自动化语言,描述语言,功能强大
2) 无需客户端,有网络的地方就有Ansible
3) 无需服务端,基于python,ssh系统自带服务
4) 无需密码,使用key认证,安全可控,确保所有操作都只能在指定的机器上完成
5) 支持网络设备,存储设备,Linux、windows、Unix,适用整个IDC管理
6)扩展性很强,通过模块扩展功能,提高代码复用率
3. Ansible 架构
1)连接插件:连接被管理服务器
2)核心模块:ansible的操作依赖于具体的模块
3)playbooks:一个配置文件,定义任务,将配置文件下发到客户端,从而完成任务
4)主机配置清单:定义执行任务的主机
4. Ansible 组件
1)核心:ansible
2)核心模块(Core Modules):ansible自带的模块
3)扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
4)插件(Plugins):完成模块功能的补充
5)剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
6)连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,ansible默认使用ssh连接到各个主机,但是它还支持其它的连接方法(zeromq),所以需要有连接插件
7)主机群(Host Inventory):定义ansible管理的主机
5. ansible 安装
1) yum 安装
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install ansible
2)源码安装
# 下载源码包,解压
wget https://releases.ansible.com/ansible/ansible-latest.tar.gz
tar -xf ansible-latest.tar.gz
cd ansible-2.9.13/
# 编译
python setup.py build
# 安装
python setup.py install
# 查看版本号
ansible --version
6. Ansible 主机配置
默认配置⽂件:/etc/ansible/hosts 可以通过 -i 指定hosts路径
主机组:[] 用来对主机进行分组,括号内是组名,主机可以直接使用ip地址,也可以使用域名,还可以使用一些数字和字母来指定一些连续的主机
用户: ansible_ssh_user={{username}}
密码: ansible_ssh_pass={{password}}
端口: ansible_ssh_port={{port_num}}
主机别名:ansible_ssh_host={{host_ip}}
sudo密码:ansible_sudo_pass={{sudo_password}}
连接类型:ansible_connection=local/ssh/paramiko
私钥文件路径:ansible_ssh_private_key_file={{path_to_key}}
设置python解释器路径:ansible_python_interpreter=/usr/bin/python
group包含:
[clents:children]
group1
group2
7. Ansible 帮助文件
查看所有模块: ansible-doc -l
查看某个模块的参数:ansible-doc -s 模块名
查看某个模块的详细用法:ansible-doc help 模块名