pnglug-mattiussi/roles/domsearch/tasks/main.yml

49 lines
1.6 KiB
YAML

---
# Sistemiamo la ricerca per dominio, che potrebbe essere a ramengo.
- name: Individuiamo l'interfaccia di rete nativa
ansible.builtin.set_fact:
nic: "{{ ansible_default_ipv4.interface }}"
- name: Identifichiamo il profilo di connessione di NetworkManager
ansible.builtin.shell: >-
set -o pipefail;
nmcli connection | awk -F" " "/{{ nic }}/ { print $1 }'
args:
executable: /bin/bash
register: nm_connection
- name: Forziamo il dominio di ricerca sulla connessione
ansible.builtin.command: >-
nmcli connection modify "{{ nm_connection.stdout|trim }}"
ipv4.dns-search {{ domain }}
- name: Forziamo temporaneamente per questa sessione il dominio di ricerca
ansible.builtin.command: >-
resolvectl domain {{ nic }} {{ domain }}
# Assumiamo che il server DNS inserito risolva il dominio.
# Consultiamo il DNS per ricevere informazioni sul domain controller.
- name: Determiniamo il nome del domain controller
ansible.builtin.shell: >-
set -o pipeline;
dig +short _ldap._tcp.{{ domain }} SRV | cut -d' ' -f 4 | sed -e 's/\.$//'
args:
executable: /bin/bash
register: dcname
- name: Determiniamo l'IP del domain controller
ansible.builtin.command: dig +short {{ dcname.stdout | trim }}.
register: dcipaddr
- name: Impostiamo qualche fact
ansible.builtin.set_fact:
dc.name: "{{ dcname.stdout | trim }}"
dc.shortname: "{{ dc.name.split('.')[0] }}"
dc.ipaddr: "{{ dcipaddr | trim }}"
- name: Verifichiamo che il PC effettivamente risolva gli shortname
ansible.builtin.command: dig +short {{ dc.shortname }}
register: check_shortnames
failed_when: check_shortnames.stdout|trim != {{ dc.ipaddr }}