У меня есть хост 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: ['/']