我正在使用Ubuntu server 20.04 64位和Ansible 2.8.13构建一个Ansible服务器。ansible将管理一些mysql和postgres服务器等。在不久的将来,ansible可能也会进行版本升级。因此,根据我有限的知识,这就是我目前所掌握的
# Install
sudo apt-get -yqq install python3-pip python3-venv mysql-client postgresql-client libpq-dev
sudo python3 -m venv --clear /opt/ansible
. /opt/ansible/bin/activate
pip3 install wheel setuptools
pip3 install PyMySQL psycopg2 ansible==2.8.13
deactivate
假设为了运行这些可执行文件,必须为每个可执行文件编写包装器脚本,以便传递到主会话中。
/usr/local/bin/ansible-playbook.2.8.sh
#!/usr/bin/env sh
. /opt/ansible/bin/activate
/opt/ansible/bin/ansible-playbook "$@"
result=$?
deactivate
exit "${result}"
最后将主要可执行文件与更新备选进行映射
update-alternatives --install /usr/local/bin/ansible-playbook ansible-playbook
"/usr/local/bin/ansible-playbook-2.8.sh" 1
这在2021年被认为是一种不错的方法吗?还是有更好的方法?
谢谢,
实际上,经过更多的测试和阅读,我得出了以下结论:
# Install
sudo apt-get -yqq install python3-pip python3-venv
sudo python3 -m venv --clear /opt/ansible
. /opt/ansible/bin/activate
pip3 install wheel
pip3 install ansible==2.8.13
deactivate
update-alternatives --install
/usr/local/bin/ansible-playbook ansible-playbook
/opt/ansible/bin/ansible-playbook 1