本文介绍如何在笔记本或PC机上,基于Vagrant 与 Virtualbox,一键拉起Pigsty演示沙箱。
Pigsty沙箱是本地演示/测试环境,运行于由vagrant托管的本地virtualbox虚拟机上。
如果希望在已有的虚拟机上进行Pigsty部署,请参考 部署 一章。
快速开始
在本地主机上安装 Vagrant , VirtualBox 与 Ansible,然后在终端中依次执行以下命令,
# 下载本项目代码
cd /tmp && git clone git@github.com:Vonng/pigsty.git && cd pigsty
make up # 拉起vagrant虚拟机
make ssh # 配置虚拟机ssh访问 【单次,下次启动无需再次执行】
sudo make dns # 写入Pigsty静态DNS域名 【sudo输入密码,可选,单次】
make download # 下载最新离线软件包 【可选,可显著加速初始化】
make upload # 上传离线软件包至元节点
make init # 初始化Pigsty沙箱
make mon-view # 打开Pigsty监控首页
# make new # 销毁并重建沙箱环境
标准的沙箱初始化结果详见 参考-标准输出。
快速导航
沙箱初始化完成后,您可以通过本地域名访问Pigsty提供的相关服务。
Pigsty监控系统的首页是:http://g.pigsty (默认用户名:admin , 密码:admin)
服务 | 域名 | 地址 | 说明 |
---|---|---|---|
Grafana | http://pigsty | 10.10.10.10:3000 | Pigsty监控系统主页 |
Consul | http://c.pigsty | 10.10.10.10:8500 | 元数据库,展示集群中的所有节点与服务,及其健康状态。 |
Prometheus | http://p.pigsty | 10.10.10.10:9090 | 监控时序数据库,查询指标,定义规则,处理报警 |
Alertmanager | http://a.pigsty | 10.10.10.10:9093 | 浏览、处理、屏蔽告警信息 |
Haproxy | http://h.pigsty | 10.10.10.10:80 | 浏览负载均衡器的状态,进行流量管理与控制 |
Yum Repo | http://yum.pigsty | 10.10.10.10:80 | 本地Yum源,包含所有离线软件安装包 |
这里使用的域名是在执行make dns
时写入本地文件,您也可以直接使用IP+域名访问相应服务。
例如 http://10.10.10.10:3000 也可以用于访问监控系统, 但少部分服务(例如Consul)必须通过域名访问。
接下来,您可以尝试一些有趣的探索任务,来体验Pigsty提供的强大功能。
配置要求
Pigsty演示环境包含4个虚拟机节点,其中元节点一个,数据库节点三个;最低配则仅有单个元节点。
标准配置由四个节点组成,包含完整的 基础设施与两套 数据库集群:部署于三个数据库节点上的一主两从集群 pg-test
;以及部署在元节点上的单实例数据库集群 pg-meta
。
标准配置可以充分演示Pigsty的所有功能,进行复杂的架构测试,以及完整的探索实验。
元节点推荐配置为2核/4GB,数据库节点推荐配置为 1核/2GB x3。
最低配置
只使用单个元节点的配置,包含完整的 基础设施 与部署在元节点上的单实例数据库集群 pg-meta
。
元节点的最低配置为 1核/1GB。
宿主机
Pigsty沙箱默认使用基于Vagrant的本地虚拟机,宿主机理论最低配置为1核1GB,推荐配置为4核/8GB或更高。
如果资源不足或充裕,用户可以通过定制Vagrantfile调整创建的虚拟机规格与数量,详情参考 Vagrant虚拟机供给 。
安装软件
拉起Pigsty沙箱,需要先在宿主机安装 vagrant 与 virtualbox。若从宿主机发起控制则还需安装ansible。
软件的安装因平台而异,用户可以直接从官方网站下载vagrant和virtualbox的安装器,并按向导提示完成安装。
ansible可以通过包管理器安装:
brew install ansible # macos
yum install ansible # linux
检查安装的软件版本:
$ echo $(vagrant --version)
Vagrant 2.2.14
$ echo $(vbox-img --version)
6.1.18
$ echo $(ansible --version)
ansible 2.10.3
建议使用2.9以上版本的Ansible,更低版本的Ansible可能遭遇兼容性问题。