LoginSignup
8
8

More than 5 years have passed since last update.

Ansible 2.x は connection local にバグがある

Last updated at Posted at 2016-01-21

経緯とかは後で書くとして、こちらがソース

対応策としては ansible_connection = ssh を使って localhost でも ssh 接続にすれば解決する。

経緯

今までセットアップできてたのに突然落ちるように

自分のメインのPCとして Ubuntu をデスクトップに突っ込んでいて、最近 Ansible でセットアップができるようにしようとコツコツと playbook を作っていたのだけど、今日久々に内容を更新して実行したら

fatal: [127.0.0.1]: FAILED! => {"failed": true, "msg": "ERROR! privilege output closed while waiting for password prompt:\nBECOME-SUCCESS-ivlqlqubbijeusfhqiyftxjknfjzqgbm\n{\"invocation\": {\"module_args\": {\"executable\": null, \"name\": \"gulp\", \"global\": true, \"ignore_scripts\": false, \"state\": \"present\", \"production\": false, \"registry\": null, \"version\": null, \"path\": null}}, \"changed\": false}\n"}

なんてエラーが出てきた。

priviledge output closed while waiting for password prompt
とか出てるけど、 --ask-become-pass でパスワードは渡してるから何がなにやら。

ごにょごにょ調べるも中々見つからず

似たような文は当たるけど --ask-sudo-pass の仕方が悪いよ〜みたいなもので、今回とはちょっと違うのしかヒットしない。

多分 Ansible 2.0 に変えたのが原因

今までは平気だったのに突然ダメになるんだから何か原因があるんだろうって考えたらどう考えても Ansible 2.0 にしたのが原因だろうなと気づいたので ansible 2 みたいなキーワードも入れて調べてみたらこんな記事を発見。
ちょうどこのエラーが起きてるところは with_items 使ってるし怪しい -"- と思い見てみると案の定の様子。

An evidence is that the playbook above works finewith localhost ansible_ssh_host=127.0.0.1 setting 
in the inventory instead of localhost ansible_connection=local.

とあったので ansible.cfgansible_connection = local としていた部分を ansible_connection = ssh にしてもう一度実行したらうまく動作してくれた。

まだ issue は開いているけどプルリクはマージされてるみたいだから近々修正されてくれることを期待してる。

そんな感じで

8
8
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
8
8