离线安装
如何在没有互联网访问的情况下安装 pigsty?
Pigsty 默认从互联网上游 安装 所需软件包,但有些环境与互联网隔离。 为了解决这个问题,Pigsty 支持使用 离线软件包 进行离线安装。
下载 pigsty 离线软件包,将其放到 /tmp/pkg.tgz
下载 pigsty 源码包,解压(假设解压到 ~/pigsty
)
cd ~/pigsty; ./bootstrap
,它将解压软件包并使用本地仓库
vi ~/pigsty.yml
,覆盖 node_repo_modules
设为 local
以使用本地仓库
照常运行 ./install.yml
。它将从本地仓库安装所有内容。
什么是离线软件包?
离线软件包打包了所有需要的 RPM/DEB 软件包及其依赖; 它本质上是在正常 安装 后采取的本地 APT / YUM 仓库的快照压缩包。
您可以从 GitHub 发布页面 找到这些软件包,例如:
045977aff647acbfa77f0df32d863739 pigsty-pkg-v3.6.1.d12.aarch64.tgz
636b15c2d87830f2353680732e1af9d2 pigsty-pkg-v3.6.1.d12.x86_64.tgz
700a9f6d0db9c686d371bf1c05b54221 pigsty-pkg-v3.6.1.el8.aarch64.tgz
2aff03f911dd7be363ba38a392b71a16 pigsty-pkg-v3.6.1.el8.x86_64.tgz
ce07261b02b02b36a307dab83e460437 pigsty-pkg-v3.6.1.el9.aarch64.tgz
d598d62a47bbba2e811059a53fe3b2b5 pigsty-pkg-v3.6.1.el9.x86_64.tgz
13fd68752e59f5fd2a9217e5bcad0acd pigsty-pkg-v3.6.1.u22.aarch64.tgz
c25ccfb98840c01eb7a6e18803de55bb pigsty-pkg-v3.6.1.u22.x86_64.tgz
0d71e58feebe5299df75610607bf428c pigsty-pkg-v3.6.1.u24.aarch64.tgz
4fbbab1f8465166f494110c5ec448937 pigsty-pkg-v3.6.1.u24.x86_64.tgz
083d8680fa48e9fec3c3fcf481d25d2f pigsty-v3.6.1.tgz
我们通常为以下 Linux 发行版 发布离线软件包,使用最新的操作系统次要版本。
EL Distribution | Code | Arch | OS Code | Package |
---|---|---|---|---|
RockyLinux 9.6 | EL9 | x86_64 | el9.x86_64 | pigsty-pkg-v3.6.1.el9.x86_64.tgz |
Ubuntu 24.04.2 | U24 | x86_64 | u24.x86_64 | pigsty-pkg-v3.6.1.u24.x86_64.tgz |
Debian 12.11 | D12 | x86_64 | d12.x86_64 | pigsty-pkg-v3.6.1.d12.x86_64.tgz |
RockyLinux 9.6 | EL9 | x86_64 | el9.aarch64 | pigsty-pkg-v3.6.1.el9.aarch64.tgz |
Ubuntu 24.04.2 | U24 | x86_64 | u24.aarch64 | pigsty-pkg-v3.6.1.u24.aarch64.tgz |
Debian 12.11 | D12 | x86_64 | d12.aarch64 | pigsty-pkg-v3.6.1.d12.aarch64.tgz |
https://github.com/pgsty/pigsty/releases/download/v3.6.1/pigsty-pkg-v3.6.1.el9.x86_64.tgz
离线软件包是为特定的 Linux 操作系统小版本制作的
在较低的操作系统小版本上使用更高小版本的离线软件包,大概率可以使用,但也有失败的可能
使用离线软件包?
将离线软件包放置于 /tmp/pkg.tgz
路径下,进入 ~/pigsty
目录执行 ./bootstrap
,即可解包使用离线安装包。
Pigsty 会将其解压至 /www/pigsty
,然后配置系统仓库列表启用此仓库,并从中安装 ansible
。
自从 Pigsty v3.6 版本起,大部份配置模板都默认不再构建本地软件仓库,而是直接从互联网上游安装软件包。
少部分配置模板如 rich
与 full
依然保留了旧版本的行为 —— 先构建本地仓库再使用。
如果您想要在自己的配置中使用已经解包配置好的离线软件包,请修改以下配置:
repo_enabled
:将此参数打开,设置为true
,则会构建本地软件源(在大部份配置中被显式关闭)node_repo_modules
:将此参数设置为local
,则环境中所有节点都从本地软件仓库安装- 在大部份模板中,此参数现在被显式配置为:
node,infra,pgsql
,即直接从这些上游软件仓库安装。 - 将其设置为
local
,则会使用本地软件仓库安装所有软件包,速度最快,没有其他仓库的变数干扰。 - 如果你想同时使用本地软件仓库和上游软件仓库,可以将其设置为
local,node,infra,pgsql
- 在大部份模板中,此参数现在被显式配置为:
优缺点
如果您使用的是上述列表中给出的操作系统(精确匹配的小版本),那么建议使用离线软件包。 Pigsty 为这些系统提供了开箱即用的预制离线软件包,在 GitHub 上提供免费下载。
使用离线软件包的优点
- 官方离线软件包经过测试。
- 在与互联网隔离的环境中交付的最简单方法。
- 通过一次性预下载所有软件包来加速安装过程。
- 快照确保可以正常工作,无需担心上游依赖项的变动导致依赖错漏。
使用离线软件包的缺点
- 如果操作系统次要版本不匹配,操作系统的 rpm/deb 软件包可能会出现问题
- 可能不包含最新的更新和操作系统安全补丁。
如果你使用的操作系统版本不在上述列表中,你可以考虑自制离线安装包,我们也提供针对更多操作系统大小版本的离线安装包预制服务(¥200)
引导程序
bootstrap
脚本将自动检测 /tmp/pkg.tgz
并默认将其解压到 /www/pigsty
。
它还将设置操作系统软件包管理器的仓库文件,并安装 ansible
和其他工具。
我的仓库文件在哪里?
引导程序默认会 清除 现有仓库,以确保只安装所需的仓库。
您可以在 /etc/yum.repos.d/backup
(EL) 或 /etc/apt/backup
(Debian / Ubuntu) 中找到它们
如果您想保留现有仓库
您可以使用 -k|--keep
参数来保持现有仓库文件不变:
./bootstrap -k # 或 --keep
制作离线软件包
如果您选择的操作系统不在默认列表中,
您可以使用内置的 cache.yml
剧本制作自己的离线软件包。
找到一台运行完全相同操作系统版本,且可以访问互联网的节点
运行标准 在线安装 (建议使用 rich
配置模板:configure -c rich
)
cd ~/pigsty; ./cache.yml
:制作并获取离线软件包到 ~/pigsty/dist/${version}/
将离线软件包复制到没有互联网访问的环境中(ftp、scp、usb 等),通过 bootstrap
解包使用
v3.6 的行为变化
自从 Pigsty v3.6 开始,大部份配置模板都直接从互联网上游安装软件包,而不是先下载到管理节点本地构建软件仓库,再从中安装。 你可以通过调整参数来恢复此前的默认行为,如果你需要构建自己的离线软件包,这很有用:
repo_enabled
:将此参数打开,则会构建本地软件源(在大部份配置中被显式关闭)node_repo_modules
:将此参数设置为local
,则环境中所有节点都从本地软件仓库安装
部分配置模板,例如 rich
与 full
依然直接保留旧版本的行为 —— 先构建本地仓库再使用,故无需调整。
我们提供付费服务,提供经过测试的预制 Linux 主版本.次版本制作离线软件包。(¥200)
混合方法
有一种混合方法可以使用离线软件包作为基础,并在线补足不匹配的增量软件包,这种办法可以融合离线安装与在线安装的优点。
例如,假设您使用的是 RockyLinux 9.5,但官方离线软件包是为 RockyLinux 9.6 制作的。
您可以使用 el9
离线软件包,(虽然是针对 9.6 制作的)
然后在执行正式安装前,执行 make repo-build
重新下载 9.5 对应的缺失软件包,
Pigsty 将从上游仓库重新下载所需的增量。