首页 > 解决方案 > 这是在 Ubuntu 20.04 上分发 Ansible 的正确方法吗?

问题描述

我正在使用 Ubuntu Server 20.04 64bit 和 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

鉴于为了运行这些可执行文件,必须为每个 ansible 可执行文件编写包装脚本以传递到主会话。

/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 映射主可执行文件

update-alternatives --install /usr/local/bin/ansible-playbook ansible-playbook \
  "/usr/local/bin/ansible-playbook-2.8.sh" 1

这在 2021 年被认为是体面的方法还是有更好的方法?

谢谢,

标签: ubuntuinstallationansible

解决方案


实际上,经过更多的测试和阅读,这就是我想出的:

# 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


推荐阅读