Как использовать cloud-init с изображением на основе debian в Google Cloud? - PullRequest
2 голосов
/ 05 октября 2019

Следуя 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 не принес плодов:

Я не против использовать другое изображение, так какПока это Debian или Ubuntu, и мне не нужно самому создавать шаблон изображения.

Как использовать cloud-init с изображением на основе debian в Google Cloud? Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Чтобы дополнить ответ из @ norbjd , отправьте это для полноты:

1 голос
/ 05 октября 2019

cloud-init установлено на последнем (на момент написания) образе Ubuntu 18.04 LTS (ubuntu-1804-bionic-v20191002):

<my_user>@instance-1:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

<my_user>@instance-1:~$ which cloud-init
/usr/bin/cloud-init

Вы должны заменить debian-cloud/debian-9 на ubuntu-os-cloud/ubuntu-1804-bionic-v20191002.

...