У меня есть следующая проблема:
Я пишу книгу для настройки IP-адреса в командной строке в Ansible. Допустим, 10.10.10.x. Мне нужно получить последнюю часть моего публичного IP-адреса, чтобы сказать xxx15 и назначить его частному: 10.10.10.15. Есть ли переменная для этого? Могу ли я захватить некоторые? Я попытался использовать что-то вроде:
shell: "ip addr show | grep inet ...."
register: host_ip
Но это не то, что мне нужно. Он работает, но только для ограниченного числа серверов.
Все должно быть так:
"shell: /dir/script --options 10.10.10.{{ var }}"
и {{ var }}
должны быть главной частью публичного IP-адреса.
Редактировать:
Спасибо! Здесь мое окончательное решение:
- name: Get the host part of the IP
shell: host {{ ansible_fqdn }} | awk '{print $4}'
register: host_ip
А также
{{ host_ip.stdout.split('.')[3] }}
Для использования позже в учебнике.