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-timeout
- F5 模块仅操作 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
返回值
常用的返回值已在此处记录,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 失败的条件列表。 返回:失败 示例:  | |
| 命令的响应集。 返回:始终返回 示例:  | |
| 将标准输出值拆分为列表。 返回:始终返回 示例:  | |
| 是否引发有关修改命令的警告。 返回:已更改 示例:  | 
