49 lines
1.6 KiB
YAML
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 }}
|