LoginSignup
1
2

More than 5 years have passed since last update.

Check! Ansible の Dynamic Inventory を python で書くときは、shebang を忘れずに!

Last updated at Posted at 2017-08-14

こんにちは、 @dz_ こと大平かづみです。

Prologue - はじめに

構成管理は、 Ansible を好んで使っています。今回は、インベントリを動的に指定したかったため、 Dynamic Inventory を試してみたところ… しばらく下記のエラーにはまってしまいました。対処できたので備忘録を書き留めます。

なお、 Dynamic Inventory については、下記のドキュメントを参考にしました。

Ansible の Dynamic Inventory を python で書くときは、shebang を忘れずに!

エラー内容

遭遇したエラーはこちらです。

ERROR! Attempted to execute "./dynamic-inventory.py" as inventory script: problem running ./dynamic-inventory.py --list ([Errno 8] Exec format error)
Attempted to read "./dynamic-inventory.py" as ini file: ./dynamic-inventory.py:1: Expected key=value host variable assignment, got: 

"スクリプトの実行を試みたけど、エラーがでるね。ついでに ini ファイルとしても読んでみたけどダメねー。" とのこと…

対処

しばらーく試行錯誤したのち、この issue を発見!

That file needs a shebang line.

なるほど、shebang line が必要なんだそう! shebang?

シバンまたはシェバン (shebang) とはUNIXのスクリプトの#!から始まる1行目のこと。

なるほど!!

ということで、Python の Shebang line を参考に、私の動作環境では以下の shebang を書けばよいみたいです。

#!/usr/bin/env python

これを設定すると、すんなり動きました!(・ε・;)

Epilogue - おわりに

shebang は普段あんまり気にしてなかったので、思わぬ落とし穴でした!

1
2
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
1
2