今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 Ansible 离线安装包制作实战指南。
上一期我们实战讲解了基于 Ansible 极速初始化 KubeSphere 集群节点。很多朋友私信我,咨询如何制作离线解压即用的 Ansible 运行环境。
今天,我将为大家分享,自动化运维工具 Ansible 离线解压即用版的制作方法。
实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同)
主机名 | IP | CPU | 内存 | 系统盘 | 数据盘 | 用途 |
---|---|---|---|---|---|---|
ansible-python2 | 192.168.9.111 | 4 | 8 | 40 | Centos7 Python2 环境 | |
ansible-python3 | 192.168.9.112 | 4 | 8 | 40 | OpenEuler Python3 环境 | |
合计 | 2 | 8 | 16 | 80 |
实战环境涉及软件版本信息
Ansible 离线安装、运行有以下常用方式:
个人比较喜欢利用 Python 虚拟环境制作离线 Ansible 运行环境,这种方式灵活性更强,对系统的侵入性最小。因此,本文重点介绍如何安装 Python 虚拟环境并利用虚拟环境的方式安装 Ansible。
在制作 Ansible 离线包的过程中,我们需要提前准备两台能联网的机器,一台 CentOS 7.9,一台 openEuler 22.03 或是其他安装 Python3 的操作系统。
因此,基于 Python 虚拟环境制作 Ansible 离线包有以下两个版本:
yum install -y python-virtualenv bzip2
cd /opt
virtualenv --no-site-packages ansible-2.10
source ansible-2.10/bin/activate
# 升级 pip 到最新版
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
# 安装 Ansible 2.10 最新版
pip install cryptography==2.9.2 ansible==2.10.7 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
# 安装 paramiko 用于远程连接(不依赖于 sshpass)
pip install paramiko -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
# 压缩打包(使用 bz 提高压缩率)
tar jcvf ansible-venv-2.10-py2.tar.bz ansible-2.10
# 查看文件大小
$ du -sh ansible-venv-2.10-py2.tar.bz
45M ansible-venv-2.10-py2.tar.bz
将制作好的 ansible-venv-2.10-py2.tar.bz
离线安装包拷贝到 Ansible 控制节点的 /opt
目录。
cd /opt
tar xvf ansible-venv-2.10-py2.tar.bz
source /opt/ansible-2.10/bin/activate
$ ansible --version
ansible 2.10.17
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /opt/ansible-2.10/lib/python2.7/site-packages/ansible
executable location = /opt/ansible-2.10/bin/ansible
python version = 2.7.5 (default, Nov 14 2023, 16:14:06) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
每次使用 Ansible前,先使用命令 source /opt/ansible-2.10/bin/activate
,激活 Ansible 运行环境。
yum install -y python3-virtualenv bzip2 tar
cd /opt
virtualenv ansible-2.10
source ansible-2.10/bin/activate
# 升级 pip 到最新版
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
# 安装 Ansible 2.10 最新版
pip install cryptography==2.9.2 ansible==2.10.7 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
# 安装 paramiko 用于远程连接(不依赖于 sshpass)
pip install paramiko -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
# 压缩打包(使用 bz 提高压缩率)
tar jcvf ansible-venv-2.10-py3.tar.bz ansible-2.10
# 查看文件大小
$ du -sh ansible-venv-2.10-py3.tar.bz
47M ansible-venv-2.10-py3.tar.bz
将制作好的 ansible-venv-2.10-py3.tar.bz
离线安装包拷贝到 Ansible 控制节点的 /opt
目录。
cd /opt
tar xvf ansible-venv-2.10-py3.tar.bz
source /opt/ansible-2.10/bin/activate
(ansible-2.10) $ ansible --version
ansible 2.10.17
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /opt/ansible-2.10/lib/python3.9/site-packages/ansible
executable location = /opt/ansible-2.10/bin/ansible
python version = 3.9.9 (main, Dec 28 2023, 13:48:32) [GCC 10.3.1]
每次使用 Ansible前,先使用命令 source /opt/ansible-2.10/bin/activate
,激活 Ansible 运行环境。
文章中所有操作步骤,已全部编排为自动化脚本,包含以下内容(因篇幅限制,不在此文档中展示):