关注地形 best practice对于引导实例,我正在处理 cloud-init
配置以引导我的实例。我唯一的需要是安装一个特定的包。
我的 terraform 配置如下所示:
resource "google_compute_instance" "bastion" {
name = "my-first-instance"
machine_type = "n1-standard-1"
zone = "europe-west1-b"
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
metadata = {
ssh-keys = "eugene:${file("/Users/eugene/.ssh/id_rsa.pub")}"
user-data = file("my_cloud_init.conf")
}
}
关注 example用于安装来自
cloud-init
的软件包文档,这里是 my_cloud_init.conf
的内容:#cloud-config
packages:
- kubectl
运行后
terraform plan -out myplan
和 terraform apply myplan
, 我 ssh 到节点上才发现 kubectl
无法使用。此外,没有证据表明 cloud-init
已运行或它存在于节点上:$ which -a cloud-init
$ cat /var/log/cloud-init
cat: /var/log/cloud-init: No such file or directory
寻找
cloud-init
用法的线索使用 Google Cloud Compute 实例并不富有成效:cloud-init
文档建议设置 user-data
到 cloud-init
配置应该就够了,cloud-init
tutorial ,但它适用于 Container Optimized OS
, cloud-init
在其他图像上,但没有任何指示 cloud-init
可在 debian-cloud/debian-9
上找到, cloud-init
. 我不介意使用其他图像,只要它是 Debian 或 Ubuntu 并且我不必自己制作图像模板。
使用方法
cloud-init
在 Google Cloud 上使用基于 debian 的镜像?我错过了什么?
最佳答案
补充answer来自 @norbjd ,为了完整性发布这个:
kubectl
我最初计划的包,我不得不写这个cloud-init
配置:#cloud-config
bootcmd:
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
apt:
sources:
kubernetes.list:
source: "deb http://apt.kubernetes.io/ kubernetes-xenial main"
packages:
- kubectl
关于google-cloud-platform - 如何在 Google Cloud 上将 cloud-init 与基于 debian 的镜像一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248190/