今天介绍一下可以快速建立GCP各服务的套件Terraform,那麽Terraform是什麽?
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
terraform -version
mkdir test-terraform
cd test-terraform
touch main.tf
举例来说建立一台VM挂载外部硬碟
provider "google" {
credentials = file("/Dev/terraform/project-xxxxxx.json")
project = "project"
region = "asia-east1"
}
resource "google_compute_disk" "disk" {
name = "test-disk"
type = "pd-standard"
zone = "asia-east1-a"
size = 50
}
产生VM name乱数
resource "random_id" "instance_id" {
byte_length = 8
}
设定VM规格
resource "google_compute_instance" "test-vm" {
name = "test-vm-${random_id.instance_id.hex}"
machine_type = "n1-standard-4"
zone = "asia-east1-a"
VM作业系统
boot_disk {
initialize_params {
image = "centos-cloud/centos-7"
}
}
network_interface {
network = "default"
subnetwork = "xxxxxx"
access_config {
}
}
metadata_startup_script = "mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb; mkdir -p /mnt/disk/test; mount -o discard,defaults /dev/sdb /mnt/disk/test; chmod a+w /mnt/disk/test; echo UUID=`blkid -s UUID -o value /dev/sdb` /mnt/disk/test ext4 discard,defaults,nofail 0 2 >> /etc/fstab "
resource "google_compute_attached_disk" "default" {
disk = google_compute_disk.disk.id
instance = google_compute_instance.test-vm.id
}
terraform init
output:
Terraform has been successfully initialized!
terraform validate
output:
Success! The configuration is valid.
terraform plan
output:
Plan: 4 to add, 0 to change, 0 to destroy.
terraform apply
output: 输入 yes
Enter a value: yes
Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
terraform destroy
output: 输入 yes
Plan: 0 to add, 0 to change, 4 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
<<: android studio 30天学习笔记-day 20-SQLlite
>>: [Day21] Flutter GetX with animation
我越来越懂linklist了(应该吧?),可喜可贺 题号:21 标题:Merge Two Sorte...
之前装Anaconda实在太占空间我看了一下我现在大概占了快5G 这次想来试试看轻量安装的Minic...
Effective CISSP LINE公开群组 [http://line.me/ti/g/vqK...
物件内可以放function 学生考了几分 var exam = {} console.log(ex...
0x1 动机 只是很单纯的有兴趣,练习看API文件, 试着在最短时间规划并建立出一个目标, 就是一个...