KVM с Terraform: S SH разрешение запрещено (Cloud-Init) - PullRequest
0 голосов
/ 31 марта 2020

У меня есть хост KVM. Я использую Terraform для создания виртуальных серверов, используя провайдера KVM. Вот соответствующий раздел файла Terraform:

provider "libvirt" {
  uri = "qemu+ssh://root@192.168.60.7"
}

resource "libvirt_volume" "ubuntu-qcow2" {
  count = 1
  name = "ubuntu-qcow2-${count.index+1}"
  pool = "default"
  source = "https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img"
  format = "qcow2"
}

resource "libvirt_network" "vm_network" {
   name = "vm_network"
   mode = "bridge"
   bridge = "br0"
   addresses = ["192.168.60.224/27"]
   dhcp {
    enabled = true
   }
}

# Use CloudInit to add our ssh-key to the instance
resource "libvirt_cloudinit_disk" "commoninit" {
    name = "commoninit.iso"
    pool = "default" 
    user_data = "data.template_file.user_data.rendered"
    network_config = "data.template_file.network_config.rendered"
}

data "template_file" "user_data" {
  template = file("${path.module}/cloud_config.yaml")
}

data "template_file" "network_config" {
  template = file("${path.module}/network_config.yaml")
}

Файл cloud_config.yaml содержит следующую информацию:

manage_etc_hosts: true
users:
  - name: ubuntu
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: users, admin
    home: /home/ubuntu
    shell: /bin/bash
    lock_passwd: false
    ssh-authorized-keys:
      - ${file("/path/to/keyfolder/homelab.pub")}
ssh_pwauth: false
disable_root: false
chpasswd:
  list: |
     ubuntu:linux
  expire: False
package_update: true
packages:
    - qemu-guest-agent
growpart:
  mode: auto
  devices: ['/']

Сервер успешно создан, я могу пропинговать устройство с хост, на котором я запускал скрипт Terraform. Кажется, я не могу войти через S SH, хотя, несмотря на то, что я передаю свой ключ S SH через файл cloud-init.

Из папки, где хранятся все мои ключи, я запускаю:

homecomputer:keyfolder wim$ ssh -i homelab ubuntu@192.168.80.86
ubuntu@192.168.60.86: Permission denied (publickey).

В этой команде homelab - мой закрытый ключ.

Какие-либо причины, по которым я не могу войти? Любой способ отладки? Я не могу войти на сервер сейчас для отладки. Я попытался установить passwd в файле конфигурации облака, но это также не работает

*** Дополнительная информация

1) представленный шаблон выглядит следующим образом:

 > data.template_file.user_data.rendered

manage_etc_hosts: true
users:
  - name: ubuntu
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: users, admin
    home: /home/ubuntu
    shell: /bin/bash
    lock_passwd: false
    ssh-authorized-keys:
      - ssh-rsa AAAAB3NzaC1y***Homelab_Wim
ssh_pwauth: false
disable_root: false
chpasswd:
  list: |
     ubuntu:linux
  expire: False
package_update: true
packages:
    - qemu-guest-agent
growpart:
  mode: auto
  devices: ['/']
...