Задача: Нужно обновить DNS в netplan и сохранить остальные настройки.
Я сделал j2 шаблон netplan:
network:
ethernets:
ens160:
dhcp4: false
addresses:
- {{ ansible_ssh_host }}/25
gateway4: {{ ansible_default_ipv4.gateway }}
nameservers:
addresses:
-
10.68.1.136 -
10.68.0.22 version: 2
Вот тут нужна маска /25. Но есть другие хосты, где маска может быть /24. Через ansible_facts можно посмотреть какие переменные доступны по хосту, но маска там указана только в формате
255.255.254.0. Чтобы плейбук работал на всех хостах, нужно преобразовать текущую маску в подходящий для netplan вид.
Пока есть мысль настроить свои переменные на /24 /25 в зависимости от маски на хосте и эти переменные подставлять в netplan.