[Ansible] Installer dnf sur Centos7 avec l'interpréteur Python3

[Ansible] Installer dnf sur Centos7 avec l'interpréteur Python3

Qu'est-ce que DNF

page officielle fedora

-Il semble s'appeler Dandified Yum

En termes simples, «dnf» est le successeur de «yum», et à partir de CentOS 8, il prend par défaut «dnf» au lieu de «yum». Vous pouvez utiliser la commande yum dans CentOS8, mais ce n'est qu'un lien symbolique vers dnf.

Pourquoi utiliser dnf au lieu de yum

La prise en charge de Python 2.X a pris fin le 1er janvier 2020.

--yum ne fonctionne qu'avec python2.X --dnf fonctionne avec python 2.x ou 3.X

Donc à partir de maintenant, «dnf» deviendra le courant dominant.

(D'abord) Essayez d'installer manuellement sur CentOS 7

Installez dnf dans le conteneur CentOS 7.X Docker.

[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

Apparemment, le dnf de CentOS 7.X fonctionne sur python 2.X. Je l'ai essayé après l'installation de python3.X, mais dnf devient 2.X.

Installez dnf avec Ansible

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

Si l'interpréteur est Python 2.X, vous pouvez l'installer facilement.

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. Installez dnf avec le module yum
  2. Les tâches suivantes peuvent être utilisées en remplaçant le module yum par le module dnf.

(Sujet principal) Quand l'interpréteur d'Ansible est python3.X

ansible.cfg


[default]
ansible_python_interpreter=/usr/bin/python3

Comme mentionné ci-dessus, si vous utilisez l'interpréteur Python 3.X par défaut, vous devrez le forcer à revenir à 2.X.

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

L'interprète sera également 2.X pour les tâches suivantes.

Enfin (meilleure pratique pour l'interprète Ansible)

Ansible 2.12 ver. Semble changer le comportement de l'interpréteur par défaut. (Peut-être que Python 3.X sera le choix préféré)

référence) https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html https://rheb.hatenablog.com/entry/ansible_interpreter_discovery

Dans la version actuelle (2.9), / usr / bin / python est spécifié par défaut, donc la version Python utilisée peut différer selon le système d'exploitation. La meilleure pratique pour ceux qui ne peuvent pas attendre la version 2.12 et qui souhaitent utiliser la commande dnf est la suivante.

Abandonnez et utilisez l'interpréteur par défaut (Python 2.X)

  1. Pour Ansible, continuez à utiliser Python 2.X, en utilisant la valeur par défaut / usr / bin / python
  2. Unifiez au module dnf au lieu du module yum

Pour ceux qui disent "Python 2.X c'est bien", vous pouvez utiliser l'interpréteur par défaut.

Si vous voulez vraiment utiliser l'interpréteur Pyhton 3.X

** Spécifiez l'interpréteur Python 2.X dans l'inventaire pour l'hôte CentOS 7.X **

inventory.yml


all:
  children:
    centos7:
      hosts: centos7-1
      vars:
        ansible_python_interpreter: /usr/bin/python # /usr/bin/python2 est également OK

Si vous ne regroupez que CentOS7, cela semble facile à mettre en œuvre.

** Forcer l'interpréteur à passer à 2.X dans le playbook **

playbook.yml


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

En passant, j'utilise ceci au cas où Python 3.X deviendrait la valeur par défaut.

Recommended Posts

[Ansible] Installer dnf sur Centos7 avec l'interpréteur Python3
Installez Python3.4 sur CentOS 6.6
Installez Python 2.7.3 sur CentOS 5.4
Créez un environnement python avec ansible sur centos6
Installez Python 3.8 sur CentOS 7 (SCL)
Installez Python 3.8 sur CentOS 8 (AppStream)
Installez Python à partir des sources avec Ansible
Installer Python sur CentOS à l'aide de Pyenv
Installez Python sur CentOS en utilisant pyenv
CentOS8 --Installer --Python3
Un mémo contenant Python2.7 et Python3 dans CentOS
Si scipy est python 2.7.8, l'installation de pip trébuche
Comment installer python3 avec docker centos
Installez Faiss sur CentOS 7
Installez Python sur Pidora.
Installez Scrapy sur python3
Installez numba sur CentOS 7.2
Installez Ansible sur Mac
Installez Python sur Mac
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Installer Python 3 dans un environnement Mac
Installez Voluptuous avec Python 2.5
Installez python sur Windows
Installez mecab-python sur CentOS
Exécutez Flask sur CentOS avec python3.4, Gunicorn + Nginx.
Installez Python avec pyenv
Installez Python 3.3 sur Ubuntu 12.04
Installez Python 3 sur MacOS Catalina (avec Homebrew uniquement)
Installez Python 3.4 sur Mac
Installez awscli sur centos7
Installer Chainer sur CentOS 6.7
Installez Python 3.6 sur Docker
Installez le sélénium sur votre Mac et essayez-le avec python
Installer watchdog sur Windows + Python 3.3
Installer l'environnement Python avec Anaconda
Installer pygame sur python3.4 sur Mac
Installez la série ImageMagick-6.2.x sur CentOS7.7
Installer une bibliothèque externe avec Python
Installez pandas 0.14 sur python3.4 [sur Mac]
Déboguer avec l'interpréteur PEPPER python
Installez Python 3.7 et Django 3.0 (CentOS)
Installez OpenCV sur Ubuntu + python
Installez Chrome sur la série CentOS 7
Python --Installez MySQLDB sur EC2
[Python] [Chainer] [Windows] Installer Chainer sous Windows
Remarques sur l'installation de Python sur CentOS
Installez Python Pillow sur Amazon Linux
Installez Python 3.8 sur Ubuntu 18.04 (norme du système d'exploitation)
Étapes pour installer MySQL 8.0 sur CentOS 8.1
Installez Python 3 sur le serveur Sakura (FreeBSD)
raspberry pi 4 centos7 installer sur docker
pyenv-vertualenv n'installe pas correctement la série python3
Installez Python 3.8 sur Ubuntu 20.04 (norme du système d'exploitation)
Installez xgboost (version python) sur Windows
Installez Python sur Windows + pip + virtualenv
Étapes pour installer VirtualBox sur CentOS
Installez Pytorch sur Blender 2.90 python sous Windows
Installez Python 3.7 Anaconda sur MAC, mais Python 2
Installer python3 sur Mac (El Capitan)
Installez java (Oracle JDK14) sur CentOS7