Kubernetesクラスタを維持するためのプレイブックを作成しています。コロンで構文エラーが発生する可能性があります。
- command: etcdctl mk /kube-centos/network/config '{ "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }'
^here
私が把握することはできません。
- command: etcdctl mk /kube-centos/network/config "{ \"Network\": \"172.30.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }"
実行しようとし、Ansibleは最初のコロンの構文エラーを与える:私はetcdにエントリを追加するために実行する必要があるコマンドがありますこれらの文字をエスケープする方法。このようなコマンドにJSON引数を渡す最善の方法は何ですか?
これを修正するには、2つの方法実際にあります。
回答1
サラウンド単一引用符でコマンド全体:
- command: 'etcdctl mk /kube-centos/network/config "{ \"Network\": \"172.30.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }"'
回答2(優先)は
二重引用符でのサラウンドすべてのコロン:
- command: etcdctl mk /kube-centos/network/config "{ \"Network\"":" \"172.30.0.0/16\", \"SubnetLen\"":" 24, \"Backend\"":" { \"Type\"":" \"vxlan\" } }"
二重引用符で囲んでください。私の答えを見てください。 – helloV