#ansible
Вопрос:
У меня есть плейбук, который должен извлекать артефакты из репозитория maven, извлекать их во временную папку и копировать какой-либо файл в папку назначения. В настоящее время он работает довольно хорошо — артефакты загружаются с помощью задачи maven_artifact. Но некоторые требования изменились, и теперь мне нужно использовать задачу get_url. После изменения на get_url вся остальная часть сборника игр нарушается, потому что объекты, возвращенные из maven_artifact и get_url, имеют разные типы. Как определить, какой тип с какими полями возвращается из задачи?
С уважением
Ответ №1:
Независимо от того, какой модуль ansible вы используете, есть возможность создавать переменные из выходных данных задачи с помощью register
.
В доступной для анализа документации указано, какие возвращаемые значения доступны вам при этом. Вот, например, возвращаемые значения для get_url
модуля: https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html
В этом случае вы можете сделать что-то вроде следующего, чтобы получить код состояния get_url
модуля:
- name: Download foo.conf
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
mode: '0440'
register: my_result
- name: Print status code of get_url
debug:
var: my_result.status_code
Ответ №2:
Каждый модуль возвращает объект другого типа. В Ansible невозможно определить тип зарегистрированной переменной (т. Е. Какие атрибуты вы можете прочитать из нее), однако модуль всегда будет возвращать объект одного и того же типа.
Возвращаемые значения модуля перечислены в нижней части страницы документации по этим модулям.