vyos.vyos.vyos_command 模块 – 在 VyOS 设备上运行一个或多个命令

注意

此模块是 vyos.vyos 集合 (版本 5.0.0) 的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install vyos.vyos

要在 playbook 中使用它,请指定:vyos.vyos.vyos_command

vyos.vyos 1.0.0 中的新增功能

概要

  • command 模块允许在运行 VyOS 的远程设备上运行一个或多个命令。此模块还可以进行内省,以在成功返回之前验证关键参数。如果在等待期间未满足条件语句,则任务失败。

  • VyOS 中的某些 show 命令会产生许多输出行,并使用自定义的分页器,这可能会导致此模块挂起。如果未设置环境变量 ANSIBLE_VYOS_TERMINAL_LENGTH 的值,则使用默认值 10000。

参数

参数

注释

命令

列表 / 元素=任意 / 必需

要在运行 VyOS 的远程设备上执行的命令的有序集合。命令执行的输出将返回到 playbook。如果提供了 wait_for 参数,则该模块不会返回,直到满足条件或超过重试次数。

如果发送到设备的命令需要回答提示,则可以传递包含命令、答案和提示的字典。常见的答案是 “y” 或 “\r” (回车符,必须使用双引号)。请参考下面的示例。

间隔

整数

配置在命令的重试之间等待的秒数。如果命令未通过指定的条件,则间隔表示在再次尝试命令之前等待的时间。

默认值: 1

匹配

字符串

match 参数与 wait_for 参数结合使用,以指定匹配策略。有效值为 allany。如果值设置为 all,则必须满足 wait_for 中的所有条件。如果值设置为 any,则只需满足其中一个值。

选择

  • “any”

  • "all" ←(默认)

重试

整数

指定在被认为失败之前应尝试命令的重试次数。每次重试都会在目标设备上运行命令,并根据 wait_for 条件进行评估。

retries 设置为 0 时,命令将运行一次。

默认值: 9

wait_for

别名:waitfor

列表 / 元素=字符串

指定从命令输出中评估什么以及应用什么条件。此参数将导致任务等待特定条件为真,然后再继续执行。如果条件在配置的 retries 之前不为真,则任务失败。请参见示例。

注意

注意

  • 针对 VyOS 1.1.8 (helium) 进行了测试。

  • 运行 show system boot-messages all 将导致模块挂起,因为 VyOS 使用自定义的分页器设置来显示该命令的输出。

  • 如果发送到设备的命令需要回答提示,则可以传递一个包含 commandanswerprompt 的字典。请参见示例。

  • 此模块与连接 ansible.netcommon.network_cli 一起使用。请参见 VyOS 操作系统平台选项

  • 有关使用 Ansible 管理网络设备的更多信息,请参见 :ref:`Ansible 网络指南 <network_guide>`

示例

- name: show configuration on ethernet devices eth0 and eth1
  vyos.vyos.vyos_command:
    commands:
      - show interfaces ethernet {{ item }}
  with_items:
    - eth0
    - eth1

- name: run multiple commands and check if version output contains specific version
    string
  vyos.vyos.vyos_command:
    commands:
      - show version
      - show hardware cpu
    wait_for:
      - result[0] contains 'VyOS 1.1.7'

- name: run command that requires answering a prompt
  vyos.vyos.vyos_command:
    commands:
      - command: rollback 1
        prompt: Proceed with reboot? [confirm][y]
        answer: y

返回值

常见的返回值记录在 此处,以下是此模块特有的字段

描述

failed_conditions

列表 / 元素=字符串

失败的条件列表

返回:失败

示例: ["...", "..."]

stdout

列表 / 元素=字符串

来自命令的响应集

返回:始终返回,除了低级错误(例如操作插件)

示例: ["...", "..."]

stdout_lines

列表 / 元素=字符串

stdout 的值拆分为列表

返回: 总是

示例: [["...", "..."], ["..."], ["..."]]

警告

列表 / 元素=字符串

基于参数,模块生成的警告列表(如果有)

返回: 总是

示例: ["...", "..."]

作者

  • Nathaniel Case (@Qalthos)