KubeSphere 最佳实战:制作 Ansible 离线安装包实战指南
2024 年云原生运维实战文档 99 篇原创计划 第 033 篇 |KubeSphere 最佳实战「2024」系列 第 008 篇
你好,欢迎来到运维有术。
今天分享的内容是 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 |
实战环境涉及软件版本信息
- 操作系统:CentOS 7.9 和 openEuler 22.03 LTS SP3
- Ansible: 2.10.7
1. 前置说明
Ansible 离线安装、运行有以下常用方式:
- 离线 RPM、Deb包(依赖的包太多,制作、安装麻烦)
- docker 容器运行(不适用于非容器环境)
- Python 虚拟环境(使用灵活,制作简单)
个人比较喜欢利用 Python 虚拟环境制作离线 Ansible 运行环境,这种方式灵活性更强,对系统的侵入性最小。因此,本文重点介绍如何安装 Python 虚拟环境并利用虚拟环境的方式安装 Ansible。
在制作 Ansible 离线包的过程中,我们需要提前准备两台能联网的机器,一台 CentOS 7.9,一台 openEuler 22.03 或是其他安装 Python3 的操作系统。
因此,基于 Python 虚拟环境制作 Ansible 离线包有以下两个版本:
- CentOS 7.9 基于 Python2
- openEuler 22.03 基于 Python3
2. Python2 版本的 Ansible 安装制作
2.1 安装 Python 虚拟环境
yum install -y python-virtualenv bzip2
2.2 虚拟环境安装 Ansible
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
2.3 验证测试
将制作好的 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 版本
$ 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 运行环境。
3. Python3 版本的 Ansible 安装制作
3.1 安装 Python 虚拟环境
yum install -y python3-virtualenv bzip2 tar
3.2 虚拟环境安装 Ansible
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
3.3 验证测试
将制作好的 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 版本
(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 运行环境。
4. 自动化工具
文章中所有操作步骤,已全部编排为自动化脚本,包含以下内容(因篇幅限制,不在此文档中展示):
- Python2 版本的 Ansible 自动安装构建脚本
- Python3 版本的 Ansible 自动安装构建脚本
运维有术星球会员请到专属代码仓库下载(价值内容,仅星球会员专享)。
以上,就是我今天分享的全部内容。下一期分享的内容还没想好,敬请期待开盲盒。
如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @运维有术,及时收看更多好文!
欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾。
免责声明:
- 笔者水平有限,尽管经过多次验证和检查,尽力确保内容的准确性,但仍可能存在疏漏之处。敬请业界专家大佬不吝指教。
- 本文所述内容仅通过实战环境验证测试,读者可学习、借鉴,但严禁直接用于生产环境。由此引发的任何问题,作者概不负责!
Get 本文实战视频(请注意,文档视频异步发行,请先关注)
版权声明
- 所有内容均属于原创,感谢阅读、收藏,转载请联系授权,未经授权不得转载。