Tower皆様こんにちは、今年も残すところあと1か月となってしまいましたが、いかがお過ごしでしょうか。Hatでテクニカルサポートエンジニアをしている八木澤(ひよこ大佐)です。Engine」を使いたいというケースが出てくるかと思います。Towerの「カスタムvirtualenv(venv)」機能について解説します。virtualenvとは?virtualenvとは、システムと分離された仮想のPython環境を作成できるソフトウェアです。検証のためにPython環境を用意しなければならないようなケースで、システムのデフォルトの環境に影響を与えずに新しいPython環境を作成することができます。Towerでは、デフォルトでvirtualenvの仕組みを利用しており、「/var/lib/awx/venv」というパスの下に、「ansible」「awx」という2つのvirtualenvがはじめから存在します。Towerがジョブを実行する際に利用するPythonパッケージなどがあらかじめインストールされています。Engineをインストールすることができます。これを「カスタムvirtualenv」と呼んでいます。Engineを共存させたり、デフォルトの環境に影響を与えることなく、特定のジョブテンプレートのみ指定したvirtualenv内のパッケージを使用するよう指定できたりします。Towerで利用する必要があるケースでは、既存の環境に影響を与えないため非常に便利です。作成したvirtualenvは単一のディレクトリとして存在するため、手軽にバックアップを取得したり、削除したりすることができます。3.6.1での手順を前提に解説します。Towerドキュメントを参照してください。3.5.0以降でのみ利用可能です。公式ドキュメントに詳細な手順が紹介されていますので、そちらも併せてご確認ください。カスタムvirtualenv用のディレクトリを作成する(オプション)デフォルトのvirtualenvのパス(/var/lib/awx/venv/)直下以外でカスタムvirutalenvを作成する場合、まずカスタムvirtualenv用のディレクトリを作成し、適切なパーミッション(0755)を指定します。デフォルトのvirtualenvのパスに作成する場合は、この手順は不要です。PATHS」にカスタムvirtualenvを作成したディレクトリのパスを追記します。カスタムvirtualenvを作成する以下のコマンドを実行しカスタムvirtualenvを作成します。wheel...done.Python3用のカスタムvenvを作成する場合は、以下のコマンドを実行します。3で手順が異なりますので注意してください。/opt/my-envs/custom-venvカスタムvirtualenvを作成すると、指定したパスに以下のようなディレクトリが生成されます。カスタムvirtualenvを有効化するでは、早速作成したカスタムvirtualenvを有効化してみましょう。「bin」ディレクトリ内のactivateという実行ファイルを指定することでカスタムvirtualenvを有効化できます。/opt/my-envs/custom-venv/bin/activateコマンドを実行すると、プロンプトの左側が「(custom-env)」に変化したことがわかります。これにより、現在virtualenvが有効化されていることがわかります。パッケージをインストールするでは、実際にパッケージをインストールしてみましょう。2.7.15をあらたにインストールします。3.6が依存しているパッケージです。2.7.15"psutilのインストール時にエラーが発生する場合は以下のパッケージがインストールされていない可能性がありますので、インストールしてから再度試してみてください。python-develインストールが完了したら、カスタムvirtualenv内に存在しているパッケージを確認してみましょう。freezeコマンドで、現在virtualenvにインストールされているパッケージの一覧が確認できます。2.7.15がインストールされていることがわかります。virutalenvから抜けるには、deactivateコマンドを実行します。deactivateこれで、カスタムvirtualenvの作成は完了です。カスタムvirtualenvを指定してジョブテンプレートを実行するジョブテンプレートに先程作成したvirtualenvを指定します。2.9.1がシステムワイドにインストールされています。Template」を実行してみましょう。Engineのバージョンが出力されます。2.9.1で実行されています。環境」の設定を「デフォルト環境の使用」から「/opt/my-envs/custom-env/」に変更します。設定を変更したら、再度ジョブテンプレートを実行してみましょう。2.7.15で実行されていることがわかります。Engineのバージョンを共存させたりすることができるようになります。TowerでのAnsible実行環境の管理に悩んでいる方は、ぜひ一度お試しください。Hatのさいとうです。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。