- name: exec get config cli_command: command: get config register: result1 ignore_errors: True 帮我改成如果回显带有more,则执行空格,直到出现> 停止,并且将变量存在result1中
时间: 2024-02-07 10:02:04 浏览: 107
好的,这是修改后的代码:
```
- name: exec get config
cli_command:
command: "get config"
check_all: true
patterns:
- "--- more ---"
- ">"
responses:
"--- more ---": " "
register: result1
```
这个任务在执行命令 `get config` 时,会等待命令行输出中出现 `--- more ---` 或 `>` 符号,如果出现 `--- more ---`,则会自动发送空格以继续显示输出,直到出现 `>` 符号为止。当输出中出现 `>` 符号时,它会停止发送空格并将输出存储在变量 `result1` 中。
这里使用了 `check_all` 参数来指示模块等待所有的 `patterns` 中的模式都出现才继续执行。`patterns` 参数是一个列表,其中包含要匹配的字符串模式。`responses` 参数是一个字典,其中包含与每个匹配模式对应的响应。在这个例子中,我们只有一个模式 `--- more ---`,并且它的响应是一个空格。
这个任务可以用于获取网络设备的配置信息,并将其存储在变量中以供后续任务使用。
相关问题
tasks: - name: get config cli_command: command: get config register: result1 ignore_errors: True 回显为--- more --- 则一直执行空格 ,直到回显为> 则返回变量到result1 中,要用cli_commond模块
如果您希望在 Ansible 中使用 `cli_command` 模块来执行命令并获取输出结果,同时在遇到 `--- more ---` 提示时自动执行空格直到回显为 `>` 字符,您可以尝试以下代码:
```
- name: execute get config command on remote host
hosts: myswitch
tasks:
- name: get config
cli_command:
command_string: get config
prompt: "> "
answer: " "
register: result1
ignore_errors: True
```
在这个例子中,我们使用 `cli_command` 模块来执行 `get config` 命令,并使用 `prompt` 选项指定了命令行提示符为 `>` 字符。由于命令的输出可能会包含 `--- more ---` 字符串,我们在 `cli_command` 模块中使用 `ignore_errors: True` 来忽略错误。接下来,我们使用 `answer` 选项指定了答案为一个空格字符,这样当遇到 `--- more ---` 提示时,Ansible 就会自动执行空格字符,直到回显为 `>` 字符。最后,我们将输出结果保存在 `result1` 变量中。
请注意,`cli_command` 模块需要在目标设备上安装支持 CLI 的软件,并且需要指定正确的登录凭据,比如用户名和密码。另外,某些网络设备可能需要使用特定的协议来连接,比如 SSH 或 Telnet。您需要根据实际情况来选择正确的协议。
阅读全文