Проверка аргументов Play
Начиная с версии 2.20, проверку аргументов можно включить с помощью ключевого слова play validate_argspec. После сбора фактов на уровне play добавляется задача validate_argument_spec. Эта функция находится в режиме технического предварительного просмотра.
Проверка аргументов play состоит из двух основных частей:
- Ключевое слово
validate_argspec. - Файл
.meta.yml, определяющий спецификации аргументов.
Чтобы включить проверку аргументов play:
- Укажите идентификатор спецификации аргументов, задав значение для ключевого слова
validate_argspec. Можно задать значениеTrue, чтобы использовать playname, или указать строку. - Добавьте корректную спецификацию аргументов в файл
<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