Tek bir işletim sisteminde birkaç Ansible sürümü yükleyebilir ve bunları istediğim zaman değiştirebilir miyim? Şimdilik birkaç yayınımız var, Ubuntu için 1.5.4 deyin, ama en son 2.0.1 ve 1.9.4 hala ortada. Hepsine minnettar olacağım ve sadece benim için uygun olana geçeceğim. Evet ise nasıl?Ansible sürümleri arasında nasıl geçiş yapabilirim?
cevap
Ansible sadece bir python paketidir, bu nedenle, eğer hosteniz üzerinde virtualenv kuruluysa, istediğiniz her bir olası versiyon için yeni bir venv yaratmanız yeterli olur ve pip yükleyin.
Yani, örneğin size yanıtlayıcı 'v1.9.5 istiyorsanız yapabileceği: Yalnızca yanıtlayıcı' ait sürüm paketlerini kullanarak sorun değil mi eğer$ 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
sürümü başına bir Virtualenv güzel çalışıyor. (... ve yeni böcek) yanıtlayıcı 'geliştirme yapmak veya sadece istiyorum hata düzeltmeleri memba kaynak kodunu takip için, .zshrc dosyanızda aşağıdaki kullanabilirsiniz (bash yanı elbette çalışır):
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 ve ANSIBLE_VIRTUALENV değişkenlerini tanımlamanız gerekir. ANSIBLE_SOURCE_DIR, Ansible kaynak kodunun git klonudur ve ANSIBLE_VIRTUALENV, Python2 ve gerekli tüm Bağlantılı bağımlılıklar ile kurduğunuz virtualenv'dir (kaynaktan çalıştırma hakkında daha fazla bilgi için http://docs.ansible.com/ansible/intro_installation.html#running-from-source'u işaretleyin).
Daha sonra, bu gibi herhangi bir yanıtlayıcı 'git dalına geçebilirsiniz:
ansible-switch devel
Veya bir etiket:
ansible-switch v2.3.0.0-1
Böyle bir kaynaktan çalışan kapatabilirsiniz:
ansible-switch off
Bir kicker olarak, Ansible upstream c ile kendi Ansible çatalımı güncellemek için aşağıdaki betiği ('ansible-update' olarak adlandırılır) kullanırım 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
Bu son bit bir çatalı ve resmi yanıtlayıcı 'uzaktan kumanda olarak memba belirledik varsayar.
Sizi engelleyen hatalar olmadıkça en son ile çalışmaya başlamanızı öneririm. – smiller171