[Ansible] Installieren Sie dnf unter Centos7 mit dem Python3-Interpreter

[Ansible] Installieren Sie dnf unter Centos7 mit dem Python3-Interpreter

Was ist dnf

offizielle Fedora-Seite

Einfach ausgedrückt ist dnf der Nachfolger von yum und ab CentOS 8 wird standardmäßig dnf anstelle von yum verwendet. Sie können den Befehl yum in CentOS8 verwenden, aber es ist nur eine symbolische Verknüpfung zu dnf.

Warum dnf anstelle von yum verwenden?

Die Unterstützung für Python 2.X endete am 1. Januar 2020.

--yum funktioniert nur mit python2.X --dnf funktioniert mit Python 2.x oder 3.X.

Von nun an wird "dnf" zum Mainstream.

(Zuerst) Versuchen Sie, CentOS 7 manuell zu installieren

Installieren Sie dnf im CentOS 7.X Docker-Container.

[dnfuser@localhost ~]$ docker run -it --rm centos:7 bash

[root@3b4a088d7e6f /]# yum update -y
[root@3b4a088d7e6f /]# yum install -y epel-release
[root@3b4a088d7e6f /]# yum install -y dnf

[root@3b4a088d7e6f /]# head -n1 /usr/bin/dnf
#!/usr/bin/python2

Anscheinend läuft "dnf" von CentOS 7.X auf Python 2.X. Ich habe es nach der Installation von python3.X versucht, aber dnf wird zu 2.X.

Installieren Sie dnf mit Ansible

https://docs.ansible.com/ansible/latest/modules/dnf_module.html

Wenn der Interpreter Python 2.X ist, können Sie ihn einfach installieren.

playbook.yml


- name: Install epel-release
  yum:
    name: epel-release
    state: present
  become: yes

- name: Install dnf
  yum:
    name: dnf
    state: present
  become: yes
  1. Installieren Sie dnf mit yum module
  2. Nachfolgende Aufgaben können verwendet werden, indem das yum-Modul in das dnf-Modul geändert wird.

(Hauptthema) Wenn der Interpreter von Ansible python3.X ist

ansible.cfg


[default]
ansible_python_interpreter=/usr/bin/python3

Wie oben erwähnt, müssen Sie den Python 3.X-Interpreter standardmäßig auf 2.X zurücksetzen, wenn Sie ihn standardmäßig verwenden.

playbook.yml


- name: Install dnf for Centos7
  block:
    - name: Change interpreter
      set_fact:
        ansible_python_interpreter: "/usr/bin/python"

    - name: Install epel-release
      yum:
        name: epel-release
        state: present
      become: yes

    - name: Install dnf
      yum:
        name: dnf
        state: present
      become: yes
  when:
    - ansible_distribution_major_version | float < 8

Der Interpreter ist auch für nachfolgende Aufgaben 2.X.

Schließlich (Best Practice für Ansible Interpreter)

Ansible 2.12 ver. Scheint das Verhalten des Standardinterpreten zu ändern. (Vielleicht ist Python 3.X die bevorzugte Wahl)

Referenz) https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html https://rheb.hatenablog.com/entry/ansible_interpreter_discovery

In der aktuellen Version (2.9) ist standardmäßig / usr / bin / python angegeben, sodass die verwendete Python-Version je nach Betriebssystem unterschiedlich sein kann. Die beste Vorgehensweise für diejenigen, die nicht auf Version 2.12 warten können und den Befehl dnf verwenden möchten, lautet wie folgt.

Geben Sie auf und verwenden Sie den Standardinterpreter (Python 2.X)

  1. Verwenden Sie für Ansible weiterhin Python 2.X mit der Standardeinstellung "/ usr / bin / python"
  2. Vereinheitlichen Sie sich mit dem DNF-Modul anstelle des YUM-Moduls

Für diejenigen, die sagen "Python 2.X ist in Ordnung", können Sie den Standardinterpreter verwenden.

Wenn Sie den Pyhton 3.X-Interpreter wirklich verwenden möchten

** Geben Sie den Python 2.X-Interpreter im Inventar für den CentOS 7.X-Host an **

inventory.yml


all:
  children:
    centos7:
      hosts: centos7-1
      vars:
        ansible_python_interpreter: /usr/bin/python # /usr/bin/python2 ist auch OK

Wenn Sie nur CentOS7 gruppieren, scheint die Implementierung einfach zu sein.

** Erzwinge, dass der Interpreter im Playbook auf 2.X wechselt **

playbook.yml


- name: Change interpreter
  set_fact:
    ansible_python_interpreter: /usr/bin/python

Übrigens verwende ich dies für den Fall, dass Python 3.X zum Standard wird.

Recommended Posts

[Ansible] Installieren Sie dnf unter Centos7 mit dem Python3-Interpreter
Installieren Sie Python3.4 unter CentOS 6.6
Installieren Sie Python 2.7.3 unter CentOS 5.4
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Installieren Sie Python 3.8 unter CentOS 7 (SCL)
Installieren Sie Python 3.8 unter CentOS 8 (AppStream)
Installieren Sie Python von der Quelle mit Ansible
Installieren Sie Python unter CentOS mit Pyenv
Installieren Sie Python unter CentOS mit pyenv
CentOS8 --Installieren - Python3
Ein Memo mit Python2.7 und Python3 in CentOS
So installieren Sie Python3 mit Docker Centos
Installieren Sie Faiss unter CentOS 7
Installieren Sie Python auf Pidora.
Installieren Sie Scrapy auf Python3
Installieren Sie numba unter CentOS 7.2
Installieren Sie Ansible auf einem Mac
Installieren Sie Python auf dem Mac
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Installieren von Python 3 in einer Mac-Umgebung
Installieren Sie Voluptuous mit Python 2.5
Installieren Sie Python unter Windows
Installieren Sie mecab-python unter CentOS
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
Installieren Sie Python mit pyenv
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installieren Sie Python 3 unter MacOS Catalina (nur mit Homebrew)
Installieren Sie Python 3.4 auf einem Mac
Installieren Sie awscli auf centos7
Installieren Sie Chainer unter CentOS 6.7
Installieren Sie Python 3.6 auf Docker
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Installieren Sie Watchdog unter Windows + Python 3.3
Installieren Sie die Python-Umgebung mit Anaconda
Installieren Sie pygame auf python3.4 auf dem Mac
Installieren Sie die ImageMagick-6.2.x-Serie unter CentOS7.7
Installieren Sie eine externe Bibliothek mit Python
Installieren Sie pandas 0.14 auf python3.4 [auf Mac]
Debuggen mit dem PEPPER Python Interpreter
Installieren Sie Python 3.7 und Django 3.0 (CentOS)
Installieren Sie OpenCV unter Ubuntu + Python
Installieren Sie Chrome unter der CentOS 7-Serie
Python - Installieren Sie MySQLDB auf EC2
[Python] [Chainer] [Windows] Chainer unter Windows installieren
Hinweise zur Installation von Python unter CentOS
Installieren Sie Python Pillow unter Amazon Linux
Installieren Sie Python 3.8 unter Ubuntu 18.04 (Betriebssystemstandard)
Schritte zum Installieren von MySQL 8.0 unter CentOS 8.1
Installieren Sie Python 3 auf dem Sakura-Server (FreeBSD)
Himbeer Pi 4 Centos7 auf Docker installieren
pyenv-vertualenv installiert die Python3-Serie nicht gut
Installieren Sie Python 3.8 unter Ubuntu 20.04 (Betriebssystemstandard)
Installieren Sie xgboost (Python-Version) unter Windows
Installieren Sie Python unter Windows + pip + virtualenv
Schritte zum Installieren von VirtualBox unter CentOS
Installieren Sie Pytorch unter Blender 2.90 Python unter Windows
Installieren Sie Python 3.7 Anaconda auf dem MAC, aber Python 2
Installieren Sie python3 auf einem Mac (El Capitan)
Installieren Sie Java (Oracle JDK14) unter CentOS7