几年前,我们在GCE上部署了MongoDb集群,并且需要在dev中创建一个相同的集群,以测试升级到MongoDB v3.6和v4的过程。 v3.4群集部署模板不再在市场上(v4现在可用),所以我想:
我以前从未使用过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
答案 0 :(得分:1)
在GCE中显示UI并没有太大帮助,您不需要摆弄模板。最好的选择是使用gcloud
命令行工具。
复制以前的部署:
gcloud
工具。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/