当你的公司没有太多资金而决定把性能过剩服务器进行虚拟化,将一台真实服务器变为多台虚拟机的时候;当你的公司因业务需求需要扩充服务器的时候;当你重复配置、安装相同的软件到其他服务器的时候…
你会发现,咦?我是不是有哪台服务器忘记配置了,另一台的服务是要怎么安装来的?我的安装文档的呢?咦?怎么这不是一类操作系统的呢?为什么安装的操作系统当时没有统一呢?你的服务器运维工作越来越杂乱,直到天天加班,而这个时候,你就需要ansible。
# 以centos操作系统为例,当你需要安装某个个软件的时候,例如gcc yum install gcc -y # 或者当你需要高版本gcc的时候,你需要下载源码及其依赖包然后 cd gccXX.x ./configure --prefix=/path/to/gcc && make && make install
# centos操作系统为例 hosts文件内分别为 node1,node2,node3,其中操作节点为 manager # 你可能很快可以想到,使用ssh互信,当然只需要做manager 到 node[1-3]的单向ssh凭证即可,再聪明点,你觉得写个脚本,像这样: cat gcc_install_nodes.sh #!/bin/bash nodelist=$1 for node in $nodelist do # 后台执行,然后日志保存到${node}.log ssh $node "yum install gcc -y" &>${node}.log & done wait echo "install gcc is done,and you need to look at nodes.log in this dir" # 执行,然后等待结果 ./gcc_install_nodes.sh "node1 node2 node3"
# 你想我咋地,还真写吗?老累了,还不确定能不能跑,这就是ansible为什么会出现的原因 # 能写出来,但老板可能不会给你那么多时间调试你心爱的脚本的。
有了ansible,你不需要再也for循环;有了ansible,你可以为多台不同操作系统的服务器安装相同的软件,有了ansible,格式化的结果范围更容易让你判断出操作中出现的问题…
也就是说,你可以偷懒了(嗯,就是你可以有时间学习其他知识了)
点击centos镜像即可有对应的指导下载指定yum源
# 安装 ansible yum install ansible -y
以centos为例: pip 安装
# -i 指定临时镜像源 pip install -i https://mirrors.aliyun.com/pypi/simple ansible # 永久修改为本地镜像方法如下: vim ~/.pip/pip.conf
修改如下:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
离线安装二进制包方式
若为centos,现在有线环境下去rpm search找到对应版本的rpm进行下载安装,或者使用yum install/reinstall ansible --downloadonly --downloaddir=/path命令即可将指定安装包下载到指定目录下面,然后拷贝到离线服务器,使用rpm -ivh *.rpm即可安装,若缺少依赖,按照同样的方式下载对应版本的rpm包即可
离线方式 python
# 创建python虚拟环境或者在一个纯净无软件包安装的python环境 pip install ansible pip freeze > ansible_request.txt pip download -r ansible_request.txt -d /pathdir # 在离线服务器上安装 pip install --no-index --find-links=packages -r ansible_request.txt
cd ansible_src python setup.py build python setup.py install # 或者 pip install ansible_src.zip
若缺少对应的python依赖包,可去Pypi下载即可。
以上内容仅个人理解,如有不对之处,请指正修改。