diff options
Diffstat (limited to 'roles/pve-lxc-ssh/tasks')
| -rw-r--r-- | roles/pve-lxc-ssh/tasks/main.yml | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/roles/pve-lxc-ssh/tasks/main.yml b/roles/pve-lxc-ssh/tasks/main.yml new file mode 100644 index 00000000..7a6314cb --- /dev/null +++ b/roles/pve-lxc-ssh/tasks/main.yml @@ -0,0 +1,69 @@ +--- +- name: "Install openssh" + become: true + ansible.builtin.command: + cmd: > + pct exec {{ pve_lxc_id }} -- sh -c + 'which sshd > /dev/null 2>&1 && exit 0; + . /etc/os-release; + case $ID in + alpine) apk add --no-cache openssh ;; + debian|ubuntu) apt-get install -y openssh-server ;; + *) echo "Unsupported distro: $ID" && exit 1 ;; + esac; + echo "installed"' + register: pve_lxc_ssh_install + changed_when: "'installed' in pve_lxc_ssh_install.stdout" + tags: + - "molecule-notest" + +- name: "Generate ssh host keys" + become: true + ansible.builtin.command: + cmd: > + pct exec {{ pve_lxc_id }} -- sh -c + '[ -f /etc/ssh/ssh_host_ed25519_key ] && exit 0; + ssh-keygen -q -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -C "" -N ""; + echo "generated"' + register: pve_lxc_ssh_keygen + changed_when: "'generated' in pve_lxc_ssh_keygen.stdout" + tags: + - "molecule-notest" + +- name: "Render sshd_config" + ansible.builtin.template: + src: "sshd_config.j2" + dest: "/tmp/sshd_config_{{ pve_lxc_id }}" + mode: "0600" + tags: + - "molecule-notest" + +- name: "Push sshd_config into container" + become: true + ansible.builtin.command: + cmd: pct push {{ pve_lxc_id }} /tmp/sshd_config_{{ pve_lxc_id }} /etc/ssh/sshd_config --perms 0640 + changed_when: true + tags: + - "molecule-notest" + +- name: "Remove temp sshd_config" + ansible.builtin.file: + path: "/tmp/sshd_config_{{ pve_lxc_id }}" + state: absent + tags: + - "molecule-notest" + +- name: "Enable and start sshd" + become: true + ansible.builtin.command: + cmd: > + pct exec {{ pve_lxc_id }} -- sh -c + '. /etc/os-release; + case $ID in + alpine) rc-update add sshd default; rc-service sshd restart ;; + debian|ubuntu) systemctl enable --now ssh; systemctl restart ssh ;; + *) echo "Unsupported distro: $ID" && exit 1 ;; + esac' + changed_when: false + tags: + - "molecule-notest" |
