Ansible。试图从字符串中获取IP地址的第三个八位字节以用作变量
我们一直在尝试获取IP地址的第三个八位字节,方法是将输出放入一个变量,然后将其拆分。不确定是否有更好的方法,但以下是我尝试过但没有成功的方法Ansible。试图从字符串中获取IP地址的第三个八位字节以用作变量,ansible,Ansible,我们一直在尝试获取IP地址的第三个八位字节,方法是将输出放入一个变量,然后将其拆分。不确定是否有更好的方法,但以下是我尝试过但没有成功的方法 --- - name: Gather Information' ios_command: commands: - show run int g0/1.220 | in ip add register: output - msg: var="{{ output.stdout.split(" "
---
- name: Gather Information'
ios_command:
commands:
- show run int g0/1.220 | in ip add
register: output
- msg:
var="{{ output.stdout.split(" ")[3] }}""
the output looks like "IP address 10.10.80.1 255.255.255.224".
我试着把它除以,得到IP,然后再除以,得到第三个八位组。“80”用作其他地方的变量
jmyths有什么问题吗
{{output.stdout.split(" ")[2].split(".")[2]}}
反正你也快到了
--编辑--Oops。错误的语言
{{ output.stdout | regex_replace("^[^0-9]+[0-9]+\.[0-9]+\.([0-9]+)\.[0-9]+ .*$", "\\1") }}
这应该将regex_replace过滤器应用于output.stdout,使用匹配字符串“start then not number后跟nums.nums.(match 1.nums anything)”,并将其替换为匹配组1
对不起。我误解了您使用的脚本语言,当我看到标记时,我快速地重复了一遍。怎么了
{{output.stdout.split(" ")[2].split(".")[2]}}
反正你也快到了
--编辑--Oops。错误的语言
{{ output.stdout | regex_replace("^[^0-9]+[0-9]+\.[0-9]+\.([0-9]+)\.[0-9]+ .*$", "\\1") }}
这应该将regex_replace过滤器应用于output.stdout,使用匹配字符串“start then not number后跟nums.nums.(match 1.nums anything)”,并将其替换为匹配组1
对不起。我误解了您正在使用的脚本语言,当我看到标记时,我快速地重复了一遍。Hi Sam,尝试添加最后一点。。。错误!我们既不能读取JSON,也不能读取YAML,这些都是我们从中得到的错误:JSON:加载YAML时没有JSON对象可以被解码语法错误。找不到预期的“:”错误出现在“/home/ansible/roles/info\u collecting/tasks/main.yml”:第10行第1列,但可能在文件的其他位置,具体取决于语法问题。非常抱歉。你能试试更新后的过滤器@jmyths吗?我误解了你所说的语言。谢谢你,先生。正则表达式字符串成功了。现在尝试将其扩展到脚本的下一部分。嗨,山姆,尝试添加最后一部分。。。错误!我们既不能读取JSON,也不能读取YAML,这些都是我们从中得到的错误:JSON:加载YAML时没有JSON对象可以被解码语法错误。找不到预期的“:”错误出现在“/home/ansible/roles/info\u collecting/tasks/main.yml”:第10行第1列,但可能在文件的其他位置,具体取决于语法问题。非常抱歉。你能试试更新后的过滤器@jmyths吗?我误解了你所说的语言。谢谢你,先生。正则表达式字符串成功了。现在尝试将其扩展到脚本的下一部分。