如何复制旧的GCE Jinja部署?

时间:2019-03-06 16:39:29

标签: jinja2 google-compute-engine

几年前,我们在GCE上部署了MongoDb集群,并且需要在dev中创建一个相同的集群,以测试升级到MongoDB v3.6和v4的过程。 v3.4群集部署模板不再在市场上(v4现在可用),所以我想:

  1. 找到旧模板
  2. 在GCE部署管理器中创建我自己的完全相同的人

我以前从未使用过jinja或python模板,所以这有点挑战。当我在GCE部署管理器中查看以前的部署时,它为我提供了“布局”,“配置”和“扩展配置”。 它还提供了指向各种导入的链接。

Config看起来很像Schema的json版本,而Layout有点像一个未经训练的人喜欢的jinja模板。 因此,我尝试通过将“ Config”转换为yaml并将“ Layout”作为jinja,在GCE Deployment Manager中创建新的Composite Type。这失败了,如果我查看开发工具,就会发现此错误:

[{
"code":"INVALID_FIELD_VALUE",
"location":"template.schema",
"message":"Template fetching failed: Type common/deployment_coordinator.jinja is not a valid template type, missing required fields"}]

向我暗示它不知道“普通”是什么-这是一个问题,因为我也不知道。

我是否需要为每个导入创建自己的复合类型? GCE不会为我提供它们的URL,但是如果我单击它们,它会显示内容。我的下一步是什么?

以下是“配置”的内容:

imports:
- name: deployment_coordinator.jinja
  path: common/deployment_coordinator.jinja
- name: path_utils.jinja
  path: common/path_utils.jinja
- path: mongodb.jinja
resources:
- name: deployment_coordinator
  type: deployment_coordinator.jinja
  properties:
    package: mongodb
    zone: us-east1-b
    network: default
    subnetwork: default
- name: mongodb
  type: mongodb.jinja
  properties:
    zone: us-east1-b
    replicaSetName: rs0
    numReplicas: 3
    machineType: custom-2-5120
    dataDiskType: pd-ssd
    dataDiskSizeGb: 250
    numArbiters: 0
    arbMachineType: f1-micro
    network: default
    subnetwork: default

这是“布局”:

resources:
- name: deployment_coordinator
  properties:
    network: default
    package: mongodb
    subnetwork: default
    zone: us-east1-b
  resources:
  - name: mongo-backbone-prod-coord
    type: compute.v1.instance
  type: deployment_coordinator.jinja
- name: mongodb
  outputs:
  - finalValue: mongo-backbone-prod-server-1
    name: initialPrimaryName
    value: mongo-backbone-prod-server-1
  - finalValue: https://www.googleapis.com/compute/v1/projects/***/zones/us-east1-b/instances/mongo-backbone-prod-server-1
    name: initialPrimarySelfLink
    value: $(ref.mongo-backbone-prod-server-1.selfLink)
  - finalValue: c2d
    name: x-status-type
    value: c2d
  properties:
    arbMachineType: f1-micro
    dataDiskSizeGb: 250
    dataDiskType: pd-ssd
    machineType: custom-2-5120
    network: default
    numArbiters: 0
    numReplicas: 3
    replicaSetName: rs0
    subnetwork: default
    zone: us-east1-b
  resources:
  - name: mongo-backbone-prod-server
    properties:
      addedDiskResources:
      - name: mongo-backbone-prod-server-1-data
        properties:
          sizeGb: 250
          type: https://www.googleapis.com/compute/v1/projects/***/zones/us-east1-b/diskTypes/pd-ssd
          zone: us-east1-b
        type: compute.v1.disk
      - name: mongo-backbone-prod-server-2-data
        properties:
          sizeGb: 250
          type: https://www.googleapis.com/compute/v1/projects/***/zones/us-east1-b/diskTypes/pd-ssd
          zone: us-east1-b
        type: compute.v1.disk
      - name: mongo-backbone-prod-server-3-data
        properties:
          sizeGb: 250
          type: https://www.googleapis.com/compute/v1/projects/***/zones/us-east1-b/diskTypes/pd-ssd
          zone: us-east1-b
        type: compute.v1.disk
      bootDiskType: pd-standard
      canIpForward: true
      disks:
      - autoDelete: true
        boot: false
        deviceName: data
        diskSizeGb: 250
        diskType: pd-ssd
        type: PERSISTENT
      instanceName: mongo-backbone-prod-server
      machineType: custom-2-5120
      metadata:
        items:
        - key: startup-script
          value: /opt/c2d/startup-script.sh
        - key: ISMONGODBSERV
          value: 'True'
        - key: ISMONGODBARB
          value: 'False'
        - key: MONGO_REPLICASET_NAME
          value: rs0
        - key: MONGODB_SERVERS
          value: mongo-backbone-prod-server-1|mongo-backbone-prod-server-2|mongo-backbone-prod-server-3|
        - key: MONGODB_ARBITERS
          value: ''
        - key: ENV_DEPLOY_INSTALL_TEMP
          value: /tmp/mongo
      network: default
      numberOfVMReplicas: 3
      sourceImage: https://www.googleapis.com/compute/v1/projects/click-to-deploy-images/global/images/mongodb-3-4-debian-8-jessie-20170822-101032
      subnetwork: default
      tags:
        items:
        - mongodb
        - mongodb-db
        - cluster-deployed-from-google-developer-console
      zone: us-east1-b
    resources:
    - name: mongo-backbone-prod-server-1
      type: compute.v1.instance
    - name: mongo-backbone-prod-server-2
      type: compute.v1.instance
    - name: mongo-backbone-prod-server-3
      type: compute.v1.instance
    - name: mongo-backbone-prod-server-1-data
      type: compute.v1.disk
    - name: mongo-backbone-prod-server-2-data
      type: compute.v1.disk
    - name: mongo-backbone-prod-server-3-data
      type: compute.v1.disk
    type: vm_multiple_instances.py
  type: mongodb.jinja

以下是进口:

c2d_deployment_configuration.json
common.py
default.py
deployment_coordinator.jinja
mongodb.jinja
mongodb.jinja.display
mongodb.jinja.schema
password.py
path_utils.jinja
resources/en/mongodb_logo.png
resources/en/mongodb_overview.png
test_config.yaml
vm_instance.py
vm_instance.py.schema
vm_multiple_instances.py

1 个答案:

答案 0 :(得分:1)

在GCE中显示UI并没有太大帮助,您不需要摆弄模板。最好的选择是使用gcloud命令行工具。
复制以前的部署:

  1. 转到https://console.cloud.google.com/dm/deployments并从以前部署的UI的概述部分下载您的“扩展配置” 作为YAML文件。
  2. 对YAML进行任何更改(可能只是更改已部署资源的名称)。
  3. 打开命令行,您可以在其中使用gcloud工具。
  4. gcloud deployment-manager deployments create name-of-new-deployment --config yourUpdatedExpandedConfig.yaml

更多信息:https://cloud.google.com/sdk/gcloud/reference/deployment-manager/

,尤其是:https://cloud.google.com/sdk/gcloud/reference/deployment-manager/deployments/