add script generate config in ssh
This commit is contained in:
parent
c642a36406
commit
e24ee19c19
1 changed files with 32 additions and 0 deletions
32
generate-ssh-config.yml
Normal file
32
generate-ssh-config.yml
Normal file
|
|
@ -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 %}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue