Jouez avec CentOS 8

Calendrier de l'Avent DMM.com 2019 Ceci est l'article du 17ème jour.

Je m'appelle @sinnershiki et je suis en charge de l'infrastructure de distribution vidéo DMM.

L'an dernier, le calendrier de l'Avent DMM.com a fait StackStorm Introductory Story, mais cette année, j'aimerais vous présenter CentOS 8 sorti en septembre. Je vais.

Résumé des changements majeurs

Différences entre CentOS 8 et CentOS 7, faites attention à yum et au middleware

Comme présenté ci-dessus, je pense que les trois suivants sont connus pour leurs changements de type middleware.

Cependant, comme la différence lors de son utilisation n'est pas connue de cela seul, je voudrais l'essayer à partir de l'installation du système d'exploitation.

Aussi, je voudrais mentionner un peu le changement de la valeur par défaut de python qui me tient personnellement à cœur de 2 séries à 3 séries.

environnement

Cette fois, je voudrais jouer dans divers environnements, donc je voudrais commencer par mettre le système d'exploitation sur un serveur approprié et aussi jouer avec l'image bento / centos-8 de vagrant.

Environnement 1

Un serveur adapté qui restait

Environnement 2

vagrant

https://app.vagrantup.com/bento/boxes/centos-8

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-8"
end

Installation

J'ai essayé l'installation du système d'exploitation sur un serveur approprié. Il était normal d'utiliser VM séparément, mais il y avait un surplus.

Il n'y a pas eu de changements majeurs et la sélection de la partie d'installation du logiciel a tellement changé? C'était à propos de.

スクリーンショット 2019-10-17 16.44.03.png スクリーンショット 2019-10-17 16.47.57.png

La génération d'allocation de disque automatique était également inchangée. スクリーンショット 2019-10-17 16.49.35.png

À propos, parce que les éléments de sélection du logiciel ont radicalement changé, je ne sais pas où se trouve le script réseau, et quand je le mets sans rien vérifier, le serveur sans le script réseau est apparu.

Je me demande si je dois vraiment utiliser Network Manager correctement.

% systemctl status network
Unit network.service could not be found.

dnf

À partir de maintenant, je voudrais passer essentiellement à l'environnement vagabond.

Comme alternative à yum, yum fonctionne sur les séries python2, tandis que dnf fonctionne sur les séries python3. Cependant, la commande yum peut toujours être utilisée. Parce que cela semble être un alias pour dnf. Donc, j'ai senti qu'il n'y avait pas beaucoup de changement dans l'utilisation par rapport à yum pour une utilisation normale.

DNF Command Reference

Ce qui suit est la commande lorsque tmux est inséré avec dnf à titre d'essai.

[root@vm01 ~]# which dnf
/usr/bin/dnf
[root@vm01 ~]# which yum
/usr/bin/yum
[root@vm01 ~]# ls -la /usr/bin/yum
lrwxrwxrwx. 1 root root 5 May 13  2019 /usr/bin/yum -> dnf-3
[root@vm01 ~]# dnf search tmux
Last metadata expiration check: 0:00:22 ago on Sun 15 Dec 2019 01:35:52 PM UTC.
============================ Name Exactly Matched: tmux =============================
tmux.x86_64 : A terminal multiplexer
tmux.i686 : A terminal multiplexer
tmux.x86_64 : A terminal multiplexer
[root@vm01 ~]# dnf install -y tmux
Datadog, Inc.                                         23 kB/s | 2.5 kB     00:00
CentOS-8 - AppStream                                 1.4 MB/s | 6.3 MB     00:04
CentOS-8 - Base                                      1.7 MB/s | 7.9 MB     00:04
CentOS-8 - Extras                                    791  B/s | 2.1 kB     00:02
Dependencies resolved.
=====================================================================================
 Package          Arch               Version                Repository          Size
=====================================================================================
Installing:
 tmux             x86_64             2.7-1.el8              BaseOS             317 k

Transaction Summary
=====================================================================================
Install  1 Package

Total download size: 317 k
Installed size: 781 k
Downloading Packages:
tmux-2.7-1.el8.x86_64.rpm                            285 kB/s | 317 kB     00:01
-------------------------------------------------------------------------------------
Total                                                119 kB/s | 317 kB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                             1/1
  Installing       : tmux-2.7-1.el8.x86_64                                       1/1
  Running scriptlet: tmux-2.7-1.el8.x86_64                                       1/1
  Verifying        : tmux-2.7-1.el8.x86_64                                       1/1

Installed:
  tmux-2.7-1.el8.x86_64

Complete!
[root@vm01 ~]# dnf list --installed | grep tmux
tmux.x86_64                          2.7-1.el8                             @BaseOS

A propos de l'ajout d'un référentiel à dnf

DNF Configuration Reference

Fondamentalement, il semble lire /etc/yum.repo.d / *. Repo. Il n'y a pas non plus de différence avec yum ici. On a dit qu'il serait lu même s'il était décrit dans / etc / dnf / dnf.conf. La configuration du référentiel est généralement effectuée dans yum.repo.d, et la priorité est également plus élevée dans yum.repo.d, de sorte que la gestion des fichiers de dépôt est la même que celle de yum. Que se passera-t-il une fois que DNF aura pénétré cela?

Vous trouverez ci-dessous l'ajout du référentiel Epel CentOS. Si vous installez epel-release comme d'habitude, il sera inclus, donc il ne changera pas même s'il devient dnf.

[root@vm01 ~]# dnf install epel-release
Last metadata expiration check: 0:12:21 ago on Sun 15 Dec 2019 01:35:52 PM UTC.
Dependencies resolved.
=====================================================================================
 Package                Arch             Version              Repository        Size
=====================================================================================
Installing:
 epel-release           noarch           8-5.el8              extras            22 k

Transaction Summary
=====================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 30 k
Is this ok [y/N]: y
Downloading Packages:
epel-release-8-5.el8.noarch.rpm                       21 kB/s |  22 kB     00:01
-------------------------------------------------------------------------------------
Total                                                9.5 kB/s |  22 kB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                             1/1
  Installing       : epel-release-8-5.el8.noarch                                 1/1
  Running scriptlet: epel-release-8-5.el8.noarch                                 1/1
  Verifying        : epel-release-8-5.el8.noarch                                 1/1

Installed:
  epel-release-8-5.el8.noarch

Complete!
[root@vm01 ~]# ls -la /etc/yum.repos.d/epel.repo
-rw-r--r--. 1 root root 1206 Aug  6 18:17 /etc/yum.repos.d/epel.repo
[root@vm01 ~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever

[epel-debuginfo]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Source
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
gpgcheck=1

iptables

Comme mentionné au début, iptables a été remplacé par nftables. L'arrière de firewalld est également passé de iptables à nftables, mais il ne semblait y avoir aucun problème particulier dans le fonctionnement de firewalld.

De plus, iptables n'est pas totalement inutilisable, il semble qu'il puisse être utilisé une fois installé.

Donc, si vous ne voulez pas changer l'opération tout de suite, vous pouvez prolonger votre vie. Je me demande si c'est bon ou pas ...

[root@vm01 ~]# dnf install -y  iptables-services
Last metadata expiration check: 1:20:15 ago on Mon 16 Dec 2019 01:11:06 AM UTC.
Dependencies resolved.
=====================================================================================
 Package                  Arch          Version                  Repository     Size
=====================================================================================
Installing:
 iptables-services        x86_64        1.8.2-9.el8_0.1          BaseOS         58 k

Transaction Summary
=====================================================================================
Install  1 Package

Total download size: 58 k
Installed size: 20 k
Downloading Packages:
iptables-services-1.8.2-9.el8_0.1.x86_64.rpm         691 kB/s |  58 kB     00:00
-------------------------------------------------------------------------------------
Total                                                 42 kB/s |  58 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                             1/1
  Installing       : iptables-services-1.8.2-9.el8_0.1.x86_64                    1/1
  Running scriptlet: iptables-services-1.8.2-9.el8_0.1.x86_64                    1/1
  Verifying        : iptables-services-1.8.2-9.el8_0.1.x86_64                    1/1

Installed:
  iptables-services-1.8.2-9.el8_0.1.x86_64

Complete!
[root@vm01 ~]# systemctl stop firewalld nftables
[root@vm01 ~]# systemctl disable firewalld nftables
[root@vm01 ~]# systemctl enable iptables
Created symlink /etc/systemd/system/basic.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service.
[root@vm01 ~]# systemctl start iptables
[root@vm01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

python

Jusqu'à présent, CentOS exécutait yum sur python, donc python était inclus par défaut et les commandes python pouvaient être utilisées.

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost ~]# python -V
Python 2.7.5

Cependant, dans CentOS8, la commande python n'est pas réellement dans le chemin par défaut. Il devrait être utilisé par dnf, alors découvrons où il existe.

[root@vm01 ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
[root@vm01 ~]# python -V
-bash: python: command not found
[root@vm01 ~]# head /usr/bin/dnf
#!/usr/libexec/platform-python
# The dnf executable script.
#
# Copyright (C) 2012-2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# the GNU General Public License v.2, or (at your option) any later version.
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY expressed or implied, including the implied warranties of
[root@vm01 ~]# ls -la /usr/libexec/platform-python
lrwxrwxrwx. 1 root root 20 Oct  7 18:00 /usr/libexec/platform-python -> ./platform-python3.6
[root@vm01 ~]# /usr/libexec/platform-python -V
Python 3.6.8

Eh bien, j'ai découvert que python est dans / usr / libexec / platform-python comme ceci. En fait, certains logiciels sont affectés et jusqu'à 2.7 séries d'ansible ne fonctionnent pas par défaut en raison de cette influence. À partir de ansible 2.8.0, le python par défaut est comme indiqué dans ChangeLog. Sinon, il semble qu'il existe une spécification pour rechercher cet endroit.

% ansible -i inventory all -m ping
vm01 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}

Si vous souhaitez exécuter la série ansible 2.7 ou inférieure pour CentOS8, spécifiez le paramètre ansible_python_interpreter. est.

% ansible --version
ansible 2.7.10
  ansible python module location = /opt/rh/python27/root/usr/lib/python2.7/site-packages/ansible
  executable location = /opt/rh/python27/root/usr/bin/ansible
  python version = 2.7.13 (default, Apr 12 2017, 06:53:51) [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)]
% ansible -i inventory all -m shell -a "cat /etc/redhat-release" -kK
SSH password:
SUDO password[defaults to SSH password]:
server | FAILED! => {
    "changed": false,
    "module_stderr": "Shared connection to xxx.xxx.xxx.xxx closed.\r\n",
    "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n",
    "msg": "The module failed to execute correctly, you probably need to set the interpreter.\nSee stdout/stderr for the exact error",
    "rc": 127
}
% ansible -i inventory all -m shell -a "cat /etc/redhat-release" -kK --extra-vars='ansible_python_interpreter=/usr/libexec/platform-python'
SSH password:
SUDO password[defaults to SSH password]:
server | CHANGED | rc=0 >>
CentOS Linux release 8.0.1905 (Core)

Résumé

En fait, je voulais faire quelque chose comme résoudre le problème que le datadog ne fonctionnait pas lorsque je le vérifiais au moment de la publication ou en recherchant la cause, mais comme prévu, cela a été résolument résolu deux mois après la publication.

Donc, je pense que l'environnement est devenu tout à fait utilisable à l'heure actuelle, donc je pense qu'il est temps de commencer à utiliser CentOS 8 sérieusement.

CentOS7 peut toujours être utilisé, mais l'EOL [^ EOL] de CentOS6 approche, et j'aimerais utiliser un nouvel OS. [^ EOL]: EOL of CentOS 6 est le 30 novembre 2020

Recommended Posts

Jouez avec CentOS 8
Jouez avec Prophet
Jouez avec PyTorch
CentOS8 --Jouer --Django
Jouez avec 2016-Python
Jouez avec Pyramid
Jouez avec Fathom
Jouer avec Othello (Reversi)
Jouons avec la 4e dimension 4e
Jouons avec les données Amedas - Partie 1
Jouez avec les notifications push avec imap4lib
Jouez avec les partitions Linux
Jouons avec les données Amedas - Partie 4
Jouons avec les données Amedas - Partie 3
Jouons avec les données Amedas - Partie 2
Jouez avec le module MD de ASE
Jouez avec A3RT (texte suggéré)
Utiliser pyright avec CentOS7, emacs lsp-mode
Jouez avec une tortue avec des graphiques de tortue (partie 1)
Jouez avec la série Poancare et SymPy
Construire un serveur avec CONOHA VPS (CentOS)
Jouer avec l'implémentation de l'interface utilisateur Pythonista [Action implementation]
Jouez avec le module de capteur PIR [DSUN-PIR]
Construction de l'environnement Python3 avec pyenv-virtualenv (CentOS 7.3)
Utilisation de Chainer avec CentOS7 [Construction de l'environnement]
Spark play avec WSL anaconda jupyter (2)
Jouez avec Turtle sur Google Colab
Jouez avec les démons parce que c'est une section
Lecture vidéo avec son sur python !! (tkinter / imageio)
[Introduction à WordCloud] Jouez avec le scraping ♬
Lire un fichier audio à partir de Python avec interruption
Jouez comme une application Web avec ipywidgets
Ajustez le module ui de pythonista3
Exécutez Keras avec le backend CNTK à partir de CentOS
Un mémo contenant Python2.7 et Python3 dans CentOS
Je veux jouer avec aws avec python
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Construire un serveur avec CONOHA VPS (CentOS)
Jouer avec l'implémentation de l'interface utilisateur de Pythonista [Éléments d'écran]
Jouez avec PDBBind de MoleculeNet et RDKitGridFeaturizer de DeepChem
Lire des fichiers audio avec des interruptions à l'aide de PyAudio
Jouez avec Dajare en utilisant l'API COTOHA
Chargez CSV avec des pandas et jouez avec Index
Construisez CentOS 8 sur ESXi 6.7 avec une configuration minimale
CentOS 7: Activez pyenv avec Apache (httpd) CGI
Comment installer python3 avec docker centos
Jeu à la main en Python (commençons avec AtCoder?)
[REAPER] Comment jouer à Reascript avec Python
Démarrez Caddy avec docker sans mettre Caddy dans CentOS8
Jouez avec Google Spread Sheet avec Python (OAuth)
[Piyopiyokai # 1] Jouons avec Lambda: création d'une fonction Lambda
La VM ne peut pas être démarrée avec un noyau spécifique de CentOS7
Créez un environnement python avec ansible sur centos6
Je voulais jouer avec la courbe de Bézier
Comprenez les points de la grille et jouez avec les courbes de niveau.