bigip_command – Выполнение произвольной команды на устройствах F5
Новая версия с 2.4.
Описание
- Отправляет произвольную команду узлу BIG-IP и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль подождать определённого условия перед возвратом или при выходе по таймауту, если условие не выполнено.
- Этот модуль не является идемпотентным и, скорее всего, им и не будет. Он предназначен как временная мера для удовлетворения требований автоматизации до тех пор, пока не будет разработан настоящий модуль для настройки нужным образом.
- Если вы используете этот модуль, вам, вероятно, также следует создать проблему, чтобы разработать полноценный модуль для ваших нужд.
Требования
Ниже перечислены требования, необходимые на хосте, выполняющем этот модуль.
- f5-sdk >= 3.0.16
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| 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 | По умолчанию: null | Объект словаря, содержащий данные подключения. | |
| password - / обязательно | Пароль для учетной записи пользователя, используемой для подключения к BIG-IP. Вы можете опустить этот параметр, установив переменную окружения F5_PASSWORD. псевдонимы: pass, pwd | ||
| server - / обязательно | Хост BIG-IP. Вы можете опустить этот параметр, установив переменную окружения F5_SERVER. | ||
| server_port - | По умолчанию: 443 | Порт сервера BIG-IP. Вы можете опустить этот параметр, установив переменную окружения F5_SERVER_PORT. | |
| ssh_keyfile - | Указывает файл SSH-ключа для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Вы можете опустить этот параметр, установив переменную окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout - | По умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку. | |
| transport - / обязательно |
| Настраивает транспортное соединение для подключения к удалённому устройству. | |
| user - / обязательно | Имя пользователя для подключения к BIG-IP. Этот пользователь должен иметь административные привилегии на устройстве. Вы можете опустить этот параметр, установив переменную окружения F5_USER. | ||
| validate_certs boolean |
| Если no, сертификаты SSL не проверяются. Используйте только на сайтах, контролируемых вами, которые используют самозаверяющие сертификаты.Вы можете опустить этот параметр, установив переменную окружения F5_VALIDATE_CERTS. | |
| 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 boolean добавлено в 2.0 |
| Если no, сертификаты SSL не проверяются. Используйте только на сайтах, контролируемых вами, которые используют самозаверяющие сертификаты.Вы можете опустить этот параметр, установив переменную окружения F5_VALIDATE_CERTS. | |
| wait_for - | Указывает, что нужно оценивать из вывода команды и какие условия применять. Этот аргумент заставит задачу подождать, пока определённое условие не станет истинным, прежде чем продолжить. Если условие не становится истинным в течение заданного количества попыток, задача завершается с ошибкой. См. примеры. псевдонимы: waitfor | ||
| warn boolean добавлено в 2.6 |
| Выводить ли модулем предупреждения, связанные с идемпотентностью команды. Обратите внимание, что разработчики F5 Ansible специально оставляют это включённым, чтобы предупредить вас о том, что ваш способ использования этого модуля может быть лучше реализован с помощью официальных модулей F5 Ansible. Этот модуль следует использовать в крайнем случае. | |
Примечания
Примечание
- Для получения дополнительной информации об использовании Ansible для управления устройствами F5 Networks см. https://www.ansible.com/integrations/networks/f5.
- Требуется пакет Python f5-sdk на хосте. Это так же просто, как
pip install f5-sdk. - Требуется версия ПО BIG-IP >= 12.
- Модули F5 изменяют только текущую конфигурацию продукта F5. Чтобы убедиться, что специфическая конфигурация BIG-IP сохраняется на диске, обязательно включите по крайней мере одну задачу, использующую модуль bigip_config для сохранения текущей конфигурации. Обратитесь к документации модуля для правильного использования модуля для сохранения текущей конфигурации.
Примеры
- 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]
- Этот модуль поддерживается партнером Ansible. [certified]
Авторы
- 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.7/modules/bigip_command_module.html