文件名:docker daemon.json位置:/etc/停靠器/守护进程. json内容:
{
"insecure-registries": [
"registry1.com:5001",
"registry2.com"
],
"storage-driver": "overlay2"
}
想把上面的内容做成这样
{
"insecure-registries": [
"registry0.com:5000",
"registry1.com:5001",
"registry2.com"
],
"storage-driver": "overlay2"
}
或
{
"insecure-registries": ["registry0.com:5000",
"registry1.com:5001",
"registry2.com"
],
"storage-driver": "overlay2"
}
尝试sed将[
替换为["registry0.com:5000",
,但没有成功。我们正在使用ansible,不幸的是,迄今为止,他们的模块(如insertafter
lineinfile
)都没有取得成功。无论是ansible方法还是bash方法都可以。感谢帮助。
3条答案
按热度按时间nfeuvbwi1#
编辑JSON文件的最佳实践方法是使用支持JSON的工具,在本例中,
jq
就是这样一个工具,它专门构建为易于在shell中使用。如果手头没有jq,Python也有一个完全兼容的JSON库,从bash使用它非常简单:
xu3bshqb2#
在Ansible中,包含该文件并将字典存储到变量 daemon 中。
给予
将项目添加到列表并 * 合并 * 字典
,或使用参数 list_merge
两个选项给予结果相同
要使任务幂等(仅将项目前置一次),请设置参数
list_merge='prepend_rp'
一般来说,字典中可能会有更多的属性声明了额外的项。例如,
在这种情况下,可以迭代字典
,或使用参数 list_merge
创建模板
并更新文件
给予
完整的测试行动手册示例
dvtswwa33#
你可以试试这个
或
可以通过在指定行之前或之后添加行来实现此目的。