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” (回车符,必须使用双引号)。请参考下面的示例。 |
|
配置在命令的重试之间等待的秒数。如果命令未通过指定的条件,则间隔表示在再次尝试命令之前等待的时间。 默认值: |
|
match 参数与 wait_for 参数结合使用,以指定匹配策略。有效值为 选择
|
|
指定在被认为失败之前应尝试命令的重试次数。每次重试都会在目标设备上运行命令,并根据 wait_for 条件进行评估。 当 retries 设置为 默认值: |
|
指定从命令输出中评估什么以及应用什么条件。此参数将导致任务等待特定条件为真,然后再继续执行。如果条件在配置的 retries 之前不为真,则任务失败。请参见示例。 |
注意
注意
针对 VyOS 1.1.8 (helium) 进行了测试。
运行
show system boot-messages all
将导致模块挂起,因为 VyOS 使用自定义的分页器设置来显示该命令的输出。如果发送到设备的命令需要回答提示,则可以传递一个包含 command、answer 和 prompt 的字典。请参见示例。
此模块与连接
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
返回值
常见的返回值记录在 此处,以下是此模块特有的字段
键 |
描述 |
---|---|
失败的条件列表 返回:失败 示例: |
|
来自命令的响应集 返回:始终返回,除了低级错误(例如操作插件) 示例: |
|
stdout 的值拆分为列表 返回: 总是 示例: |
|
基于参数,模块生成的警告列表(如果有) 返回: 总是 示例: |