26

Ansible. Network-scripts. RHEL8

Серия ИТ
Ansible. Network-scripts. RHEL8

Приветствую!


Практически завершил работу над ansible-хелпером "conf_int_ipv4_via_network_scripts" (репозиторий "ansible_helpers"), но "практически" означает, что совокупность скриптов и сценариев уже можно использовать в работе.


Краткая инструкция.

1. Клонируем репозиторий - git clone "https://github.com/vladimir-chursin000/ansible_helpers".

2. Переходим в директорию ".../ansible_helpers/conf_int_ipv4_via_network_scripts/rhel8_based".

3. Заполняем inventory-файл "conf_network_scripts_hosts" (не забываем про ssh-ключи на удалённых хостах).

4. Заполняем основной файл конфигурации "config" (такой вот незамысловатый нейминг). Каждая линия - настройка конкретного сетевого интерфейса на конкретном хосте. Присутствует файл со всеми возможными примерами конфигурации - "config_examples".

5. Правим дополнительные файлы конфигурации, расположенные в директории "additional_configs":

а) dns_settings (настройки DNS). По умолчанию содержит только доменные сервера Google (8.8.8.8, 8.8.4.4) в качестве общих NS (nameservers/сервера имён) для всех хостов из inventory-файла. Также присутствует возможность для отдельных хостов выставить уникальные сервера имён;

б) config_del_not_configured_ifcfg. Файл конфигурации, определяющий действия в отношении сетевых интерфейсов, отсутствующих в основном файле конфигурации (который "config"). Для inventory-хостов, вписанных в этот конфиг, действует правило - отключать сетевые интерфейсы (и удалять соответствующие ifcfg-файлы), не сконфигурированные в файле "config".

6. Запускаем скрипт "install_network_scripts_and_configure_network.sh" (если "network-scripts" не установлен) или "apply_immediately_ifcfg.sh".


Что произойдёт после запуска (если опустить часть с установкой "network-scripts"), если кратко:

1. Бэкап ifcfg-файлов с сохранением в директорию (и поддиректории) ".../playbooks/ifcfg_backup_from_remote": "history" - для хранения, "now" - для дальнейшего сравнения с ifcfg-файлами, генерация которых (на основе config-а) произойдёт на следующем этапе.

2. Запуск perl-скрипта "generate_dynamic_ifcfg.pl", которые создаёт:

а) ifcfg-файлы для каждого inventory-хоста (на основе основного конфига). Размещаются в ".../playbooks/dyn_ifcfg_playbooks/dyn_ifcfg";

б) файлы resolv-conf (на основе "dns_settings"). Директория ".../playbooks/dyn_ifcfg_playbooks/dyn_resolv_conf";

в) task-файл для каждого inventory-хоста, содержащий ansible-инструкции для реконфигурации сети (директория ".../playbooks/dyn_ifcfg_playbooks"). Важный момент - если сгенерированные ifcfg-файлы не отличаются от текущих (скопированных на первом этапе исполнения), то task-файл будет содержать только ansible-код для взаимодействия с "resolv.conf".

3. Исполнение сформированных task-файлов.


P.S. №1. Осталась самая малость - реализовать механизм временного применения сетевых настроек (о чём писал ранее).


P.S. №2. Надеюсь, кому-то результат моих изысканий поможет сэкономить время.

Лига Сисадминов

2.7K постов19.2K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Вы смотрите срез комментариев. Показать все
5
Автор поста оценил этот комментарий
Какой трэш я увидел. Мне интересно посмотреть на результат работы тех людей что ставили плюсы.
раскрыть ветку (8)
Автор поста оценил этот комментарий

"Какой трэш" - это слишком абстрактно. Есть конкретика?

раскрыть ветку (7)
2
Автор поста оценил этот комментарий
Где роли, где джинджа, где структура?
раскрыть ветку (5)
Автор поста оценил этот комментарий

Если Вы не заметили, то концепция у репозитория не относится к каноничной.
Каждый раздел (см. скрин) - это приложение, которое можно смело использовать отдельно от репозитория.

+ Вот задачу с интерфейсами (о которой речь в публикации) как бы Вы решили, используя исключительно каноничный подход? Знаете примеры реализации?)

Иллюстрация к комментарию
раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Используйте модуль nmcli https://docs.ansible.com/ansible/latest/collections/communit...

У вас везде трэш посмотрите на lxc роль и посмотрите на роль lxc в galaxy с рейтингом  3 (я не говорю про 5). У вас везде антипатерны и трэш и вы ещё это кому-то советуете. Прочтите лучше доку для начала.

раскрыть ветку (3)
Автор поста оценил этот комментарий

Как в каноничном виде сконфигурировать хотя бы десяток хостов, если условие такое
===
"(хотя бы) поднять/перенастроить несколько бриджей (для одного бриджа используется сетевой интерфейс с назначенным со стороны коммутатора транковым коннектом для доступа к разным vlan-ам c разных бриджей, для другого - обычный коннект), несколько бонд-коннектов (с вланами и без оных) и пару сетевых интерфейсов. При этом каждый хост может/должен содержать различное кол-во сетевых интерфейсов/бондов/бриджей."

Покажете готовое решение?
===
Про nmcli
Публикация имеет имя "Ansible. Network-scripts. RHEL8", а не "Ansible. NetworkManager. RHEL8"

раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Готовое решение это хост варс и джинджа. То что вы делаете это какой-то трэш.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Буду благодарен, если Вы реализуете описанный случай каноничными средствами ansible и опубликуете ссылку на репозиторий в своём профиле (отправив публикацию в сообщество "Лига сисадминов") со ссылкой на эту публикацию.

Иллюстрация к комментарию
0
Автор поста оценил этот комментарий
Начните с документации ансибл https://docs.ansible.com/ansible/2.8/user_guide/playbooks_be...
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества