Ansible の複数バージョンを virtualenv で管理する

virtualenv で Ansible 複数バージョンをインストールする方法をご紹介します。

Ansible

前提条件

  • macOS v10.14.6
  • Python 2.7 ではなく Python 3.7.3 を使う
$ python3 --version
Python 3.7.3
$ pip3 --version
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

virtualenv インストール

virtualenv を pip3 でインストールします。

pip3 install virtualenv
pip3 install virtualenvwrapper

.bashrc or .zshrc に以下を追記します。

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
fi
$ source ~/.zshrc
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /Users/shigeoka/.virtualenvs/get_env_details

Ansible 用の virtualenv 環境作成

ansible 最新版のインストール

まず、ansible の最新版をインストールします。

mkvirtualenv ansible
(ansible) $ pip3 install ansible
(ansible) $ ansible --version
ansible 2.8.3
  config file = None
  configured module search path = ['/Users/shigeoka/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/shigeoka/.virtualenvs/ansible/lib/python3.7/site-packages/ansible
  executable location = /Users/shigeoka/.virtualenvs/ansible/bin/ansible
  python version = 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)]

ansible 特定バージョンのインストール

mkvirtualenv ansible2.7.12 
(ansible2.7.12) $ pip3 install ansible==2.7.12
(ansible2.7.12) $ ansible --version   
ansible 2.7.12
  config file = None
  configured module search path = ['/Users/shigeoka/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/shigeoka/.virtualenvs/ansible2.7.12/lib/python3.7/site-packages/ansible
  executable location = /Users/shigeoka/.virtualenvs/ansible2.7.12/bin/ansible
  python version = 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)]

virtualenv 環境を終了する

virtualenv の環境を終了するには deactivate コマンドを実行します。

(ansible2.7.12) $ deactivate

以上、複数バージョンの Ansible を切り替えて使いたい、現場からお送りしました。

参考情報