我们机房有几百台服务器,身为管理员,一直在考虑采用一些自动化运维工具来减少工作负担,所以最近一直在学习 ansible ,看完文档后,还是有些疑惑,对于生产环境中的使用更是谨慎
1:对于生产服务器,稳定性是第一位,像我们每次进行变更都要进行测试和审批,大的变更升级,更是慎之又慎,由于每台服务器环境不同,批量执行过程中, ansible 如何保证执行过程的正确性?假如失败,如何定位?如何回滚?
2:生产环境中,可能会使用各种 linux 发行版本,而且很多时候服务器是不能连接外网的, ansible 是如何解决软件源的问题?
3:举个实际的例子:我有 2 台 redhat5.8 , 2 台 redhat7.0 , 2 台 ubuntu14.04 , 1 台 AIX , 1 台 HP-UX ,想同时安装 oracle , ansible 是怎么解决的?
4:以上这些疑问, puppet , Salt 又是怎么解决的?
5:对于这些这类自动化运维工具,有什么缺点?生产环境中使用有什么要注意的?
1
crowds 2015-10-31 13:15:34 +08:00
环境还没统一就有几百台服务器了?
略坑啊 |
2
GeekGao 2015-10-31 13:37:03 +08:00
1.失败就是失败了就可以停止了,就跟执行 shell 指令一样,定位和回滚还得靠管理员
2.软件源问题你们内部搭建个 rpm 或者 deb 源就好了啊,毕竟你们无法访问外网 3.ansible 有现成的解决方案?你确定? 4.puppet 和 salt 都是中心化控制和管理的,需要安装 master 和 agent ,太麻烦了 ansible 不需要,有 ssh 登陆账号、密码或者密钥就可以对服务器操作 |
3
ready2race OP @crowds 机房有各种环境很正常!
|
4
fangpeishi 2015-10-31 15:01:28 +08:00
|
5
ready2race OP @GeekGao
举刚刚那个装 oracle 的例子,有小鸡,有 ubuntu ,有 redhat ,而且 redhat 还有 5.8 ,有 7.0?每种都搭个离线 yum 源或着 deb 源???假如又有新的版本加入怎么办? 关于 ansible 安装 oracle 确实没有看到相关的文章,当然我也没专门去找,但是批量安装 oracle 这种需求还是挺常见的 ansible 是不是不能跨版本执行任务?? 比如说, 5 台不同发行版的 linux 安装 MySQL |
6
GeekGao 2015-10-31 15:27:28 +08:00
@ready2race 不行哦,操作系统版本差异不是一个小工具就可以解决的,不如尝试虚拟化的方案
|
7
ready2race OP @fangpeishi 我只是举个小栗子~~ 主要的意思想问 ansible 可不可以在不同 Linux 和 UNIX 上同时执行任务,而且每种操作系统环境都不同,安装过程中 ansible 如何解决安装过程中的依赖问题!
我们机房小鸡比较多,哈哈哈哈~~ |
8
crowds 2015-10-31 15:48:38 +08:00
@ready2race 服务器是你们的还是别人的?
|
9
ready2race OP @crowds 我们的服务器主要由两个部门构成,我们自己的比较多些,分局的服务器也要负责,好吧!不下心暴露了
|
10
crowds 2015-10-31 16:14:25 +08:00
@ready2race 难怪是 RH 的 现在用得起 RH 的也是有土豪和国字头了
|
11
ready2race OP @GeekGao 虚拟化方案我们早就在用了,只是试下 ansible 这个坑
|
12
GeekGao 2015-10-31 17:40:50 +08:00
@ready2race 有写 playbook 嘛?
|
13
ready2race OP @GeekGao 还没有!不过一直看文档,但是最基本的适用情景还是没弄清楚,换句话来说,还是没搞懂 ansible 到底可以做些什么!到底有什么优势!
|
14
hzwlf2002 2016-05-18 17:37:48 +08:00
推荐一本书: Ansible: Up and Running
这里有一些简单的 playbook 示例,欢迎交流与给星。 https://github.com/wanglf/ansible-playbook |