我是在Ubuntu 16.046 Server上使用Oxidized的新手。我正在尝试将Oxidized设置为我的Cisco交换机的配置管理。
配置:
username: muhsin
password: muhsin
model: cisco
interval: 3600
use_syslog: false
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888
vars:
enable: muhsin
groups: {}
pid: /home/oxidized/.config/oxidized/pid
input:
default: ssh, telnet
debug: false
ssh:
secure: false
output:
default: file
file:
directory: /home/oxidized/configs
source:
default: csv
csv:
file: /home/oxidized/.config/oxidized/router.db
delimiter: !ruby/regexp /:/
map:
name: 0
model: 1
username: 2
password: 3
vars_map:
enable: 4
remove_secret: true
model_map:
cisco: ios
router.db:
192.168.223.10:cisco:muhsin:muhsin:muhsin
当我被氧化时,出现以下错误:
错误加载配置:():在解析第27行第4列的块映射时找不到预期的键。
我在做什么错?
答案 0 :(得分:0)
您在做错的事情是使用不一致的缩进,这使得特别是作为使用YAML的新手很难检测出问题所在。
vars
的值为四个的映射。 input
的值为五个的值。 output
的值。map
的值为三个位置。现在全部允许,但是使您的文件对人类的可读性降低。但是不允许的是,与source
对应的值的映射部分具有三个位置(键default
,csv
和map
),并部分地具有四个位置(vars_map
,remove_secret
)。
请注意,这里的YAML解析器不会抛出错误(尽管应该),并且解析vars_map
和remove_secret
的缩进程度与{{1} }。
您将第27行作为错误指示是解析器无法正确解析到末尾,映射从该行开始(即以键值对password
开头的映射。
default: csv
程序可能更加用户友好,例如如果您使用我的Oxidized
解析器(适用于Python),则会收到一条错误消息,该错误消息可以更准确,更有用的方式指出该错误,因此这不是YAML问题,但是Oxidized并不友好:>
ruamel.yaml
(这里的第一行表示为26,这是典型的从零开始计数与以1的差开始计数)。