diff --git a/ansible/roles/ssh/tasks/main.yml b/ansible/roles/ssh/tasks/main.yml index b8b9872..20a992e 100644 --- a/ansible/roles/ssh/tasks/main.yml +++ b/ansible/roles/ssh/tasks/main.yml @@ -2,7 +2,9 @@ copy: src: "{{ role_path }}/files/ca.sh" dest: /root/ca.sh + mode: 755 - name: Copy keys copy: src: "{{ role_path }}/files/keys/" dest: /root/.ssh/ + mode: preserve diff --git a/cloud_init.cfg.tftpl b/cloud_init.cfg.tftpl index 742a0a9..cc2f07a 100644 --- a/cloud_init.cfg.tftpl +++ b/cloud_init.cfg.tftpl @@ -4,4 +4,6 @@ manage_etc_hosts: true ssh_pwauth: false disable_root: false ssh_authorized_keys: - - "${host_public_key}" +%{ for key in admin_authorized_keys ~} + - "${key}" +%{ endfor ~} diff --git a/main.tf b/main.tf index 048a5dd..92c66ff 100644 --- a/main.tf +++ b/main.tf @@ -28,7 +28,7 @@ resource "libvirt_volume" "main_disk" { resource "libvirt_cloudinit_disk" "cloudinit" { name = "${var.name}.iso" pool = "init" - user_data = templatefile("cloud_init.cfg.tftpl", { name = var.name, host_public_key = var.host_public_key }) + user_data = templatefile("cloud_init.cfg.tftpl", { name = var.name, admin_authorized_keys = var.admin_authorized_keys }) network_config = templatefile("network_config.cfg.tftpl", { internal_ip = var.internal_ip }) } diff --git a/variables.tf b/variables.tf index ec3da61..305b50c 100644 --- a/variables.tf +++ b/variables.tf @@ -7,9 +7,12 @@ variable "libvirt_endpoint" { default = "qemu+ssh://root@atlas.lan/system" } -variable "host_public_key" { - type = string - default = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOodpLr+FDRyKyHjucHizNLVFHZ5AQmE9GmxMnOsSoaw pimkunis@thinkpadpim" +variable "admin_authorized_keys" { + type = list(string) + default = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOodpLr+FDRyKyHjucHizNLVFHZ5AQmE9GmxMnOsSoaw pimkunis@thinkpadpim", + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINUZp4BCxf7uLa1QWonx/Crf8tYZ5MKIZ+EuaBa82LrV user@user-laptop" + ] } variable "internal_ip" {