首页 > 解决方案 > 将 ansible 功能限制为旧版本?

问题描述

在我的工作环境中,我已经升级到了比同事更新的 ansible 版本。偶然地,我一直在使用他们的版本还没有的功能。

有没有办法在我这边阻止这种情况,因为我强迫 ansible 假装它实际上是一个旧版本?

标签: ansibleansible-2.x

解决方案


您可以使用 python 虚拟环境来处理多个 ansible 版本。我使用pyenv来管理 virtualenvs。以下是在 Linux 上使用 bash 的方法:

安装 pyenv:

如果您不想要默认路径,您可以根据自己的喜好更改路径。

git clone https://github.com/pyenv/pyenv.git ${HOME}/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ${HOME}/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ${HOME}/.bashrc
echo 'if command -v pyenv 1>/dev/null 2>&1; then  eval "$(pyenv init -)"; fi' >> ${HOME}/.bashrc

为用户安装 pyenv virtualenv:

git clone https://github.com/pyenv/pyenv-virtualenv.git ${HOME}/.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
export PYENV_VIRTUALENV_DISABLE_PROMPT=1

为当前 shell 初始化 pyenv 环境

eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

在一个 virtualenv 中安装旧版 ansible:

pyenv virtualenv old_env
pyenv activate old_env
pip install ansible==2.4

在其他 virtualenv 中安装更新的 ansible:

pyenv virtualenv new_env
pyenv activate new_env
pip install ansible==2.7

日常使用:

您可以随时在 virtualenvs 之间切换。例如切换到旧的 ansible virtualenv 并检查 ansible 版本,你可以这样做:

pyenv activate old_env
ansible --version

推荐阅读