LoginSignup
3
4

More than 5 years have passed since last update.

Ansible2.0.0.2で'NoneType' object has no attribute 'send_callback'で--list-tasksが止まったので修正した

Last updated at Posted at 2016-01-22

2系が出たし、そろそろAnsibleを触ってみるかとチュートリアルをやっていたら、'NoneType' object has no attribute 'send_callback'という例外で止まったので、ちょっとだけ調べてみました。

ちなみに試しているチュートリアルはこちらです。
(http://yteraoka.github.io/ansible-tutorial/)

引っかかったのは、6.Best Practicesに沿った構成を真似るのタスク一覧の確認の部分。

$ ansible --version
ansible 2.0.0.2
  config file = /home/vagrant/ansible/ansible.cfg
  configured module search path = Default w/o overrides

$ ansible-playbook --list-tasks -i test_servers site.yml
Unexpected Exception: 'NoneType' object has no attribute 'send_callback'
to see the full traceback, use -vvv

# -vvvオプションで例外の詳細を出してみる
$ ansible-playbook --list-tasks -i test_servers site.yml -vvv
2 plays in site.yml
Unexpected Exception: 'NoneType' object has no attribute 'send_callback'
the full traceback was:

Traceback (most recent call last):
  File "/home/vagrant/.pyenv/versions/ansible2/bin/ansible-playbook", line 85, in <module>
    sys.exit(cli.run())
  File "/home/vagrant/.pyenv/versions/2.7.10/envs/ansible2/lib/python2.7/site-packages/ansible/cli/playbook.py", line 150, in run
    results = pbex.run()
  File "/home/vagrant/.pyenv/versions/2.7.10/envs/ansible2/lib/python2.7/site-packages/ansible/executor/playbook_executor.py", line 115, in run
    self._tqm.send_callback('v2_playbook_on_vars_prompt', vname, private, prompt, encrypt, confirm, salt_size, salt, default)
AttributeError: 'NoneType' object has no attribute 'send_callback'

playbook_executor.pyの115行目で落ちているらしいです。
ググるとすぐにissuesが見つかりました。
https://github.com/ansible/ansible/issues/12682

どうやら、checkか--list-系のオプションをつけると落ちるらしいです。

修正は、こちらを参考に行いました。
https://github.com/ansible/ansible/commit/76feba00c4724e930c8c6fc7eba7e4a29c86cc3c

修正後、実行するとタスク一覧が無事表示されました。
(でも、なんかチュートリアルのサイトの表示とは大きく違うような・・・。2系だからか、gitからファイル取ってこずに手書きしたから、間違ったか・・・)

$ ansible-playbook --list-tasks -i test_servers site.yml -vvv
Using /home/vagrant/ansible/ansible.cfg as config file
2 plays in site.yml

playbook: site.yml

  play #1 (all):    TAGS: []
    tasks:
      include   TAGS: []
      include   TAGS: []
      include   TAGS: []
      include   TAGS: []

  play #2 (wordpress):  TAGS: []
    tasks:

メジャーアップデート後は、こういった不具合も出るもんなんですね。
stable-2.0ブランチには取り込まれているので、すぐに修正版が出そうな気はしますが、投稿したことなかったんで、作業メモ的な感じで投稿してみました。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4