複数の Ansible を使いたい理由
本番環境のプロビジョニングやら開発環境構築で Ansible を使っている人は多いと思う。Ansible はバージョンがどんどん新しくなっていくので、複数のプロジェクトをやっていると、プロジェクト毎に必要とされる Ansible のバージョンが異なって困る、という事が良くある。
VM を使って、隔離された環境を使えば?という意見もあるけど、開発環境構築では、
- ローカルマシンの Ansible を使用して
- (Vagrant 等で構築した)VM 上の環境を構築
というケースが結構あるので、Ansible のバージョン毎に異なる VM を使うというのはちょっとやりづらい。
実現方法の案
大抵のプログラム言語では、複数のバージョンを使い分ける仕組みが整っているけど、Ansible にはそういうのが無いようなので、ある程度自分でやる必要がある。
Ansible のインストール方法のページを見ると、色んな方法が用意されている。
複数バージョンを使い分ける方法としては、以下が考えられそう。
- 複数バージョンのソースを持ってきて、ソースから実行する(Running From Source)
- pyenv 等で複数の Python 環境を用意して、 pip でバージョン指定で Ansible をインストールする
今回は、前者の方法でやった。その途中で後者の方法も思いついたけど、実際に試してはいない。pip でのインストールは、ドキュメントでは Latest Releases Via Pip という見出しだけど、バージョン指定も出来るはず。