跳转到主要内容

Postgres部署脚本是一种简单的方法,可以在云中部署PostgreSQL、EDB Postgres高级服务器和EDB工具。

项目描述

入门指南

edb-pot工具是部署云资源并部署PostgreSQL、EDB Postgres高级服务器和工具(高可用性和监控)以进行技术证明的简单方法。

支持的云提供商是AWSAzureGoogle Cloud

edb-pot帮助用户部署定制的Postgres参考架构,以展示EDB技术的功能。

edb-pot是一个开源工具,并由GitHub仓库的成员维护和支持,不由EDB支持正式支持。请通过提交问题和提供拉取请求来提供反馈。

在开始深入研究此存储库之前,最好熟悉特定云(AWS、Azure和Google Cloud)的部署过程步骤。

先决条件

edb-pot依赖于以下组件。在开始使用之前,请安装以下组件。

  1. Python 3
  2. pip3

第三方先决条件

  1. 最新供应商云CLI或SDK(AWS、Azure或Google Cloud)

    根据云服务提供商,在系统上安装:最新版本的 AWS CLI、Azure CLI 或 Google Cloud SDK。

  2. Terraform >= 0.13

  3. Ansible >= 2.9

为了帮助安装上述第三方先决条件,edb-pot为 Linux (x64) 和 MacOS (x64) 提供了安装脚本。请参阅章节先决条件安装脚本

安装

从源代码

使用pip3命令进行安装。一旦下载了代码,无论是通过克隆存储库还是下载版本,请转到创建的文件夹并运行命令pip3 install

$ cd postgres-deployment
$ sudo pip3 install . --upgrade

从 Pypi

$ sudo pip3 install edb-pot

确保工具已正确安装,运行以下命令

$ edb-pot --version

Shell 自动完成

edb-pot支持使用tab键进行命令行自动完成。

支持的 Shell 是 bashzsh

要启用当前会话中的自动完成,必须运行以下命令

$ eval "$(register-python-argcomplete edb-pot)"

要为所有会话启用自动完成,必须将上述命令添加到您使用的 Shell 的~/.bashrc文件或~/.zshrc文件末尾。

先决条件安装脚本

为了简化第三方先决条件工具(如awsterraformansible等)的安装,为 Linux (x64) 和 MacOS (x64) 提供了一些 bash 安装脚本。它们位于script/文件夹中。

执行安装脚本需要以下软件包:gcc(仅限 Linux)、python3-devel(仅限 Linux)、unzipwgettar。这些软件包应通过常规包管理器(dnfaptbrew等)安装。

最后,必须使用root权限安装 Python 的virtualenv

$ sudo pip3 install virtualenv

现在可以运行先决条件安装脚本。默认情况下,第三方工具将安装在$HOME/.edb-cloud-tools文件夹中,此路径可以通过设置环境变量INSTALL_PATH进行更改。

在 Linux 上

$ /usr/local/share/edb-pot/scripts/install_requirements_linux_x64.sh

在 MacOS 上(使用brew安装的 Python 3.9)

$ /usr/local/share/edb-pot/scripts/install_requirements_darwin_x64.sh

最后一步是将安装路径添加到PATH变量中。如果您的 Shell 是bash,只需输入

$ source ~/.bashrc

对于其他 Shell,您必须以这种方式重新导出环境变量PATH

$ export PATH=$PATH:$HOME/.edb-cloud-tools/bin

现在,您可以使用命令aws --versionansible --version等来检查工具是否可以随时使用。

用法

每个新的部署都将在一个专用的命名空间下完成,即<PROJECT_NAME>

edb-pot CLI 功能通过子命令实现。每个子命令可以像这样执行

$ edb-pot <CLOUD_VENDOR> <SUB_COMMAND> [<PROJECT_NAME>]

云供应商列表

  • aws:Amazon Web Services
  • azure:Microsoft Azure Cloud
  • gcloud:Google Cloud

子命令

  • configure:新项目初始化和配置
  • provision:云资源提供
  • destroy:云资源销毁
  • deploy:Postgres 和工具部署
  • display:显示项目信息
  • passwords:显示项目密码
  • show:显示配置
  • list:列出项目
  • specs:显示云供应商默认规范
  • logs:显示项目日志
  • remove:删除项目

如何使用

新项目的部署应遵循以下工作流程

  1. 配置云凭证
  2. 项目配置
  3. 云资源提供
  4. Postgres 和工具部署

配置云凭证

此步骤取决于目标云供应商。

AWS 凭证配置

AWS 凭证配置将通过aws工具完成。为此步骤,我们需要获取您的AWS Access Key IDAWS Secret Access Key。有关 Amazon Access Key 管理的更多信息,请访问官方文档页面

运行以下命令,并输入访问密钥ID和秘密访问密钥

$ aws configure

Azure凭据配置

可以使用以下命令使用az工具完成Azure云凭据配置

$ az login --use-device-code

GCloud凭据配置

GCloud凭据配置比其他云供应商的步骤更多。需要GCloud项目ID

  1. 使用您的电子邮件地址登录
$ gcloud auth login <LOGIN_EMAIL> --no-launch-browser
  1. 在您的浏览器中打开链接,并复制提供的验证码。
  2. 项目配置
$ gcloud config set project <PROJECT_ID>
  1. 要查找服务的IAM账户,请输入以下命令以列出服务账户
$ gcloud iam service-accounts list
  1. 最后,创建并下载新的服务账户密钥
$ gcloud iam service-accounts keys create ~/accounts.json --iam-account=<IAM_ACCOUNT>

必须保留JSON文件$HOME/accounts.json,并且edb-pot将需要它。

项目配置

配置好云供应商凭据后,您可以继续进行项目配置步骤。

云供应商规范

edb-pot为要部署的云资源提供默认配置值,如实例类型磁盘大小OS镜像附加卷等。

要更改这些配置值,您需要首先使用以下命令导出默认值

$ edb-pot <CLOUD_VENDOR> specs > my_configuration.json

然后,您可以编辑并更新存储在JSON文件中的资源配置。

项目初始化

项目初始化将通过使用configure子命令来完成

$ edb-deploy <CLOUD_VENDOR> configure <PROJECT_NAME> \
  --route53-access-key <route53-acccess-key> \
  --route53-secret <route53-secret> \
  --email-id <email-id> \
  -u "<EDB_REPO_USERNAME>:<EDB_REPO_PASSWORD>" \
  -r <CLOUD_REGION> \
  -s my_configuration.json

注意

  • "EDB_REPO_USERNAME:EDB_REPO_PASSWORD"

    EDB包仓库凭据。 必需

  • CLOUD_REGION

    云供应商区域。默认值取决于云供应商。

有关更多详细信息,请使用

$ edb-pot <CLOUD_VENDOR> configure --help

云资源提供

项目配置完成后,我们可以继续进行云资源部署

$ edb-pot <CLOUD_VENDOR> provision <PROJECT_NAME>

组件部署

最后,我们可以使用deploy子命令部署组件

$ edb-pot <CLOUD_VENDOR> deploy <PROJECT_NAME>

其他功能

项目列表

$ edb-pot <CLOUD_VENDOR> list

显示项目库存

$ edb-pot <CLOUD_VENDOR> display <PROJECT_NAME>

显示项目密码

$ edb-pot <CLOUD_VENDOR> passwords <PROJECT_NAME>

云资源销毁

$ edb-pot <CLOUD_VENDOR> destroy <PROJECT_NAME>

项目树删除

$ edb-pot <CLOUD_VENDOR> remove <PROJECT_NAME>

许可协议

原始作品版权2019-2020,EnterpriseDB公司

版权所有。

在满足以下条件的情况下,允许以源代码和二进制形式重新分发和使用,无论是否修改:

  1. 源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。

  2. 二进制形式的重新分发必须在文档中或与分发一起提供的其他材料中复制上述版权声明、本条件列表和以下免责声明。

  3. 未经企业DB或其贡献者事先书面许可,不得使用EnterpriseDB或其贡献者的名称来认可或推广源自本软件的产品。

本软件由版权所有者和贡献者“按原样”提供,并且不提供任何明示或暗示的保证,包括但不限于对适销性和对特定用途的适用性的暗示保证。在任何情况下,版权所有者或贡献者不应对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论该责任基于合同、严格责任还是侵权(包括疏忽或其他原因)。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

edb-pot-2.1.1.tar.gz (54.9 kB 查看哈希值)

上传时间

构建分发

edb_pot-2.1.1-py3-none-any.whl (87.3 kB 查看哈希值)

上传时间 Python 3

由以下支持