centos7离线安装ansible
遇到一个离线环境,需要安装ansible来批量执行命令。网上大多数教程都是找一台系统一样且有网络的机器,下载依赖然后上传到离线环境安装,但是我这边没有有网络的相同系统版本的机器,找了半天,参考了tidb的历史部署文档,发现可以直接离线部署ansible。
tidb离线部署ansible文档
https://docs-archive.pingcap.com/zh/tidb/v3.1/offline-deployment-using-ansible
安装依赖包
在下载机上下载系统依赖离线安装包,然后上传至中控机。该离线包仅支持 CentOS 7 系统,包含 pip 及 sshpass。
依赖离线安装包:https://download.pingcap.org/ansible-system-rpms.el7.tar.gz
在中控机上安装系统依赖包:
tar -xzvf ansible-system-rpms.el7.tar.gz &&
cd ansible-system-rpms.el7 &&
chmod u+x install_ansible_system_rpms.sh &&
./install_ansible_system_rpms.sh
安装完成后,可通过 pip -V 验证 pip 是否安装成功:
pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
注意
如果你的系统已安装 pip,请确认版本 >= 8.1.2,否则离线安装 TiDB Ansible 及其依赖时,会有兼容问题。
离线安装ansible
Ansible 及相关依赖版本记录在 tidb-ansible/requirements.txt 文件中。下面步骤以安装 Ansible 2.5 为例。
在下载机上下载 Ansible 2.5 离线安装包,然后上传至中控机。
离线安装包:https://download.pingcap.org/ansible-2.5.0-pip.tar.gz
离线安装 TiDB Ansible 及相关依赖:
tar -xzvf ansible-2.5.0-pip.tar.gz &&
cd ansible-2.5.0-pip/ &&
chmod u+x install_ansible.sh &&
./install_ansible.sh
安装完成后,可通过 ansible --version 查看版本:
ansible --version
ansible 2.5.0
进阶
以上是tidb官方提供的离线安装方式,安装ansible2.5版本没有任何问题,官方也只建议使用 Ansible 2.4 至 2.7.11 版本。但是其实我需要的版本是2.9版本,于是我使用相同方式安装ansible2.9。发现依旧成功了。
在解压 Ansible 2.5 离线安装包之后,在ansible-2.5.0-pip/ansible_offline_packages
文件夹中,存在有需要pip安装的文件,其中就包括ansible2.5的文件ansible-2.5.0.tar.gz
。
下载ansible安装包,到ansible-2.5.0-pip/ansible_offline_packages
文件夹
下载地址:https://releases.ansible.com/ansible/
注意:
1、文件夹中只能存在一个ansible安装文件。不能同时存在两个ansible-*.tar.gz
2、ansible安装文件只能是数字,不能有其他字符:如ansible-2.9.27rc1.tar.gz
是被允许的,需要更名为ansible-2.9.27.tar.gz
3、目前我只尝试了到2.9.27版本。理论上是2.5到2.9版本都支持。
替换完成后还是直接运行:
chmod u+x install_ansible.sh &&
./install_ansible.sh
安装完成后,可通过 ansible --version 查看版本:
ansible --version
ansible 2.9.27