gpt4 book ai didi

python - 在 RedHat/CentOS 7 上使用 Python3 实现 Ansible(python3-dnf 问题)

转载 作者:行者123 更新时间:2023-12-05 00:56:15 25 4
gpt4 key购买 nike

我想用 python3 作为解释器来运行 Ansible 任务(为什么要使用 python3 有很多原因......其中之一是 Ansible 将不再支持 python2)。

不幸的是,在 RedHat 7 上这样做是不可能的,因为我无法在那里安装 python3-dnf(似乎这个包仅适用于 RedHat 8)。

有没有人遇到过这个问题并为此找到了解决方案?

谢谢

最佳答案

不幸的是,当您构建应可用于 RedHat/Debian/CentOS/... 的角色并且您使用仅在 Python3 中可用的自定义库(因为我们有 2021 年和 Python2 EoL 是 2020 年)时,Adam 的回答没有帮助)。因此,由于 CentOS7 中缺少 Python3 对 yum 的支持,您会遇到依赖 hell 问题。

所有主机(无论操作系统)都应使用 Python3 作为 ansible_python_interpreter

所有任务都应使用 Python3 运行(在 Controller 或主机上)。有一个问题(从我今天的观点来看) - 任务 package。即使它独立于操作系统,它也需要 CentOS7 上的 Python2(在所有其他操作系统上,Python3 没有问题)。

我所做的——只针对这个模块——当你的主机在 CentOS7 上时切换到 Python2。例如:

- name: "Define Python Interpreter"
set_fact:
my_interpreter: "{{ ansible_python_interpreter }}"

- name: "Override Python Interpeter for CentOS7"
set_fact:
my_interpreter: "/usr/bin/python"
when:
- "ansible_distribution == 'CentOS'"
- "ansible_distribution_major_version | int == 7"

- name: "Install dependencies"
package:
name: "...."
become: true
vars:
ansible_python_interpreter: "{{ my_interpreter }}"

在所有其他情况下,请使用您配置的特定于主机的 Python 解释器。

关于python - 在 RedHat/CentOS 7 上使用 Python3 实现 Ansible(python3-dnf 问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62634946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com