Следуя terraform рекомендациям для экземпляров начальной загрузки, я работаю над конфигурацией 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")
}
}
Следуя примеру для установки пакетов из 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 не принес плодов:
- " Google Cloud Engine " Страница из
cloud-init
документов предлагает настройки user-data
до cloud-init
конфигурации должно быть достаточно, - Я вижу
cloud-init
учебник , но для Container Optimized OS
, - есть некоторые подсказки о
cloud-init
на других изображениях, но ничто не указывает на cloud-init
доступно на debian-cloud/debian-9
, - есть " Запуск сценариев запуска ", но в нем нет упоминания
cloud-init
.
Я не против использовать другое изображение, так какПока это Debian или Ubuntu, и мне не нужно самому создавать шаблон изображения.
Как использовать cloud-init
с изображением на основе debian в Google Cloud? Чего мне не хватает?