Kolla-ansible precheckで発生するエラーの対処

「OpenStack Kolla(Ocata)環境の構築」を参考にOpenStack Kollaのセットアップを行っていたら、エラーが出ました。


1 min read
Kolla-ansible precheckで発生するエラーの対処

OpenStack Kolla(Ocata)環境の構築を参考にOpenStack Kollaのセットアップを行っていたら、以下の様なエラーが出ました。

TASK [rabbitmq : fail] **************************************************************************************************************************
 [WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: '{{ hostvars[item['item']]['ansible_'
+ hostvars[item['item']]['api_interface']]['ipv4']['address'] }}' not in '{{ item.stdout }}'

fatal: [localhost]: FAILED! => {"failed": true, "msg": "The conditional check ''{{ hostvars[item['item']]['ansible_' + hostvars[item['item']]['api_interface']]['ipv4']['address'] }}' not in '{{ item.stdout }}'' failed. The error was: Invalid conditional detected: EOL while scanning string literal (<unknown>, line 1)\n\nThe error appears to have been in '/usr/share/kolla-ansible/ansible/roles/rabbitmq/tasks/precheck.yml': line 54, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- fail: msg=\"Hostname has to resolve to IP address of api_interface\"\n  ^ here\n"}

ansible/ansibleのissue #22397を見ると、Ansible 2.3からwhen文ではJinja2のテンプレートデリミタを使用するのが非推奨となったようです。

対症療法ですが、pip install ansible==2.2として少し古いバージョンのansibleをインストールすればエラーは出なくなります。


Functional Option Pattern
Previous article

Functional Option Pattern

Fuctional Option PatternはGo言語において構造体の初期化時にオプション引数を与えるためのデザインパターンで、元ネタはRob Pike氏のSelf-referential functions and the design of options、Dave Cheney氏のFunctional options for frendly APISです。 Go言語には他の言語でオプション引数やキーワード引数と呼ばれる、省略可能な引数が存在しません。 通常は大きな問題は無いのですが、しかし、構造体の初期化時には、省略可能引数がほしくなる場合もあります。 Dave Cheney氏の記事にもある例を見てみましょう。

Kolla-AnsibleでOpenStack Ocata環境を構築する
Next article

Kolla-AnsibleでOpenStack Ocata環境を構築する

OpenStack Kollaを用いると、比較的簡単にOpenStack on Docker環境を構築することができます。 今回はKolla-Ansibleを使用してall-in-one構成で4.0.0(Ocata)環境を構築してみます。


GO TOP

🎉 You've successfully subscribed to something tech.!
OK