virtualenvでAnsible実行環境を作る
virtualenvでAnsible実行環境を作る方法です。いつも忘れてしまうのでメモ。
注意点
- このページのコマンドはCentOS7環境での例です。CentOS6や他のディストーションを使っている人は適宜読み替えてください
- 2017/08現在、AnsibleはPython3未対応なのでPython2を使いましょう
virtualenvをインストールする
これはAnsible固有ではなく、普通のvirtualenvインストール方法です。
[vagrant@centos7 ~]$ sudo yum install -y python-devel
[vagrant@centos7 ~]$ sudo yum install -y --enablerepo=epel python2-pip
[vagrant@centos7 ~]$ sudo pip install --upgrade pip
[vagrant@centos7 ~]$ sudo pip install virtualenv
virtualenvで仮想環境を作成する
複数のplaybookをメンテしていて、その全てが最新のAnsibleで動かないって人は、Ansibleバージョン毎に仮想環境を作ると便利だと思います。
virtualenvコマンドの引数が、仮想環境に入った時のプロンプト表示に使われます。
[vagrant@centos7 ~]$ mkdir ~/ansible_venv
[vagrant@centos7 ~]$ cd $_
[vagrant@centos7 ansible_venv]$ virtualenv 2.3.2.0
[vagrant@centos7 ansible_venv]$ source ~/ansible_venv/2.3.2.0/bin/activate
仮想環境にAnsibleをインストールする
バージョン指定でインストールする場合は以下のように、pip install ansible==2.3.2.0
とします。
最新バージョンで良い場合は、pip install ansible
でもOKです。
(2.3.2.0) [vagrant@centos7 ansible_venv]$ pip install ansible==2.3.2.0
(2.3.2.0) [vagrant@centos7 ansible_venv]$ which ansible
~/ansible_venv/2.3.2.0/bin/ansible
(2.3.2.0) [vagrant@centos7 ansible_venv]$ ansible --version
ansible 2.3.2.0
config file =
configured module search path = Default w/o overrides
python version = 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
以上で仮想環境に隔離されたAnsible実行環境が出来ました。
仮想環境から抜ける方法と入る方法は以下です。
仮想環境から抜ける
(2.3.2.0) [vagrant@centos7 ~]$ deactivate
仮想環境に入る
サーバにログインする度に仮想環境に入る必要があります。
virtualenvwrapper
ってやつを使えばちょっと便利になるっぽいですが、僕は使ってません。
[vagrant@centos7 ~]$ source ~/ansible_venv/2.3.2.0/bin/activate