gcloud deployment manager
gcloud gcpGCPのdeployment managerを使ってみた(getting stated)のでメモ。
基本動作
こんな感じの設定ファイルを公式からコピペ。
# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Put all your resources under `resources:`. For each resource, you need:
# - The type of resource. In this example, the type is a Compute VM instance.
# - An internal name for the resource.
# - The properties for the resource. In this example, for VM instances, you add
# the machine type, a boot disk, network information, and so on.
#
# For a list of supported resources,
# see https://cloud.google.com/deployment-manager/docs/configuration/supported-resource-types.
resources:
- type: compute.v1.instance
name: quickstart-deployment-vm
properties:
# The properties of the resource depend on the type of resource. For a list
# of properties, see the API reference for the resource.
zone: us-central1-f
# Replace [MY_PROJECT] with your project ID
machineType: https://www.googleapis.com/compute/v1/projects/[MY_PROJECT]/zones/us-central1-f/machineTypes/f1-micro
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
# See a full list of image families at https://cloud.google.com/compute/docs/images#os-compute-support
# The format of the sourceImage URL is: https://www.googleapis.com/compute/v1/projects/[IMAGE_PROJECT]/global/images/family/[FAMILY_NAME]
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9
# Replace [MY_PROJECT] with your project ID
networkInterfaces:
- network: https://www.googleapis.com/compute/v1/projects/[MY_PROJECT]/global/networks/default
# Access Config required to give the instance a public IP address
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
こんな感じでデプロイを実行する。
gcloud deployment-manager deployments create quickstart-deployment --config <configへのpath>
すると、GCEのインスタンスが出来上がっている。
gcloud deployment-manager deployments delete quickstart-deployment
とすると、インスタンスが消えている。
用語など
deployment
とは「GCPのリソースを取得すること、および、それによって取得されたリソース」のことらしい。
インスタンスだけでなく、他のいろんなリソースを取得できる模様。
設定ファイルをバージョン管理することで、再現性のある環境構築が可能。