需求
需要用 grains 来匹配一个 minion 的类型,但是原本的 minion 配置文件中已经有了 grains 这个 ID:
grains:
roles:
- webserver
- memcache
deployment: datacenter4
cabinet: 13
cab_u: 14-15
因此不能单纯地在文件末尾拼接上想要的属性:
grains:
custom: ubuntu
否则就会引起冲突:
我们需要先定位到文件中的 grains:
,接着在下一行添加上文的两行内容,变成这样:
grains:
custom: ubuntu
roles:
- webserver
- memcache
- ubuntu
deployment: datacenter4
cabinet: 13
cab_u: 14-15
解决
使用正则匹配定位到 roles:
(文件中的 roles
有很多个,但 roles:
可以保证只有一个),在它下面一行插入内容:
sed -i '/grains:/a\ custom: ubuntu' minion
查看结果:
修改成功。
网友评论