С помощью Ansible можно упростить сложные задачи и оптимизировать рутинные операции. Среди его функций есть плагин random_pet, который позволяет генерировать уникальные и случайные имена для ресурсов, переменных или идентификаторов.

В этой статье мы рассмотрим подключаемый модуль поиска random_pet в Ansible и то, как его можно использовать для создания случайных имен, меток или значений.

Плагин random_pet

Плагин поиска random_pet — полезный компонент Ansible, который генерирует случайные имена на основе словарей прилагательных и существительных. Его можно использовать для создания уникальных имен для ресурсов, виртуальных машин, контейнеров, сетевых интерфейсов или любых других элементов, которым нужны идентификаторы.

Использование random_pet в плейбуках Ansible

Чтобы использовать плагин random_pet в своих плейбуках Ansible, выполните следующие действия:

Шаг 1. Установите коллекцию

Убедитесь, что плагин random_pet установлен на вашем управляющем компьютере Ansible. Вы можете установить его с помощью следующей команды:

ansible-galaxy collection install community.general

Шаг 2. Установите Python-библиотеку

Плагин random_pet использует Python-библиотеку под названием petname. Вы можете установить её с помощью следующей команды:

pip3 install petname

Шаг 3. Добавить генерацию случайного имени

В своём плейбуке используйте плагин random_pet для создания уникальных имен.

Вот пример:

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ lookup('community.general.random_pet', words=3) }}"

В приведенном выше фрагменте кода мы используем плагин community.general.random_pet для генерации случайного имени питомца. Параметр words определяет количество слов, которые должны быть включены в имя (например, 2 для формата «прилагательное-существительное»).

random_pet в действии
random_pet в действии

Шаг 4. Используйте сгенерированное имя

После того как имя сгенерировано, вы можете получить к нему доступ с помощью зарегистрированной переменной (generated_name) в последующих задачах или использовать его по мере необходимости в своем плейбуке.

Например, вы можете использовать сгенерированное имя для создания виртуальной машины или назначить его в качестве метки для сетевого интерфейса.

- name: Create a virtual machine
  my_cloud_provider_module:
    name: "{{ lookup('community.general.random_pet', words=3, separator="_") }}"
    image: "ubuntu"
    size: "small"
    state: "present"

В приведенном выше коде мы используем гипотетический модуль my_cloud_provider_module для создания виртуальной машины и присваиваем ему сгенерированное имя параметром name.

У плагина random_pet есть документация, познакомиться с ней можно здесь.

Заключение

Плагин random_pet в Ansible — это удобное решение для быстрого создания большого количества уникальных имен.

Какие приёмы для нейминга ресурсов используете вы? Расскажите в комментариях.


Если вы хотите научиться автоматизировать рутинные задачи, быстро обновлять конфигурации на целой армии машин и настраивать Ansible под свои задачи, приходите на курс «Ansible: Infrastructure as Code». Новый поток стартует 21 августа. Посмотреть программу и записаться на курс можно на нашем сайте. Ждём на курсе!

Комментарии (3)


  1. MountainGoat
    18.07.2023 15:13
    -1

    Забавные фразы выходят. Надо будет стырить словарь и написать библиотеку на Расте.


    1. Zermond
      18.07.2023 15:13

      простите, а текущая библиотека имеет фатальный недостаток?


      1. MountainGoat
        18.07.2023 15:13

        Я даже не смотрел, существует ли она. Просто сказал, что мне словарь понравился. Уже есть - хорошо.