web-dev-qa-db-ja.com

仮想環境の作成

Ansibleを使用して特定のpythonバージョンのvirtualenvを作成するにはどうすればよいですか。ansible標準ライブラリにコマンドはありますか?

私は次のようなものが欲しいです:

- virtualenv: dest=venv python_version:/usr/bin/python3
51
user204088

virtualenv_commandを指定すると、ときどき不規則な動作が発生します(例:virtualenv-3.4を指定してコマンドを実行するよう指定したにもかかわらず、virtualenvでpython 2.7実行可能ファイルを取得します。

その問題が発生した場合、cancommandモジュールを使用してvirtualenvを手動で作成できます。

- name: Manually create the initial virtualenv
  command: virtualenv /user/home/venvs/myenv -p python3.4 creates="/user/home/venvs/myenv"

(注:createsを指定すると、このコマンドはvirtualenvが/user/home/venvs/myenvに存在しない場合にのみ実行されます)。

次に、pipコマンドを使用して、通常どおり要件をインストールできます。

- name: Install requirements
  pip: 
    requirements=/my_app/requirements.txt 
    virtualenv=/user/home/venvs/myenv

更新

virtualenv_python(Ansible 2.0+で利用可能)を指定することも、上記の場合に機能するようだとわかりました。例えば:

- name: Install requirements
  pip: 
    requirements: /my_app/requirements.txt
    virtualenv: /user/home/venvs/myenv
    virtualenv_python: python3.4

(これにより、最初に手動でvirtualenvを作成する必要はありません)

63
toast38coza

pip モジュールと特定のvirtualenvバイナリでそれを行うことができます:

- pip: virtualenv=/path/to/venv virtualenv_command=/path/to/virtualenv3 ...
14
Schnouki

Ansible 2.0では、virtualenv_pythonを使用してvirtualenvのpythonバージョンを指定できます

例えば:

- name: Initiate virtualenv
  pip: virtualenv="{{ virtualenv_dir }}" 
       virtualenv_python=python3.4
       requirements={{ app_dir }}/requirements.txt
8
Tristan