一、引入
linux运维工程师职能 --》 应用场景 --》 具体环境配置
根据业务需要
二、历史
创始人:Michael Dehaan (cobbler作者)
2012 0.0.1
2015 Redhat收购
三、工作架构及原理
1.特性:模块化
调用特定的模块,完成特定的任务
有paramiko、PyYAML、jinja2三个关键模块
支持自定义模块
基于python语言开发
部署简单就要python和ssh,agentless
安全,基于Openssh
支持playbook编排任务
幂等性:一个任务执行一遍和执行n遍效果一样,不会因为重复执行带来意外情况
无序代理不依赖PKI(无需ssl)
可使用认可编程语言编写模块
YAML格式编排任务,支持丰富的数据结构
较强大的多层解决方案(Role)
架构:
工作原理
四、安装
主控端、堡垒机、中控机
- yum安装(epel源)
- git
- pip
- 编译
注意:主控端 python3.6+
被控端 python 2.4- 需要安装python-simpleison
selinux 开启的话 需要安装libselinux-python
Windows不能做master
配置文件
命令
五、常用模块
command
shell
script
file
copy
fatch
hostname
corn
yum
service
user
group
ansible-galaxy:下载role
六、playbook及role
由一个或多个“play”组成的列表
编排多个任务 使用yaml语言编写
-C 检查一遍
Role角色:
复杂场景
- 变更指定主机或主机组
- 命名不规范维护和传承的成本大
- 某个功能需要多个playbook,通过includes实现
目录结构
参考资料: