てくなべ (tekunabe)

ansible / network automation / 学習メモ

YAML におけるノルウェー問題(The Norway Problem)

いろいろな書き方ができる真偽値

たとえば Ansible の Playbook では、真偽値を指定する時に、true/falseyes/no などいろいろな書き方ができてしまいます。

去年、Ansible のコミュニティでは、ドキュメント上どう統一するのがいいかの投票がありました。

github.com

現在 true/false への書き換えが進んでいます。yamllint のデフォルトでも true/false を正としています。

不都合

ただ統一感がなくて混乱する、以上の不都合が起こることがあります。

たとえば、ネットワーク機器の操作で対話的に yes というコマンドを実行する場合に

comamnds:
  - yes

のようにしてしまう場合です。文字列として扱ってほしい場合はクォーテーションで囲う必要があります。

The Norway Problem

最近知ったのですが、ノルウェー問題(The Norway Problem)と呼ぶことがあるようです。

hitchdev.com

Norway の 略称 NO をそのまま指定してしまうと False になるという話です。