--- # 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: Determino lo shortname del domain controller ansible.builtin.shell: echo "{{ dcname.stdout| trim }}" | cut -d '.' -f1 args: executable: /bin/bash register: dcshortname - name: Impostiamo qualche fact ansible.builtin.set_fact: dc_name: "{{ dcname.stdout | trim }}" dc_shortname: "{{ dcshortname.stdout | trim }}" dc_ipaddr: "{{ dcipaddr | trim }}" - name: Verifichiamo che il PC effettivamente risolva gli shortname ansible.builtin.command: ping -c3 {{ dc_shortname }} register: check_shortname failed_when: check_shortname.rc != 0