У меня есть KVM-хост. Я использую Terraform для создания виртуальных серверов с помощью KVM-провайдера. Вот соответствующий раздел файла Terraform:
provider "libvirt" {
uri = "qemu+ssh://[email protected]"
}
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. Я не могу войти в систему через SSH, хотя я передаю свой SSH-ключ через файл cloud-init.
Из папки, в которой хранятся все мои ключи, запускаю:
homecomputer:keyfolder wim$ ssh -i homelab [email protected]
[email protected]: 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: ['/']
ssh -vvv ...
, вероятно, тоже будет полезен, если это что-то показывает. - person ydaetskcoR   schedule 31.03.2020