CentOS 8 并不总是预装 Python,因此在安装之前,Ansible 将无法在远程机器上运行。然而,在经典的 Chicken/Egg 中,您不能使用 Ansiblednf
模块来安装 Python。
我一直在使用:
- name: Install Python 3
raw: dnf -y install python3
然而,这个问题是我要么必须设置,changed_when: false
要么它总是返回一个改变的状态。如果可能的话,我希望正确报告状态。
然而,我发现easy_install
这似乎只处理 Python 库,而不是 Python 本身。有没有内置的方法来处理这个或者是raw:
唯一的选择?
是的,该
raw
模块是使用 Ansible 安装 Python 的首选方式。您可能还想为 Ansible 包含一些其他必要的包:easy_install
依赖于 Python。raw
当 Python 不存在时,没有办法。通常我将此raw
任务用作仅执行一次的特殊引导剧本的一部分。在其他角色和角色之外定义此任务的另一个原因是,当目标系统上不存在 Python 时,您不能使用事实收集。