KubeSphere 最佳实战:制作 Ansible 离线安装包实战指南

511 阅读4分钟

KubeSphere 最佳实战:制作 Ansible 离线安装包实战指南

2024 年云原生运维实战文档 99 篇原创计划 第 033 篇KubeSphere 最佳实战「2024」系列 第 008 篇

你好,欢迎来到运维有术

今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 Ansible 离线安装包制作实战指南

上一期我们实战讲解了基于 Ansible 极速初始化 KubeSphere 集群节点。很多朋友私信我,咨询如何制作离线解压即用的 Ansible 运行环境。

今天,我将为大家分享,自动化运维工具 Ansible 离线解压即用版的制作方法。

实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同)

主机名IPCPU内存系统盘数据盘用途
ansible-python2192.168.9.1114840Centos7 Python2 环境
ansible-python3192.168.9.1124840OpenEuler Python3 环境
合计281680

实战环境涉及软件版本信息

  • 操作系统:CentOS 7.9openEuler 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 本文实战视频(请注意,文档视频异步发行,请先关注)

版权声明

  • 所有内容均属于原创,感谢阅读、收藏,转载请联系授权,未经授权不得转载