Я уже рассказывал как-то, что в Ansible довольно легко указать, что конкретная задача должна выполняться только в нужном нам дистрибутиве – Debian/Ubuntu или RedHat/Centos). Но недавно мне довелось решить вопрос поинтереснее: как запускать задачи в рамках дистрибутива, но для разных релизов – RHEL 7, но не RHEL 8, например.
Как запускать задачи Ansible только для RedHat или Debian
Для начала, вспомним как запускать задачи для разных дистрибутивов:
В этом примере, первая задача (Disable IPv6) только сработает в системах семейства RedHat (CentOS, Fedora).
А вторая задача из примера будет запускаться только на системах Debian/Ubuntu.
Как запускать задачу в Ansible для конкретного релиза RedHat
А вот с какой задачей я столкнулся: IPv6 можно было выключить в RHEL 6 и RHEL 7, но теперь в RHEL 8/CentOS 8 модуль IPv6 является встроенным – и его нельзя отключить. Стало быть, и пытаться не стоит.
Вот как я изменил задачу Ansible из предыдущего примера, чтобы она выполнялась только на релизах RedHat/CentOS старше RHEL 8/CentOS 8:
-name:Disable IPv6template:src:templates/disable-ipv6.conf.j2dest:/etc/sysctl.d/disable-ipv6.confmode:0660backup:yesnotify:disable ipv6tags:fixsysctlnoipv6when:ansible_os_family == 'RedHat' and ansible_distribution_major_version|int <= 7
Заходите на страницу Facebook или присоединяйтесь к чату в Telegram:
Я использую браузер Brave
Попробуйте сами:
IT Консалтинг
У меня есть консалтинговая компания: Tech Stack Solutions. Я помогаю планировать и создавать облачные решения на базе AWS и помогаю с развёртыванием и поддержкой сервисов на Unix/Linux. Свяжитесь со мной тут.