From e24ee19c193d82b594305dc43e1e6b07cf98ebb3 Mon Sep 17 00:00:00 2001 From: vrubelroman Date: Mon, 1 Jun 2026 23:25:37 +0300 Subject: [PATCH] add script generate config in ssh --- generate-ssh-config.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 generate-ssh-config.yml diff --git a/generate-ssh-config.yml b/generate-ssh-config.yml new file mode 100644 index 0000000..b95638e --- /dev/null +++ b/generate-ssh-config.yml @@ -0,0 +1,32 @@ +--- +- name: Generate local SSH config from Ansible inventory + hosts: localhost + gather_facts: false + + vars: + ssh_config_file: "{{ lookup('env', 'HOME') }}/.ssh/config" + ssh_identity_file: "~/.ssh/id_ed25519" + ssh_host_suffix: "VM" + ssh_config_marker: "# {mark} ANSIBLE MANAGED HOME VM HOSTS" + + tasks: + - name: Ensure ~/.ssh directory exists + ansible.builtin.file: + path: "{{ lookup('env', 'HOME') }}/.ssh" + state: directory + mode: "0700" + + - name: Add Proxmox VM hosts to local SSH config + ansible.builtin.blockinfile: + path: "{{ ssh_config_file }}" + create: true + mode: "0600" + marker: "{{ ssh_config_marker }}" + block: | + {% for host in groups["proxmox_vms"] %} + Host {{ host }}{{ ssh_host_suffix }} + HostName {{ hostvars[host]["ansible_host"] }} + User {{ hostvars[host]["ansible_user"] | default("vrubel") }} + IdentityFile {{ ssh_identity_file }} + + {% endfor %}