**
运维自动化
**
- 想象一下这么一个问题,今天老板给你一个任务,让你给50台计算机安装某个软件。
- 你跑过去每台电脑找到他们,一个一个的给他们安装上某个软件,从早上九点到晚上9 点,好不容易安完了,老板说这个软件有点问题,不太好使用,让你卸载了重新安装另一个软件。
- 你心里一万头草泥马奔腾而过。
- 如果我把这些计算机总体控制在一起,一条命名就安装了多好?,老板不喜欢,我一条命令卸载了多好?*
运维自动化发展历程及技术应用
架构
iaas Infrestruture as a Service 租给你机器让你随便使用的
paas Platform as a Service 把软件,系统全都给你配置好的
saas software as a service 你提要求直接帮你实现的
岗位
平台架构组建
日常运营保障
性能效率优化
场景
文件管理/传输
应用部署
配置管理
任务编排
生产环境
开发环境
测试环境
发布环境
生产环境
灰度环境
程序发布
发布验证 和生产环境一致,未接入调度器
程序发布 不能系统故障,不可用,不能影响用户体验
灰度发布
发布路径
软连接
发布过程 下线一批主机-->关闭服务-->更新-->启动-->接入调度器
自动化发布
常用工具
ansible 安德的游戏,名字来源,无代理应用 ,中小型,C/S
michael dehaan cobbler作者 2015年被收购
saltstack 要代理
puppet 重量级,功能强大,配置复杂
fabric
chef
ansiable的架构框架
Ansible: 核心
Modules: 包括 Ansible 自带的核心模块及自定义模块
Plugins: 完成模块功能的补充,包括连接插件、邮件插件等
Playbooks: 剧本(编排好一步一步的执行);定义 Ansible 多任务配置文件,有 Ansible 自动执行
Inventory: 定义 Ansible 管理主机的清单
图片及架构介绍转自https://www.jianshu.com/p/98e999287120
ansiable的基本特性
模块化
Paramiko,PyYAML,Jinja2关键模块
支持自定义模块
基于Python
无需代理,基于ssh
安全
支持playbook
幂等性
模块支持任何语言
YAML格式,支持丰富的数据结构
多层解决方案
ad-hoc
playbook
role
组成部分
Playbook执行过程
编写playbook
逐条执行
对象
主机
网络设备
注意:
Python 2.6
selinux
ssh
windows不能做主控端
安装
yum epel
yum install ansible
配置文件
/etc/ansible/ansible.cfg
/etc/ansible/hosts
/etc/ansible/role
程序
/usr/bin/ansible
/usr/bin/ansible-doc
/usr/bin/ansible-galaxy
/usr/bin/ansible-playbook
/usr/bin/ans