f5networks.f5_modules.bigip_command 模块 – 在 F5 设备上运行 TMSH 和 BASH 命令
注意
此模块是 f5networks.f5_modules 集合(版本 1.32.1)的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install f5networks.f5_modules
。
要在 playbook 中使用它,请指定:f5networks.f5_modules.bigip_command
。
f5networks.f5_modules 1.0.0 中的新增功能
概要
将 TMSH 或 BASH 命令发送到 BIG-IP 节点并返回从设备读取的结果。此模块包含一个参数,该参数将导致模块在返回之前等待特定条件,或者如果未满足条件则超时。
此模块**不是**幂等的,将来也不会是。它旨在作为权宜之计,以满足自动化需求,直到开发出真正满足您需求的模块为止。
如果您正在使用此模块,我们建议您也提交一个问题,以便为您的需求创建一个**真正的**模块。
参数
参数 |
注释 |
---|---|
运行命令之前更改到此目录。 |
|
通过配置的提供程序发送到远程 BIG-IP 设备的命令。返回命令的输出结果。如果提供了wait_for参数,则在满足条件或重试次数过期之前,模块不会返回。 仅支持 |
|
配置以秒为单位的间隔,用于在命令重试之间等待。如果命令未通过指定的条件,则间隔表示在再次尝试命令之前要等待多长时间。 默认值: |
|
match参数与wait_for参数一起使用,用于指定匹配策略。有效值为 选项
|
|
包含连接详细信息的字典对象。 |
|
配置身份验证提供程序,以从远程设备获取身份验证令牌。 此选项在使用 BIG-IQ 设备时非常有用。 |
|
如果为 您可以通过设置环境变量 以前使用的变量 选项
|
|
用于连接到 BIG-IP 的用户帐户的密码。 您可以通过设置环境变量 |
|
BIG-IP 主机。 您可以通过设置环境变量 |
|
BIG-IP 服务器端口。 您可以通过设置环境变量 默认值: |
|
指定用于验证与远程设备连接的 SSH 密钥文件。此参数仅用于cli传输。 可以通过设置环境变量 |
|
当 指定与网络设备通信的超时时间(秒),包括连接和发送命令。如果在操作完成之前超时,模块将报错。 |
|
配置连接到远程设备时使用的传输连接。 选项
|
|
连接到BIG-IP的用户名。此用户必须具有设备上的管理员权限。 可以通过设置环境变量 |
|
如果设置为 可以通过设置环境变量 选项
|
|
指定在命令被认为失败之前应尝试的重试次数。命令在每次重试时都在目标设备上运行,并根据wait_for条件进行评估。 默认值: |
|
指定要从命令输出中评估的内容以及要应用的条件。此参数将导致任务等待特定条件变为 true 后再继续执行。如果在配置的重试次数内条件不为 true,则任务失败。请参阅示例。 |
|
模块是否应引发与命令幂等性相关的警告。 请注意,F5 Ansible 开发人员专门保留此选项,以提醒您,您对该模块的使用可能最好使用官方的 F5 Ansible 模块。此模块应始终作为最后手段使用。 选项
|
备注
注意
在 HA 环境中通过 SSH 连接运行此模块并使用除
admin
或root
以外的角色时,即使您没有进行任何更改,也可能会看到Change Pending
状态。这个问题正在跟踪中,ID 为 429869。使用 bigip_command 模块和 REST API 时,内部使用正则表达式转义引号等字符的地方有很多。如果您的 TMSH 命令本身包含正则表达式字符,例如 datagroup 通配符
*
,则可能需要大量转义字符。发出长时间运行的命令时,必须为提供程序块中的超时选项提供足够大的值。
有关使用 Ansible 管理 F5 网络设备的更多信息,请参见 https://ansible.org.cn/integrations/networks/f5。
需要 BIG-IP 软件版本 >= 12。
要在
transport
设置为cli
时指定timeout
,请使用ANSIBLE_PERSISTENT_COMMAND_TIMEOUT
环境变量,或在 ansible.cfg 文件中指定command_timeout
,请参见 https://docs.ansible.org.cn/ansible/latest/reference_appendices/config.html#persistent-command-timeoutF5 模块仅操作 F5 产品的运行配置。要确保 BIG-IP 特定配置持久保存到磁盘,请务必包含至少一项使用f5networks.f5_modules.bigip_config模块保存运行配置的任务。请参阅模块的文档,了解保存运行配置的正确使用方法。
示例
- name: run show version on remote devices
bigip_command:
commands: show sys version
provider:
server: lb.mydomain.com
password: secret
user: admin
delegate_to: localhost
- name: sleep for 200 seconds
bigip_command:
commands: 'run /util bash -c "sleep 200"'
provider:
server: lb.mydomain.com
password: secret
user: admin
timeout: 210
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
provider:
server: lb.mydomain.com
password: secret
user: admin
register: result
delegate_to: localhost
- name: run multiple commands on remote nodes
bigip_command:
commands:
- show sys version
- list ltm virtual
provider:
server: lb.mydomain.com
password: secret
user: admin
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
provider:
server: lb.mydomain.com
password: secret
user: admin
register: result
delegate_to: localhost
- name: tmsh prefixes will automatically be handled
bigip_command:
commands:
- show sys version
- tmsh list ltm virtual
provider:
server: lb.mydomain.com
password: secret
user: admin
delegate_to: localhost
- name: Delete all LTM nodes in Partition1, assuming no dependencies exist
bigip_command:
commands:
- delete ltm node all
chdir: Partition1
provider:
server: lb.mydomain.com
password: secret
user: admin
delegate_to: localhost
- name: Command that contains wildcard character to be passed to tmsh
bigip_command:
commands:
- modify ltm data-group internal dg_string records add { "my test\\\\\\\*string" { data "value" }}
provider:
server: lb.mydomain.com
password: secret
user: admin
delegate_to: localhost
返回值
常用的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
失败的条件列表。 返回:失败 示例: |
|
命令的响应集。 返回:始终返回 示例: |
|
将标准输出值拆分为列表。 返回:始终返回 示例: |
|
是否引发有关修改命令的警告。 返回:已更改 示例: |