ansible_proxmox_vms/playbooks/bootstrap-new-client.yml

35 lines
1,023 B
YAML
Raw Permalink Normal View History

---
- name: Bootstrap local known_hosts from inventory
hosts: localhost
gather_facts: false
tasks:
- name: Ensure local ~/.ssh directory exists
ansible.builtin.file:
path: "{{ lookup('env', 'HOME') }}/.ssh"
state: directory
mode: "0700"
- name: Add VM host keys to local known_hosts
ansible.builtin.known_hosts:
path: "{{ lookup('env', 'HOME') }}/.ssh/known_hosts"
name: "{{ hostvars[item][\"ansible_host\"] }}"
key: "{{ lookup('pipe', 'ssh-keyscan -H ' ~ hostvars[item][\"ansible_host\"]) }}"
state: present
loop: "{{ groups[\"proxmox_vms\"] }}"
- name: Add this client SSH public key to VM user
hosts: proxmox_vms
gather_facts: false
vars:
target_user: vrubel
key_file: "{{ lookup('env', 'HOME') }}/.ssh/id_ed25519.pub"
tasks:
- name: Add public key to authorized_keys
ansible.posix.authorized_key:
user: "{{ target_user }}"
state: present
key: "{{ lookup('file', key_file) }}"