作为一名测试人员(脚本测试),在工作中比较痛苦的事情就是没有环境进行测试(你们懂的)。
初衷:为了应对各种脚本(基本上都是运维类的脚本)的测试环境问题,我跟同事(美女)两人准备把测试环境中没有人管理的机器全部用ansible纳管了,想把测试环境维护起来方便我们测试脚本时选择环境。
环境:内网,redhat7.2系统当ansible节点,测试环境可能有几百台机器无人管理,从linux6 到 7 、AIX5到7、windows版本更多
过程:我把这个想法跟领导一提,领导马上支持,还给了一本ansible快速入门的书让我们学习,想着先把ansible安装成功把所以机器都互信了在认真研究ansible的进阶用法,然后从网上看别人的大量博客,有几种安装方法:
1.安装eple源直接后:yum install ansible -y
2.用python pip安装:pip install ansible
3.看了别人的博客说也可以用:easy_install ansible
4.自己下载ansible和依赖包,然后先把ansible需要的python依赖库全部安装
以上前3种我都没有用过,因为没有外网。
而我尝试了第4种安装方法,下载了ansible-1.7.2.tar 与Python的依赖库(注:python需要2.7以上的版本),
安装各种依赖库简直就是麻烦,因为一些依赖库还依赖其他的库,在内网安装太难受了,之后就在网上找各种依赖,然后问题又出现了,依赖版本太低。。。(果断放弃)。
第二天找了ansible-2.4版本(最新版)的来安装,这次把所有的依赖库都成功安装完成后,ansible也成功安装了,当时很高兴,可是一用ansible --help,悲剧了,报了一个:lmportError: cannot import name AnsibleOptionsError 的错误,原因是2.4的版本太高了,需要安装在redhat7.4的系统上。
既然是ansible的版本太高,那就找了一个ansible-2.1.2版本的来安装,果然安装成功了。
之后的任务就是写一个脚本获取所以测试环境的机器的ip 与主机名添加到ansible 节点的hosts 与/etc/ansible/hosts中去,并配置节点与所有主机的SSH互信。