这是在Ubuntu 20.04上分发Ansible的正确方式吗



我正在使用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

最新更新