多页打印视图 点击此处打印.

返回常规视图.

软件准备

部署Pigsty所需的软件,安装包,以及如何在没有互联网访问的环境中进行离线安装

1 - Pigsty 软件下载

Pigsty 软件资源列表,以及从哪里获取它们。

Pigsty的唯一权威发布地址为 Github 仓库: Vonng/pigsty,所有软件发行版都位于该项目 Release 页面

太长不看

# 使用此命令下载 pigsty.tgz 源码包,该脚本将区分墙内墙外,在大陆使用CDN加速下载
bash -c "$(curl -fsSL http://download.pigsty.cc/get)"  # get latest pigsty source

# 进入Pigsty源码目录,使用自带脚本下载离线软件包,同样区分墙内墙外环境。
cd pigsty; ./download pkg

软件包列表

当前,一个发行版本包含以下软件内容:

  • pigsty.tgz必选项,Pigsty源代码
  • pkg.tgz可选项,基于CentOS 7.8.2003 提前制作的离线软件安装包;如需离线安装Pigsty,需要下载此软件包。
  • matrix.tgz可选项,如果需要安装Greenplum与MatrixDB,请额外下载此软件包
  • docker.tgz可选项,如果需要使用一些基于Docker的扩展软件应用,可下载此软件包
  • app.tgz可选项,如果想要下载Pigsty自带的可视化应用Applet样例,可下载此软件包

除了源码包 pigsty.tgz 为必选项目,其他软件包均为可选。例如,如果不下载 pkg.tgz,Pigsty就会在基础设施初始化时,直接通过互联网从 repo_upstream 下载所需的所有软件包。

下载脚本

Pigsty本身提供了一个下载脚本:download,来下载这些软件包

$ ./download
    download and extract pigsty packages: pigsty.tgz pkg.tgz app.tgz matrix.tgz
    usage:
        download pigsty pkg   # download pigsty essentials

        download pigsty.tgz   # download pigsty source tarball
        download pkg.tgz      # download pigsty offline pkgs
        download app.tgz      # download extra pigsty apps
        download matrix.tgz   # download matrixdb packages
        download docker.tgz   # download docker images cache

        download pigsty       # download and extract pigsty to ~/pigsty
        download pkg          # download and extract pkg    to /www/pigsty
        download app          # download and extract app    to ~/app
        download matrix       # download and extract matrix to /www/matrix

此脚本会自动检测当前主机网络环境(by ping google),正常从Github下载Release,墙内则通过腾讯CDN下载软件包。

2 - Pigsty 离线安装

如何在没有互联网访问的环境中离线安装Pigsty

Pigsty是一个复杂的软件系统,为了确保系统的稳定,Pigsty会在初始化过程中从互联网下载所有依赖的软件包并建立本地仓库 (本地Yum源)。

所有依赖的软件总大小约1GB左右,下载速度取决于用户的网络情况。尽管Pigsty已经尽量使用镜像源以加速下载,但少量包的下载仍可能受到防火墙的阻挠,可能出现非常慢的情况。用户可以通过 proxy_env 配置项设置下载代理,以完成首次下载。

如果您使用了不同于CentOS 7.8的操作系统,通常建议用户采用完整的在线下载安装流程。并在首次初始化完成后缓存下载的软件,参见制作离线安装包

如果您希望跳过漫长的下载过程,或者执行控制的元节点没有互联网访问,则可以考虑下载预先打包好的离线安装包

离线安装包的内容

为了快速拉起Pigsty,建议使用离线下载软件包并上传的方式完成安装。

离线安装包收纳了本地Yum源的所有软件包。默认情况下,Pigsty会在基础设施初始化时创建本地Yum源,

{{ nginx_home }}
  |---- {{ repo_name }}.repo
  ^---- {{ repo_name}}/repo_complete
  ^---- {{ repo_name}}/**************.rpm

默认情况下,{{ nginx_home }} 是Nginx静态文件服务器的根目录,默认为/wwwrepo_name 是自定义的本地源名称,默认为pigsty

以默认情况为例,/www/pigsty 目录包含了所有 RPM 软件包,离线安装包实际上就是 /www/pigsty 目录的压缩包 。

离线安装包的原理是,Pigsty在执行基础设施初始化的过程中,会检查本地Yum源相关文件是否已经存在。如果已经存在,则会跳过下载软件包及其依赖的过程。

检测所用的标记文件为{{ nginx_home }}/{{ repo_name }}/repo_complete,默认情况下为/www/pigsty/repo_complete,如果该标记文件存在,(通常是由Pigsty在创建本地源之后设置),则表示本地源已经建立完成,可以直接使用。否则,Pigsty会执行常规的下载逻辑。下载完毕后,您可以将该目录压缩复制归档,用于加速其他环境的初始化。

沙箱环境

下载离线安装包

Pigsty自带了一个沙箱环境,沙箱环境的离线安装包默认放置于files目录中,可以从Github Release页面下载。

VERSION=v1.5.1
curl -SL https://github.com/Vonng/pigsty/releases/download/${VERSION}/pkg.tgz -o /tmp/pkg.tgz

Pigsty的官方CDN也提供最新版本的pkg.tgz下载,只需要执行以下命令即可。

curl http://download.pigsty.cc/v1.5.1/pkg.tgz -o /tmp/pkg.tgz

上传离线安装包

使用Pigsty沙箱时,下载离线安装包至本地files目录后,则可以直接使用 Makefile 提供的快捷指令make copy-pkg上传离线安装包至元节点上。

使用 make upload,也会将本地的离线安装包(Yum缓存)拷贝至元节点上。

# upload rpm cache to meta controller
upload:
	ssh -t meta "sudo rm -rf /tmp/pkg.tgz"
	scp -r files/pkg.tgz meta:/tmp/pkg.tgz
	ssh -t meta "sudo mkdir -p /www/pigsty/; sudo rm -rf /www/pigsty/*; sudo tar -xf /tmp/pkg.tgz --strip-component=1 -C /www/pigsty/"

制作离线安装包

使用 Pigsty 沙箱时,可以通过 make cache 将沙箱中元节点的缓存制为离线安装包,并拷贝到本地。

# cache rpm packages from meta controller
cache:
	rm -rf pkg/* && mkdir -p pkg;
	ssh -t meta "sudo tar -zcf /tmp/pkg.tgz -C /www pigsty; sudo chmod a+r /tmp/pkg.tgz"
	scp -r meta:/tmp/pkg.tgz files/pkg.tgz
	ssh -t meta "sudo rm -rf /tmp/pkg.tgz"

在生产环境离线安装包

在生产环境使用离线安装包前,您必须确保生产环境的操作系统与制作该离线安装包的机器操作系统一致。Pigsty提供的离线安装包默认使用CentOS 7.8。

使用不同操作系统版本的离线安装包可能会出错,也可能不会,我们强烈建议不要这么做。

如果需要在其他版本的操作系统(例如CentOS7.3,7.7等)上运行Pigsty,建议用户在安装有同版本操作系统的沙箱中完整执行一遍初始化流程,不使用离线安装包,而是直接从上游源下载的方式进行初始化。对于没有网络访问的生产环境元节点而言,制作离线软件包是至关重要的。

常规初始化完成后,用户可以通过make cache或手工执行相关命令,将特定操作系统的软件缓存打为离线安装包。供生产环境使用。

从初始化完成的本地元节点构建离线安装包:

tar -zcf /tmp/pkg.tgz -C /www pigsty     # 制作离线软件包

在生产环境使用离线安装包与沙箱环境类似,用户需要将pkg.tgz复制到元节点上,然后将离线安装包解压至目标地址。

这里以默认的 /www/pigsty 为例,将压缩包中的所有内容(RPM包,repo_complete标记文件,repodata 源的元数据库等)解压至目标目录/www/pigsty中,可以使用以下命令。

mkdir -p /www/pigsty/
sudo rm -rf /www/pigsty/*
sudo tar -xf /tmp/pkg.tgz --strip-component=1 -C /www/pigsty/

3 - Pigsty源码包

如何下载并使用可选的Pigsty Docker扩展离线镜像包

用户需要将Pigsty项目下载至元节点。

如果您是软件开发者,贡献者,则请使用Github克隆Master主干。如果您是软件用户,请务必使用具体的版本,而非Github Master分支,该分支可能处于开发中途的不一致状态中。

下载Pigsty源码

用户可以从 Github Release 页面下载最新版本的Pigsty源码包:

VERSION=v1.5.1
https://github.com/Vonng/pigsty/releases/download/${VERSION}/pigsty.tgz 

也可以从 Pigsty CDN 下载最新版本的Pigsty源代码

VERSION=v1.5.1
http://download.pigsty.cc/${VERSION}/pigsty.tgz

执行以下脚本,将自动获取最新稳定版本的Pigsty:

bash -c "$(curl -fsSL http://download.pigsty.cc/get)"

Pigsty 源码包自带的下载脚本 download 也可以用于下载特定版本的Pigsty源码包本身

./download pigsty.tgz  # 下载最新稳定版本的离线软件包至 /tmp/pigsty.tgz
./download pigsty      # 不仅下载 /tmp/pigsty.tgz ,还将其解压至 ~/pigsty ,如果目标目录已经存在则跳过解压

克隆Pigsty源代码

git clone https://github.com/Vonng/pigsty
git clone git@github.com:Vonng/pigsty.git

4 - Pigsty pkg.tgz 离线软件包

如何下载并使用可选的Pigsty离线软件包

Pigsty提供了基于 CentOS 7.8.2003 环境下制作的离线软件包,如果您正好使用此系统镜像,则可以确保无需互联网即可成功安装。

离线软件包的默认下载放置路径为/tmp/pkg.tgz,Pigsty在执行 ./configure 的过程中,如果没有发现该路径下存在可用的离线软件包,会提示您下载,您也可以跳过,直接从原始上游下载。

不使用离线软件包时,Pigsty默认会从互联网上游Repo中直接下载所需软件(约1GB),这一过程耗时取决于您的网络条件,一些来自Github或墙外的软件包可能下载速度非常缓慢,甚至完全无法访问。

如果您使用的操作系统是其他 EL7 兼容发行版,则可能存在 极个别 RPM 软件包版本不兼容问题,您可以参考 Pigsty离线安装 或 FAQ 介绍的方法,从原始上游下载替换带有问题的RPM软件包。

下载离线软件包

从Github下载最新、权威的软件包

VERSION=v1.5.1
wget https://github.com/Vonng/pigsty/releases/download/${VERSION}/pkg.tgz -o /tmp/pkg.tgz 

中国大陆可以使用CDN下载:

VERSION=v1.5.1
curl http://download.pigsty.cc/${VERSION}/pkg.tgz -o  /tmp/pkg.tgz

更简洁的方式是使用 Pigsty 源码包自带的下载脚本 download

./download pkg.tgz  # 下载最新稳定版本的离线软件包至 /tmp/pkg.tgz
./download pkg      # 不仅下载 /tmp/pkg.tgz ,还将其解压至 /www/pigsty 并配置本地静态文件源,开箱即用。

离线软件安装包快捷命令

copy-pkg:
	scp dist/${VERSION}/pkg.tgz meta:/tmp/pkg.tgz

use-pkg:
	ssh meta '/home/vagrant/pigsty/configure --ip 10.10.10.10 --non-interactive --download -m demo'

load-docker:
	ssh meta 'cat /tmp/docker.tgz | gzip -d -c - | docker load'

release-pkg: cache
	scp meta:/tmp/pkg.tgz dist/${VERSION}/pkg.tgz

rp: release-pkg

5 - Pigsty Docker扩展镜像包

如何下载并使用可选的Pigsty Docker扩展离线镜像包

Docker是开箱即用的容器基础设施,您可以使用Docker拉起开箱即用的软件容器,而无需过多关心安装、部署等运维管理细节。

Pigsty带有一些Docker应用样例,这些Docker应用都可以直接从DockerHub或其他镜像站点直接拉取。

对于没有互联网访问的场景,Pigsty制作了几个常用容器镜像的软件包:docker.tgz,这是一个可选项,包含的软件如下:

docker pull kong                     # latest # 139MB
docker pull minio/minio              # latest # 227MB
docker pull alpine                   # latest # 5.57MB
docker pull registry                 # latest # 24.2MB
docker pull dpage/pgadmin4           # latest # 341MB
docker pull sosedoff/pgweb           # latest # 192MB
docker pull postgrest/postgrest      # latest # 16.3MB
docker pull swaggerapi/swagger-ui    # latest # 77MB
docker pull bytebase/bytebase:1.0.5  # 1.0.5  # 78.1MB
docker pull vonng/pg_exporter        # latest # 7.64B
docker pull gitea/gitea              # latest # 256MB

软件包的制作方式

docker save kong alpine registry dpage/pgadmin4 sosedoff/pgweb postgrest/postgrest swaggerapi/swagger-ui minio/minio bytebase/bytebase:1.0.5 vonng/pg_exporter gitea/gitea | gzip -9 -c > /tmp/docker.tgz  

您可以直接使用 cat /tmp/docker.tgz | gzip -d -c - | docker load 的方式加载这些镜像,或者在初始化节点前,将其放置于 /tmp/docker.tgz ,则Pigsty在部署Docker时,会自动加载此位置的镜像压缩包。

下载Docker扩展软件包

从Github下载最新、权威的软件包

VERSION=v1.5.1
wget https://github.com/Vonng/pigsty/releases/download/${VERSION}/docker.tgz -o /tmp/docker.tgz 

中国大陆可以使用CDN下载:

VERSION=v1.5.1
curl http://download.pigsty.cc/${VERSION}/docker.tgz -o /tmp/docker.tgz

更简洁的方式是使用 Pigsty 源码包自带的下载脚本 download

./download docker.tgz  # 下载最新稳定版本的docker扩展软件包至 /tmp/docker.tgz

Docker扩展软件包快捷方式

copy-docker:
	scp dist/${VERSION}/docker.tgz meta:/tmp/docker.tgz

load-docker:
	ssh meta 'cat /tmp/docker.tgz | gzip -d -c - | docker load'

release-docker:
	ssh meta 'docker save kong alpine registry dpage/pgadmin4 sosedoff/pgweb postgrest/postgrest swaggerapi/swagger-ui minio/minio bytebase/bytebase:1.0.5 vonng/pg_exporter gitea/gitea | gzip -9 -c > /tmp/docker.tgz'
	scp meta:/tmp/docker.tgz dist/${VERSION}/docker.tgz

rp3: release-docker

6 - Pigsty Applet扩展软件包

如何下载并使用可选的 Pigsty 可视化小应用演示样例包 app.tgz

GitHub Repo : Vonng/pigsty-app

Pigsty提供了基于了一些可视化应用样例,这些样例及其基础数据被制成了一个单独的,可选的软件包 app.tgz,大小约 70MB。

下载应用Applet演示包

从Github下载最新、权威的软件包

VERSION=v1.5.1
wget https://github.com/Vonng/pigsty/releases/download/${VERSION}/app.tgz -o /tmp/app.tgz 

中国大陆可以使用CDN下载:

VERSION=v1.5.1
curl http://download.pigsty.cc/${VERSION}/app.tgz -o files/app.tgz

更简洁的方式是使用 Pigsty 源码包自带的下载脚本 download

./download app.tgz  # 下载最新稳定版本的离线软件包至 /tmp/app.tgz
./download app      # 不仅下载 /tmp/app.tgz ,还将其解压至 ~/app

7 - Pigsty MatrixDB扩展软件包

如何下载并使用可选的 Pigsty MatrixDB扩展离线软件包

Pigsty v1.4 引入了 MatrixDB 部署支持,这是Greenplum7 (尚未发布)的一个功能超集版本。

但并不是所有用户都会用到数据仓库,因此在Pigsty中,与Greenplum/MatrixDB相关的软件包被单独打包为一个扩展软件包 matrix.tgz

当您需要使用 MatrixDB 或 Greenplum 时,可以参考 pigsty-mxdb 配置文件直接从原始上游下载,或下载 matrix.tgz 并解压至管理节点 /www/matrix 使用。

下载离线软件包

从Github下载最新、权威的软件包

VERSION=v1.5.1
wget https://github.com/Vonng/pigsty/releases/download/${VERSION}/matrix.tgz -o /tmp/matrix.tgz 

中国大陆可以使用CDN下载:

VERSION=v1.5.1
curl http://download.pigsty.cc/${VERSION}/matrix.tgz -o  /tmp/matrix.tgz

更简洁的方式是使用 Pigsty 源码包自带的下载脚本 download

./download matrix.tgz  # 下载最新稳定版本的离线软件包至 /tmp/matrix.tgz
./download matrix      # 不仅下载 /tmp/matrix.tgz ,还将其解压至 /www/matrix 并配置本地静态文件源,开箱即用。

制作MatrixDB扩展软件包

copy-matrix:
	scp dist/${VERSION}/matrix.tgz meta:/tmp/matrix.tgz

use-matrix:
	ssh meta 'sudo tar -xf /tmp/matrix.tgz -C /www'
	scp files/matrix.repo meta:/tmp/matrix.repo
	ssh meta sudo mv -f /tmp/matrix.repo /www/matrix.repo

rp2: release-matrix
release-matrix:
	#ssh meta 'sudo cp -r /www/matrix /tmp/matrix; sudo chmod -R a+r /www/matrix'
	ssh meta sudo tar zcvf /tmp/matrix.tgz -C /www matrix
	scp meta:/tmp/matrix.tgz dist/${VERSION}/matrix.tgz`

8 - Ansible

Pigsty剧本使用Ansible编写,但用户无需了解此软件的使用细节。

Ansible剧本需要使用ansible-playbook可执行命令,Ansible可以通过包管理器安装:

# 在EL7兼容系统中可通过以下命令安装 Ansible。
yum install ansible

# 在MacOS中可以使用Homebrew安装 Ansible
brew install ansible

安装后,可以检查安装的软件版本:

$ echo $(ansible --version)
ansible 2.10.3

当使用离线软件包时,Pigsty会在配置过程中尝试从离线软件包中安装ansible。

Pigsty依赖Ansible进行环境初始化。但如果元节点本身没有安装Ansible,也没有互联网访问怎么办?

离线软件包中本身带有 Ansible,可以直接通过本地文件Yum源的方式使用。

手工从离线软件包中安装Ansible

假设用户已经将离线安装包解压至默认位置:/www/pigsty

那么将以下Repo文件写入/etc/yum.repos.d/pigsty-local.repo 中,就可以直接使用该源。

[pigsty-local]
name=Local Yum Repo pigsty
baseurl=file:///www/pigsty
skip_if_unavailable = 1
enabled = 1
priority = 1
gpgcheck = 0

执行以下命令,在元节点上离线安装Ansible

yum clean all
yum makecache
yum install ansible