Ansible的优点:
Agentless (去中心化)
Stupied Simple
SSH by default
YAML no code
Ansible 使用场景:
文件传输,
(1)scp mv cp rsync
命令执行:
(2)
剩下的其他命令
安装http服务:
安装()
配置()
启动服务(本机的服务启动)
让服务对用户提供服务(路由器配置,iptables)
Ansible应用场景分析:
(1)、Dev开发环境
使用者:程序员
功能:程序员开发软件测试Bug的环境
管理者:千万不能是运维,一定要是程序员自己
(2)、Dev测试环境
使用者:测试工程师
功能:测试经过Dev测试通过的软件的功能
管理者:运维工程师
备注:测试环境往往有多套;(测试环境满足测试功能,不宜过多)
(1)测试同学希望测试环境有多套;
公司的产品多产品线开发,即多个版本,意味着多个版本同步测试
(2)通常情况下,测试环境有多少套和产品线保持一致即可
(3)Dev发布环境(代码发布机,有些公司是堡垒机(安全凭证))
使用者:运维工程师
功能:发布代码至生产环境
管理者:运维工程师(有经验)
发布机:往往需要有2台(主备)
(4)、DEV生产环境
使用者:运维,只能是运维,(极少数情况下会开放权限给核心开发人员,极少数公司将该环境权限完全开放给开发人员并让开发人员维护)
功能:对用户提供公司的产品服务
管理者:只能是运维
生产环境服务器数量,一般比较多,且应用非常重要,往往需要自动化工具协助部署配置应用,机器数量具体和公司业务规模相关
(5)灰度环境:
使用者:运维
功能:在全量发布代码将代码面向少量精准用户发布的环境
案例:
大家手头有100台服务器,先发布应用到其中的10台,这10台服务器就是灰度服务器。
管理者:只能是运维
为什么需要灰度环境:往往该版本功能变更较大,再全量发布至所有服务器
Ansible1.x和2.x的区别:
(1)、1.9和2.0的API调用方式发生变化,1.9原有的API调用方式2.0不再支持
(2)、2.0增加了重要功能,ansible-console
(3)、2.0模块增加很多,500多个模块的数量
重要文件和目录:
/etc/ansible
/etc/ansible/ansible.cfg 主机配置文件
/etc/ansible/hosts 执行主机配置文件
/etc/ansible/roles Roles默认保存目录
/usr/bin/ansible 临时命令执行工具
/usr/bin/ansible-console 命令执行控制台,可与用户进行交互
/usr/bin/ansible-doc 模块功能查询工具
/usr/bin/ansible-galaxy Roles模块的官方网络平台
/usr/bin/ansible-playbook 定制自动化任务的编排工具
/usr/bin/ansible-pull ansible 拉模式
/usr/bin/ansible-vault 加密程序
/usr/lib/python2.7/site-packages/ansible Python路径信息
Ansible 高级自定义插件目录(需要python基础)
action
callback
connection
filter
lookup
vars