2016-04-06 2 views
3

複数のAniableバージョンを1つのOSにインストールして自由に切り替えることができますか? 今のところ、Ubuntuでは1.5.4といったいくつかのリリースがありますが、最新は2.0.1であり、1.9.4はまだまだです。私はそれらのすべてをインストールしていただければ幸いです。 はいの場合、どうですか?どうすればAnsibleバージョンを切り替えることができますか?

+0

あなたをブロックしているバグがない限り、最新のものを使用することを強くお勧めします。 – smiller171

答えて

9

Anonymousは単なるpythonパッケージなので、ホストにvirtualenvがインストールされている場合は、必要なバージョンごとに新しいvenvを作成してpipインストールしてください。だから、

たとえば、あなたが行うことができansible v1.9.5をしたい場合:あなただけAnsibleのバージョン管理パッケージを使用して大丈夫なら、バージョンごとにvirtualenvのはうまく動作

$ virtualenv ~/venvs/ansible_1_9_5 
$ source ~/venvs/ansible_1_9_5/bin/activate 
$ pip install "ansible==1.9.5" 
$ ansible --version 
     ansible 1.9.5 
     configured module search path = None 
0

。 (...と新しいバグ)Ansibleの開発を行うか、あなただけしたいバグ修正のための上流のソースコードを追跡するために、あなたはあなたの.zshrcに以下のように使用することができます(bashはもちろん、同様に動作します):

function ansible-switch { 
    if [ "$1" != "off" ]; then 
    VIRTUAL_ENV_DISABLE_PROMPT=1 source $ANSIBLE_VIRTUALENV/bin/activate 
    git -C "$ANSIBLE_SOURCE_DIR" checkout -q $1 
    source $ANSIBLE_SOURCE_DIR/hacking/env-setup -q 
    echo "Environment configured to run Ansible from source (branch: $1)" 
    else 
    if [[ -v ANSIBLE_HOME ]]; then 
     export PYTHONPATH=$(echo $PYTHONPATH | sed "[email protected]$ANSIBLE_HOME/lib:@@") 
     export PATH=$(echo $PATH | sed "[email protected]$ANSIBLE_HOME/bin:@@") 
     export MANPATH=$(echo $MANPATH | sed "[email protected]$ANSIBLE_HOME/docs/man:@@") 
     unset ANSIBLE_HOME 
     deactivate 
    fi 
    echo "Environment configured to not run Ansible from source" 
    fi 
} 

if ! [[ -v ANSIBLE_HOME ]]; then 
    ansible-switch devel > /dev/null 
fi 

ANSIBLE_SOURCE_DIR変数とANSIBLE_VIRTUALENV変数を定義する必要があります。 ANSIBLE_SOURCE_DIRはAnsibleソースコードのgitクローンで、ANSIBLE_VIRTUALENVはPython2で設定したvirtualenvと必要なAnabilities依存関係です(ソースからの実行に関する詳細はhttp://docs.ansible.com/ansible/intro_installation.html#running-from-sourceをチェックしてください)。

あなたは、このように任意のAnsibleのgitのブランチに切り替えることができます:あなたはこのようなソースから実行されているオフにすることができます

ansible-switch v2.3.0.0-1 

ansible-switch devel 

またはタグ

ansible-switch off 

キッカーとして、私は次のスクリプト(「ansible-update」と呼ばれます)を使用して、自分自身のAnsibleフォークをAnvious上流c ommits:

cd "$ANSIBLE_SOURCE_DIR" 
current_branch_tag=$(git symbolic-ref --short HEAD 2>/dev/null) 
if [ $? -ne 0 ]; then 
    current_branch=$(git describe --tags) 
fi 
git checkout devel -q 
git fetch upstream -q 
git rebase upstream/devel -q 
git checkout $current_branch -q 

この最後のビットは、あなたはフォークを持っており、公式のAnsibleのリモートとして上流設定している前提としています。

関連する問題