Ansible 1.X和Ansible 2.X的共存
使用Ansible 2.0时发生错误。。
使用brew安装的ansible版本为2.0,导致之前创建的playbook出现错误。由于1.X系列和2.X系列有一些变化,因此需要使用两个环境。
删除现有的ansible。
删除使用brew安装的ansible2.0。
$ brew uninstall ansible --force
安装pyenv-virtualenv
-
- pyenv
-
- 複数バージョンのPythonをインストールして切り替えられる
-
- pyenv-virtualenv
- 同じバージョンのPythonで複数環境を切り替えできるpyenvのプラグイン
$ brew install pyenv-virtualenv
$ pyenv versions
* system (set by /Users/hoge/.pyenv/version)
只安装pyenv不会显示持续环境,只会显示系统环境。
环境开始构建
使用pyenv创建Python2.7.10环境。
$ pyenv install 2.7.10
$ pyenv versions
* system (set by /Users/hoge/.pyenv/version)
2.7.10
在virtualenv中,基于Python2.7.10创建ansible2环境。
$ pyenv virtualenv 2.7.10 ansible2
$ pyenv versions
* system (set by /Users/hoge/.pyenv/version)
2.7.10
2.7.10/envs/ansible2
ansible2
- グローバルPythonをansible2に切り替える
$ pyenv global ansible2
$ pyenv versions
system
2.7.10
2.7.10/envs/ansible2
* ansible2 (set by /Users/hoge/.pyenv/version)
$ python --version
Python 2.7.10
- pipコマンドのためにパスを通す
$ echo eval "$(pyenv init -)" >> ~/.zshrc
$ source ~/.zshrc
- ansible2.Xインストール
$ pip install ansible
$ ansible --version
创建与ansible1.X环境相同的方式
$ pyenv virtualenv 2.7.10 ansible1
$ pyenv versions
system
2.7.10
2.7.10/envs/ansible1
2.7.10/envs/ansible2
ansible1
* ansible2 (set by /Users/hoge/.pyenv/version)
$ pyenv global ansible1
$ pyenv versions
system
2.7.10
2.7.10/envs/ansible1
2.7.10/envs/ansible2
* ansible1 (set by /Users/hoge/.pyenv/version)
ansible2
$ pip install ansible==1.9.4
$ ansible --version
ansible 1.9.4
configured module search path = None
$ python --version
Python 2.7.10
切换Ansible环境
$ pyenv global ansible1
$ pyenv global ansible2