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
。
要在剧本中使用它,请指定:f5networks.f5_modules.bigip_command
。
f5networks.f5_modules 1.0.0 中的新功能
概要
向 BIG-IP 节点发送 TMSH 或 BASH 命令,并返回从设备读取的结果。此模块包含一个参数,该参数将使模块等待特定条件,然后再返回;如果未满足条件,则会超时。
此模块是非幂等的,并且永远不会是幂等的。它旨在作为一种权宜之计,以满足自动化要求,直到开发出真正的模块来按照您需要的方式进行配置为止。
如果您正在使用此模块,我们建议您同时提交一个问题,以创建一个满足您需求的真正模块。
参数
参数 |
注释 |
---|---|
在运行命令之前更改到此目录。 |
|
通过配置的提供程序发送到远程 BIG-IP 设备的命令。返回命令的输出结果。如果提供了 wait_for 参数,则在满足条件或重试次数过期之前,模块不会返回。 仅支持 |
|
配置命令重试之间等待的间隔(以秒为单位)。如果命令未通过指定的条件,则间隔指示在再次尝试该命令之前要等待多长时间。 默认值: |
|
match 参数与 wait_for 参数结合使用,以指定匹配策略。有效值为 选项
|
|
包含连接详细信息的字典对象。 |
|
配置身份验证提供程序,以便从远程设备获取身份验证令牌。 此选项在处理 BIG-IQ 设备时真正使用。 |
|
如果为 您可以通过设置环境变量 以前使用的变量 选项
|
|
用于连接到 BIG-IP 的用户帐户的密码。 您可以通过设置环境变量 |
|
BIG-IP 主机。 您可以通过设置环境变量 |
|
BIG-IP 服务器端口。 您可以通过设置环境变量 默认值: |
|
指定用于验证与远程设备连接的 SSH 密钥文件。此参数仅用于 cli 传输。 您可以通过设置环境变量 |
|
当 指定与网络设备通信的超时时间(以秒为单位),用于连接或发送命令。如果在操作完成之前超时,则模块将出错。 |
|
配置连接到远程设备时要使用的传输连接。 选项
|
|
用于连接到 BIG-IP 的用户名。此用户必须具有设备上的管理权限。 您可以通过设置环境变量 |
|
如果为 您可以通过设置环境变量 选项
|
|
指定在被视为失败之前应尝试命令的次数。每次重试时,都会在目标设备上运行该命令,并根据 wait_for 条件进行评估。 默认值: |
|
指定从命令输出中评估的内容以及要应用的条件。此参数将导致任务等待特定的条件为真,然后才继续执行。如果在配置的重试次数内条件不为真,则任务将失败。请参阅示例。 |
|
模块是否应引发与命令幂等性相关的警告。 请注意,F5 Ansible 开发人员专门保留此选项,以使您意识到使用此模块可能不如使用官方 F5 Ansible 模块。此模块应始终作为最后的手段使用。 选项
|
注意
注意
通过 SSH 连接在 HA 环境中运行此模块并使用除
admin
或root
以外的角色时,即使您未进行任何更改,也可能会看到Change Pending
状态。此问题正在使用 ID429869 进行跟踪。将 bigip_command 模块与 REST API 结合使用时,内部会使用多个正则表达式来转义引号等字符。如果您的 TMSH 命令本身包含正则表达式字符,例如数据组通配符
*
,则可能需要大量的转义字符。发出长时间运行的命令时,必须为 provider 块中的 timeout 选项提供足够大的值。
有关使用 Ansible 管理 F5 Networks 设备的更多信息,请参阅 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
返回值
常见的返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
失败的条件列表。 返回: 失败 示例: |
|
来自命令的响应集。 返回: 总是 示例: |
|
stdout 的值拆分为列表。 返回: 总是 示例: |
|
是否引发有关修改命令的警告。 返回: 已更改 示例: |