bigip_command - Выполнение произвольной команды на устройствах F5
Новое в версии 2.4.
Обзор
- Отправляет произвольную команду на узел BIG-IP и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль ждать определённого условия перед возвратом или истечением времени ожидания, если условие не выполняется.
- Этот модуль не является идемпотентным и не будет им никогда. Он предназначен в качестве временной меры для удовлетворения требований автоматизации до тех пор, пока не будет разработан реальный модуль для настройки требуемым образом.
- Если вы используете этот модуль, вам, вероятно, также следует подать запрос на создание реального модуля для ваших нужд.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- f5-sdk >= 3.0.9
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| chdir (добавлено в 2.6) | Перейти в эту директорию перед выполнением команды. | ||
| commands обязательно | Команды для отправки на удалённое устройство BIG-IP через настроенного провайдера. Результирующий вывод команды возвращается. Если указан аргумент wait_for, модуль не возвращается, пока условие не будет выполнено или не истечёт количество попыток. Поддерживаются только tmsh команды. Если вы используете перенаправление или добавляете дополнительную логику, которая выходит за рамки tmsh (например, grep, awk или другие оболочечные вещи, которые не являются tmsh), это поведение не поддерживается. | ||
| interval | По умолчанию: 1 | Настраивает интервал в секундах для ожидания между повторными попытками выполнения команды. Если команда не удовлетворяет указанному условию, интервал указывает, как долго ждать, прежде чем попробовать команду снова. | |
| match |
| Аргумент match используется совместно с аргументом wait_for для указания политики соответствия. Допустимые значения — all или any. Если значение установлено на all, все условия в wait_for должны быть выполнены. Если значение установлено на any, должно быть выполнено только одно из значений. | |
| password обязательно | Пароль для учётной записи пользователя, используемой для подключения к BIG-IP. Вы можете опустить этот параметр, если переменная окружения F5_PASSWORD задана.псевдонимы: pass, pwd | ||
| provider (добавлено в 2.5) | Объект словаря, содержащий данные подключения. | ||
| password обязательно | Пароль для учётной записи пользователя, используемой для подключения к BIG-IP. Вы можете опустить этот параметр, если переменная окружения F5_PASSWORD задана.псевдонимы: pass, pwd | ||
| server обязательно | Хост BIG-IP. Вы можете опустить этот параметр, если переменная окружения F5_SERVER задана. | ||
| server_port | По умолчанию: 443 | Порт сервера BIG-IP. Вы можете опустить этот параметр, если переменная окружения F5_SERVER_PORT задана. | |
| user обязательно | Имя пользователя для подключения к BIG-IP. Этот пользователь должен иметь административные привилегии на устройстве. Вы можете опустить этот параметр, если переменная окружения F5_USER задана. | ||
| validate_certs bool |
| Если no, сертификаты SSL не будут проверены. Используйте только на сайтах, контролируемых лично, с самозаверенными сертификатами. Вы можете опустить этот параметр, если переменная окружения F5_VALIDATE_CERTS задана. | |
| timeout | По умолчанию: 10 | Указывает время ожидания в секундах для связи с сетевым устройством для подключения или отправки команд. Если время ожидания истечёт до завершения операции, модуль вернёт ошибку. | |
| ssh_keyfile | Указывает SSH-ключевой файл для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| transport обязательно |
| Настраивает транспортное соединение для подключения к удалённому устройству. | |
| retries | По умолчанию: 10 | Указывает количество попыток выполнения команды, прежде чем она считается неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| server обязательно | Хост BIG-IP. Вы можете опустить этот параметр, если переменная окружения F5_SERVER задана. | ||
| server_port (добавлено в 2.2) | По умолчанию: 443 | Порт сервера BIG-IP. Вы можете опустить этот параметр, если переменная окружения F5_SERVER_PORT задана. | |
| transport обязательно (добавлено в 2.5) |
| Настраивает транспортное соединение для подключения к удалённому устройству. Аргумент transport поддерживает подключение к устройству через cli (ssh) или rest. | |
| user обязательно | Имя пользователя для подключения к BIG-IP. Этот пользователь должен иметь административные привилегии на устройстве. Вы можете опустить этот параметр, если переменная окружения F5_USER задана. | ||
| validate_certs bool (добавлено в 2.0) |
| Если no, сертификаты SSL не будут проверены. Используйте только на сайтах, контролируемых лично, с самозаверенными сертификатами. Вы можете опустить этот параметр, если переменная окружения F5_VALIDATE_CERTS задана. | |
| wait_for | Указывает, что нужно выводить из вывода команды и какие условия применить. Этот аргумент заставит задачу подождать, пока определённое условие не станет истинным, прежде чем продолжить. Если условие не станет истинным к заданному количеству попыток, задача завершится ошибкой. См. примеры. псевдонимы: waitfor | ||
| warn bool (добавлено в 2.6) |
| Указывает, следует ли модулю генерировать предупреждения, связанные с идемпотентностью команд или нет. Обратите внимание, что разработчики Ansible F5 специально оставляют это включённым, чтобы предупредить вас о том, что ваше использование этого модуля может быть лучше обслуживаемо официальными модулями Ansible F5. Этот модуль следует всегда использовать в последнюю очередь. | |
Примечания
Примечание
- Дополнительную информацию об использовании Ansible для управления устройствами F5 Networks см. на странице https://www.ansible.com/integrations/networks/f5.
- Требуется пакет f5-sdk Python на хосте. Это так же просто, как
pip install f5-sdk.
Примеры
- name: run show version on remote devices
bigip_command:
commands: show sys version
server: lb.mydomain.com
password: secret
user: admin
validate_certs: no
delegate_to: localhost
- name: run show version and check to see if output contains BIG-IP
bigip_command:
commands: show sys version
wait_for: result[0] contains BIG-IP
server: lb.mydomain.com
password: secret
user: admin
validate_certs: no
register: result
delegate_to: localhost
- name: run multiple commands on remote nodes
bigip_command:
commands:
- show sys version
- list ltm virtual
server: lb.mydomain.com
password: secret
user: admin
validate_certs: no
delegate_to: localhost
- name: run multiple commands and evaluate the output
bigip_command:
commands:
- show sys version
- list ltm virtual
wait_for:
- result[0] contains BIG-IP
- result[1] contains my-vs
server: lb.mydomain.com
password: secret
user: admin
validate_certs: no
register: result
delegate_to: localhost
- name: tmsh prefixes will automatically be handled
bigip_command:
commands:
- show sys version
- tmsh list ltm virtual
server: lb.mydomain.com
password: secret
user: admin
validate_certs: no
delegate_to: localhost
- name: Delete all LTM nodes in Partition1, assuming no dependencies exist
bigip_command:
commands:
- delete ltm node all
chdir: Partition1
server: lb.mydomain.com
password: secret
user: admin
validate_certs: no
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| failed_conditions список | неудачные | Список условных выражений, которые не были выполнены. Пример: ['...', '...'] |
| stdout список | всегда | Набор ответов от команд. Пример: ['...', '...'] |
| stdout_lines список | всегда | Значение stdout, разбитое на список. Пример: [['...', '...'], ['...'], ['...']] |
| warn логическое значение | изменилось | Указывает, следует ли подавать предупреждения о командах модификации. Пример: True |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет внесено обратных несовместимых изменений в интерфейс.
Техническое обслуживание
Этот модуль помечен как community, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, также поддерживаемых сообществом Ansible, см. здесь.
Автор
- Tim Rupp (@caphrim007)
Подсказка
Если вы обнаружите какие-либо проблемы в данной документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/bigip_command_module.html