使用Deployment Manager部署不同的资源?

时间:2019-07-11 11:05:41

标签: google-cloud-platform google-deployment-manager

我计划使用Deployment Manager为我们的每个客户部署一个新项目。

我只是想知道我是否可以使用Deployment Manager或将其放入脚本/ YAML中进行以下操作,以便它可以通过命令外壳一次部署所有组件?

  1. 创建一个新的GCP项目
  2. 为分配了自定义子网的客户端创建VPC
  3. 创建虚拟机并将网络设置为自定义VPC /子网
  4. 使用yaml文件创建具有不同服务的应用引擎
  5. 创建存储桶
  6. 创建云Postgres SQL实例

到目前为止,我只能通过Deployment Manager部署VM,我可以使用命令行来单独进行部署,而不能一步一步使用Deployment Manager。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

Deployment Manager对于这种类型的设置应该可以完美地工作。尽管有一些小警告。

  1. 您需要有一个可以在其中运行Deployment Manager的项目
  2. 在创建部署之前,您需要向Deployment Manager服务帐户提供所有必需的权限(例如,组织级别的项目创建者)。服务帐户为[PROJECT_ID] @ cloudservices.gserviceaccount.com

接下来,您将要在Deployment Manager清单中分别调用每个资源,幸运的是,DM支持所有这些资源API:

  1. Projects创建项目。
    **以下所有资源都应对此资源进行reference创建依赖关系,以使DM不会在项目存在之前尝试创建它们...这将导致失败

  2. VPC和VM:使用类似this
    的东西 **这包括在末尾添加GKE群集和不需要的VPC对等连接,但是它演示了VPC,子网,防火墙规则和VM的创建

  3. App Engine

  4. GCS Bucket

  5. SQL instance

只要您的整体配置小于1 MB,就可以将所有这些资源放入一个配置中。 如果您不熟悉DM,建议您分别尝试使用每种资源,以确保语法正确。尝试用多种资源调试语法错误要困难得多。

我还建议您在创建或更新资源之前使用--preview flag,以确保您的配置或更改将按计划的方式生效。

最后,您可以将所有内容直接写入YAML配置中,也可以使用either jinja or python2创建模板,并将其导入到config.yaml

中。

答案 1 :(得分:0)

请查看Deployment Manager Cloud Foundation Toolkit,它是一组设计良好的模板。