PIGSTY

离线安装

如何在没有互联网访问的情况下安装 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 发行版 发布离线软件包,使用最新的操作系统次要版本。

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 版本起,大部份配置模板都默认不再构建本地软件仓库,而是直接从互联网上游安装软件包。 少部分配置模板如 richfull 依然保留了旧版本的行为 —— 先构建本地仓库再使用。

如果您想要在自己的配置中使用已经解包配置好的离线软件包,请修改以下配置:

  • 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,则环境中所有节点都从本地软件仓库安装

部分配置模板,例如 richfull 依然直接保留旧版本的行为 —— 先构建本地仓库再使用,故无需调整。

我们提供付费服务,提供经过测试的预制 Linux 主版本.次版本制作离线软件包。(¥200)


混合方法

有一种混合方法可以使用离线软件包作为基础,并在线补足不匹配的增量软件包,这种办法可以融合离线安装与在线安装的优点。

例如,假设您使用的是 RockyLinux 9.5,但官方离线软件包是为 RockyLinux 9.6 制作的。 您可以使用 el9 离线软件包,(虽然是针对 9.6 制作的) 然后在执行正式安装前,执行 make repo-build 重新下载 9.5 对应的缺失软件包, Pigsty 将从上游仓库重新下载所需的增量。