#ansible
#ansible
Вопрос:
Когда ubuntu устанавливается по умолчанию, имя хоста — это просто то, что вводится в установщик.
Как я могу проверить это имя хоста и добавить его в полное доменное имя, если оно еще не является полным доменным именем?
Пример псевдо-yaml
- name: Set FQDN LAN hostname
hostname: "{{ current_hostname }}.lan.example.com"
when: <hostname does not end with .lan.example.com>
Ответ №1:
Я так понимаю, что вы ищете условие, которое должно быть сопоставлено when:
. Вы можете использовать переменную ansible_fqdn
magic (факт).
Пример:
- hostname:
name: "{{ ansible_hostname }}.lan.example.com"
when: ( 'lan.example' not in ansible_fqdn )
Ответ №2:
Имя хоста модуля является идемпотентным
Нет причин использовать условие в этой задаче. Модуль либо изменит имя хоста, если оно отличается, либо сохранит его неизменным, если оно уже установлено. Например
- name: Set FQDN LAN hostname
hostname:
name: srv.lan.example.com
Переменная ansible_hostname
Эта переменная всегда сохраняет имя хоста. Его можно использовать, чтобы убедиться, что имя хоста является полным доменным именем. Например
- name: Set FQDN LAN hostname
hostname:
name: "{{ ansible_hostname }}.lan.example.com"