准备工作
如何准备Pigsty部署所需的资源:
- 节点置备
- 元节点置备
- 管理用户置备
- 软件置备
- Pigsty源代码
- Pigsty离线软件包
- Vagrant (沙箱)
- Virtualbox (沙箱)
节点置备
在部署Pigsty前,用户需要准备机器节点资源,包括至少一个元节点,与任意数量的普通节点。
节点可以使用任意类型:物理机、本地虚拟机、云虚拟机,容器等,只需要满足以下条件:
- 处理器架构:x86_64
- 硬件规格至少为1核/1GB
- 操作系统:CentOS 7.8.2003 (或其他RHEL 7等效发行版)
- 管理用户可以从 元节点
ssh登陆其他节点并执行sudo
如果您计划将Pigsty用作开箱即用的PostgreSQL数据库实例,则一台节点足矣。如果您还计划将Pigsty用作更多主机/数据库的管控,则可以准备更多的节点备用。
元节点置备
Pigsty需要元节点作为整个环境的控制中心,并提供基础设施 服务。
元节点的数量最少为1个,沙箱环境默认使用1个元节点。Pigsty的基础设施以副本的形式部署在多个元节点上,DCS(Consul/Etcd)例外,DCS以Quorum的形式存在。
Pigsty的数据库集群需要使用DCS以实现高可用功能,您可以使用自动部署于元节点上的DCS集群,或使用外部的DCS集群。在大规模生产环境中,如果您没有专用的外部DCS集群,建议使用3个元节点以充分保证DCS服务的可用性。
用户应当确保自己可以登录元节点,并能使用管理用户从元节点上通过ssh登陆其他数据库节点,并带有sudo或root权限。用户应当确保自己可以直接或间接访问元节点的80端口,以访问Pigsty提供的用户界面。
- 元节点数量:奇数个,至少一个
- 能够使用管理员用户登陆元节点
- 能够(直接或间接)通过浏览器访问元节点80端口
- 管理用户可以从元节点远程
ssh登陆数据库节点并执行sudo(包括自身)
管理用户置备
Pigsty需要一个管理用户,该用户能够从元节点上SSH登陆其他节点,并执行sudo命令。
- 可以在元节点上使用该用户
- 可以使用该用户SSH登陆所有被元节点(包括自身)
- 可以在登陆所有被元节点后执行sudo命令(包括自身)
- 管理用户不是
postgres或{{ dbsu }}(使用DBSU作为管理员有安全隐患) - ssh 登陆免密码,sudo 命令免密码(或您知晓如何通过
-k,-K手工输入)
执行部署与变更时,您所使用的管理用户必须拥有所有节点的ssh与sudo权限。免密码并非必需,您总是可以在执行剧本时通过-k|-K参数传入ssh与sudo的密码,甚至通过 -eansible_host=<another_user> 使用其他用户来执行剧本。但Pigsty强烈建议为管理用户配置SSH免密码登陆与免密码sudo。
Pigsty推荐将管理用户的创建,权限配置与密钥分发放在虚拟机的Provisioning阶段完成,作为机器资源交付内容的一部分。对于生产环境来说,机器交付时应当已经配置有这样一个具有免密远程SSH登陆并执行免密sudo的用户。通常绝大多数云平台和运维体系都可以做到这一点。
Pigsty剧本nodes 可以在节点上创建管理用户,但这涉及到一个先有鸡还是先有蛋但的问题:为了在远程节点执行Ansible剧本,需要有一个管理用户。为了创建一个专用管理用户,需要在远程节点上执行Ansible剧本。 作为Bootstrap阶段的妥协,只要您有SSH登陆与SUDO权限,即使没有密码,也可以用于执行Ansible剧本,详情请参考 Nodes:创建管理用户
手工配置SSH与SUDO
手工配置SSH免密码登陆,可以通过ssh-keygen 与 ssh-copy-id的方式实现,请自行参考相关文档。
手工配置用户的免密码sudo,可以在/etc/sudoers.d/<username>文件添加以下记录实现,注意将<username>换成您使用的管理员名称即可。
软件下载
为了运行Pigsty,您需要置备以下软件:
- Pigsty源代码
- Pigsty离线软件包(可选,但非常建议)
如需在您自己的笔记本上运行Pigsty沙箱,您还需要在宿主机上下载并安装:
- Vagrant:虚拟机托管编排软件(跨平台,免费)
- Virtualbox:虚拟机软件(跨平台,开源免费)
如果您希望在云厂商服务器上运行Pigsty沙箱,您需要在本地下载并安装 Terraform
Pigsty源代码
用户应当在元节点上获取Pigsty项目源码,通常解压至管理用户HOME目录下。
您也可以通过其他途径下载源码压缩包:
此外 pigsty 项目根目录下的 download 脚本也可以用于下载源代码。
Pigsty离线软件包
离线软件包打包了所有软件依赖,大小约1GB,为可选项。在元节点上完整安装Pigsty时,如果/tmp/pkg.tgz已经存在,Pigsty会直接使用该软件包构建本地源,否则Pigsty会从网络下载所有依赖的软件包。
官方离线软件包基于CentOS 7.8.2003操作系统环境制作,如果您使用的操作系统并非此版本并出现依赖错漏问题,请参考FAQ直接从原始上游安装。或在带有互联网(Github)访问的装有同样操作系统机器上制作离线安装包后拷贝至网络隔离的环境中使用。
您可以使用以下命令,在待安装Pigsty的元节点上提前下载离线软件包(只需要在单个元节点上下载即可,下载至/tmp/pkg.tgz)
此外 pigsty 项目根目录下的 download 脚本也可以用于下载离线软件包。
最后,百度网盘也提供了离线软件包资源下载:https://pan.baidu.com/s/1DZIa9X2jAxx69Zj-aRHoaw?pwd=8su9