インタープリターの検出¶
POSIX 環境で実行する Ansible モジュールではほぼ、 ターゲットホストに Python インタープリターが必要です。特に設定されていない限り、 Ansible は、Python モジュールがそのホストに対して初めて実行されるときに、 各ターゲットホストで適切な Python インタープリターの検出を試行します。
検出動作を制御するには、以下を実行します。
- 個別のホストおよびグループの場合は、
ansible_python_interpreter
インベントリー変数を使用します。 - グローバルには、
ansible.cfg
の[defaults]
セクションにinterpreter_python
キーを使用します。
以下のいずれかの値を使用します。
- auto_legacy: (デフォルトは 2.8)
- 対象の OS プラットフォーム、ディストリビューション、およびバージョンを検出してから、
各プラットフォーム、ディストリビューション、バージョンに対する、
正しい Python インタープリターおよびパスを記載する表を確認してください、エントリーが検出され、
/usr/bin/python
がない場合は、検出されたインタープリター (およびパス) を使用します。エントリーが見つかり、/usr/bin/python
が存在する場合は、/usr/bin/python
を使用して、 警告を発行します。 このような例外により、 常に/usr/bin/python
がデフォルト設定されている Ansible の以前のバージョンと一時的に互換性を確保するため、 一部のホストの/usr/bin/python
に Python と他の依存関係をインストールした場合には、 Ansible はこの設定を使用して Python と他の依存関係を検索して使用します。 エントリーが見つからなかった場合や、リストされた Python がターゲットホストにない場合には、 一般的な Python インタープリターパスのリストを検索し、最初に検出したインタープリターを使用します。 また、今後別の Python インタープリターをインストールすると、 選択したパスが変更される可能性があるという警告が表示されます。 - auto: (2.12 では将来のデフォルト)
- 対象の OS プラットフォーム、ディストリビューション、およびバージョンを検出してから、 各プラットフォーム、ディストリビューション、バージョンに対する、 正しい Python インタープリターおよびパスを記載する表を確認してください、エントリーが見つかった場合には、 検出されたインタープリターを使用します。 エントリーが見つからなかった場合や、リストされた Python がターゲットホストにない場合には、 一般的な Python インタープリターのパスのリストを検索し、最初に検出したインタープリターを使用します。 また、今後別の Python インタープリターをインストールすると、 選択したパスが変更される可能性があるという警告が表示されます。
- auto_legacy_silent
auto_legacy
と同じですが、警告は表示しません。- auto_silent
auto
と同じですが、警告は表示しません。
ansible_python_interpreter
を、
変数レベルで特定のパスに設定できます (例: host_vars 内、vars ファイル内、Playbook 内)。
特定のパスを設定すると、自動インタープリターの検出が完全に無効化され、Ansible は常に指定されたパスを使用します。