Ansible 是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet,cfengine,chef,func,fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
Ansible 特点
模块化设计,调用特定的模块来完成特定任务,本身是核心组件,短小精悍:
基于Python语言实现,由 Paramiko, PyYAML 和 Jinja2(模板语言) 三个关键模块实现;
需要依靠大量的模块实现批量管理,支持自定义模块;
安全,基于 OpenSSH;
支持 playbook 编排任务;
幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况;
无需代理不依赖 PKI(无需ssl);
可使用任何编程语言写模块;
YAML 格式,编排任务,支持丰富的数据结构;
较强大的多层解决方案……
主要组成部分
Inventory:Ansible 管理主机清单,存放在 /etc/ansible/hosts
Modules:Ansible执行命令的功能模块,多个命令的组合,多数为内置的核心模块,也可自定义;
ansible-doc -l <<< 列出模块列表
ansible-doc -s [Module] <<< 查看模块用法
API: 供第三方程序调用的应用程序编程接口
Plugins:模块功能的补充,如连接类型的插件,循环插件,变量插件,过滤插件等,该功能不常用
- 注意事项:
执行 ansible 的主机一般称为主控端,中控,master,或者堡垒机;
主控端 Python 版本需要2.6或以上;
被控端 Python 版本小于2.4需要安装 python-simplejson;
被控端如开启 SELinux 需要安装 libselinux-python;
Windows 不能做为主控端。
相关文件
/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性
/etc/ansible/hosts 主机清单文件
/etc/ansible/roles 角色目录
程序指令
/usr/bin/ansible 主程序,临时命令执行工具
/usr/bin/ansible-doc 查看配置文档,模块功能查看工具
/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
/usr/bin/ansible-galaxy 下载/上传优秀代码或者Roles模块的官网平台
/usr/bin/ansible-vault 文件加密工具
/usr/bin/ansible-console 基于Console界面与用户交互的执行工具
本文由 SHIYL 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 25, 2019 at 01:50 am