Spec-Zone.ru › Ansible

Проверка аргументов Play

Начиная с версии 2.20, проверку аргументов можно включить с помощью ключевого слова play validate_argspec. После сбора фактов на уровне play добавляется задача validate_argument_spec. Эта функция находится в режиме технического предварительного просмотра.

Проверка аргументов play состоит из двух основных частей:

  • Ключевое слово validate_argspec.
  • Файл .meta.yml, определяющий спецификации аргументов.

Чтобы включить проверку аргументов play:

  1. Укажите идентификатор спецификации аргументов, задав значение для ключевого слова validate_argspec. Можно задать значение True, чтобы использовать play name, или указать строку.
  2. Добавьте корректную спецификацию аргументов в файл <playbook_name>.meta.yml в том же каталоге, что и плейбук.

В следующем примере для плейбука create_webserver.yml задаётся корректная пустая спецификация аргументов с именем setup webserver:

# create_webserver.meta.yml
argument_specs:
  setup webserver:
    options: {}

В следующем плейбуке аргументы обоих play проверяются на соответствие аргументам setup webserver:

# create_webserver.yml
- name: setup webserver
  hosts: all
  validate_argspec: True

- hosts: all
  validate_argspec: setup webserver

Формат спецификации

Спецификация аргументов play должна быть определена в блоке верхнего уровня argument_specs в файле .meta.yml плейбука. Все поля записываются строчными буквами.

argument-spec-name:
  • Имя play или спецификации аргументов.
description:
  • Описание play, которое может состоять из нескольких строк.
  • Это может быть одна строка или список строк.
options:
  • В этом разделе задаётся словарь аргументов play.
  • Для каждого параметра play (аргумента) можно указать:
option-name:
  • Имя параметра/аргумента (обязательное).
description:
  • Подробное описание назначения этого параметра. Оно должно быть сформулировано полными предложениями.
  • Это может быть одна строка или список строк.
type:
  • Тип данных параметра. Допустимые значения для type см. в разделе Спецификация аргументов. По умолчанию используется str.
  • Если параметр имеет тип list, следует указать elements.
required:
  • Требуется только в случае true.
  • Если параметр не указан, он не является обязательным.
choices:
  • Список допустимых значений параметра.
  • Если список пуст, его следует опустить.
elements:
  • Задаёт тип данных элементов списка, если тип равен list.
options:
  • Если этот параметр принимает словарь или список словарей, здесь можно определить их структуру.

Пример спецификации

# create_webservers.meta.yml
description: Set up basic HTTPS-enabled webserver to serve content from a specified document root.
argument_specs:
  setup webserver:
    options:
      document_root:
        description: Path to the directory containing static web content to be served.
        type: str
        required: True
      port:
        description:
          - Port number on which the webserver listens for incoming HTTPS connections.
          - When unspecified, the port is 443.
        type: int
      ssl_cert_path:
        description: Path to the SSL certificate.
        type: str
        required: True
      ssl_key_path:
        description: Path to the private key corresponding to the SSL certificate.
        type: str
        required: True

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_variables_validation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API