[LINUX] Spielen Sie mit CentOS 8

DMM.com Adventskalender 2019 Dies ist der Artikel am 17. Tag.

Mein Name ist @sinnershiki und ich bin verantwortlich für die Infrastruktur für die Verbreitung von DMM-Videos.

Der letztjährige DMM.com-Adventskalender hat StackStorm Introductory Story veröffentlicht, aber dieses Jahr möchte ich Ihnen CentOS 8 vorstellen, das im September veröffentlicht wurde. Ich werde.

Zusammenfassung der wichtigsten Änderungen

Unterschiede zwischen CentOS 8 und CentOS 7, achten Sie auf Yum und Middleware

Wie oben vorgestellt, sind die folgenden drei für Middleware-ähnliche Änderungen bekannt.

Da der Unterschied bei der tatsächlichen Verwendung jedoch nicht allein dadurch bekannt ist, möchte ich ihn anhand der Betriebssysteminstallation ausprobieren.

Außerdem möchte ich ein wenig über die Änderung der Standardeinstellung von Python erwähnen, die mir persönlich von 2 Serien zu 3 Serien wichtig ist.

Umgebung

Dieses Mal möchte ich in verschiedenen Umgebungen spielen, also möchte ich zunächst das Betriebssystem auf einen geeigneten Server stellen und auch mit dem Bento / Centos-8-Image von Vagrant spielen.

Umwelt 1

Ein geeigneter Server, der übrig blieb

Umwelt 2

vagrant

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

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

Installation

Ich habe versucht, das Betriebssystem auf einem geeigneten Server zu installieren. Es war in Ordnung, VM separat zu verwenden, aber es gab einen Überschuss.

Es gab keine wesentlichen Änderungen und die Auswahl des Softwareinstallationsteils hat sich so stark geändert? Es ging um.

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

Die automatische Generierung der Festplattenzuweisung hat sich nicht wesentlich geändert スクリーンショット 2019-10-17 16.49.35.png

Übrigens, da sich die Auswahlelemente der Software drastisch geändert haben, weiß ich nicht, wo sich das Netzwerkskript befindet, und als ich es ohne Überprüfung einfügte, wurde der Server ohne das Netzwerkskript gestartet.

Ich frage mich, ob ich Network Manager ernsthaft richtig betreiben muss.

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

dnf

Von hier an möchte ich grundsätzlich in die vagabundierende Umgebung gehen.

Als Alternative zu yum läuft yum auf Python2, während dnf auf Python3 läuft. Der Befehl yum kann jedoch weiterhin verwendet werden. Weil es ein Alias für dnf zu sein scheint. Ich hatte also das Gefühl, dass sich die Nutzung im Vergleich zu Yum für den normalen Gebrauch nicht wesentlich verändert hat.

DNF Command Reference

Das Folgende ist der Befehl, wenn tmux mit dnf als Testversion eingefügt wird.

[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

Informationen zum Hinzufügen eines Repositorys zu dnf

DNF Configuration Reference

Grundsätzlich scheint es "/etc/yum.repo.d / *. Repo" zu lesen. Auch hier gibt es keinen Unterschied zu yum. Es wurde gesagt, dass es gelesen werden würde, selbst wenn es in "/ etc / dnf / dnf.conf" beschrieben würde. Die Repository-Einstellung wird normalerweise in yum.repo.d vorgenommen, und die Priorität ist auch in yum.repo.d höher, sodass die Behandlung von Repo-Dateien mit yum identisch ist. Was wird passieren, nachdem dnf dies durchdrungen hat?

Im Folgenden wird das CentOS-Epel-Repository hinzugefügt. Wenn Sie epel-release installieren, wird es wie üblich enthalten sein, sodass es sich auch dann nicht ändert, wenn es zu dnf wird.

[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

Wie eingangs erwähnt, wurde iptables durch nftables ersetzt. Die Rückseite von firewalld hat sich ebenfalls von iptables zu nftables geändert, aber es schien keine besonderen Probleme beim Betrieb von firewalld zu geben.

Darüber hinaus ist iptables nicht vollständig unbrauchbar. Es scheint, dass es nach der Installation verwendet werden kann.

Wenn Sie den Vorgang also nicht sofort ändern möchten, können Sie Ihr Leben verlängern. Ich frage mich, ob es gut ist oder nicht ...

[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

Bisher lief auf CentOS yum auf Python, sodass Python standardmäßig enthalten war und Python-Befehle verwendet werden konnten.

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

In CentOS8 befindet sich der Python-Befehl jedoch standardmäßig nicht im Pfad. Da es in dnf verwendet werden sollte, existiert es, also lasst uns den Ort erkunden.

[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

Nun, ich fand heraus, dass Python in / usr / libexec / platform-python so ist. Tatsächlich ist einige Software betroffen und bis zu 2.7 Ansible-Serien funktionieren aufgrund dieses Einflusses standardmäßig nicht. Ab ansible 2.8.0 ist die Standardpython wie in [ChangeLog] gezeigt (https://github.com/ansible/ansible/blob/stable-2.8/changelogs/CHANGELOG-v2.8.rst#v280). Wenn nicht, scheint es eine Spezifikation zu geben, nach diesem Ort zu suchen.

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

Wenn Sie ansible 2.7 series oder niedriger für CentOS8 ausführen möchten, geben Sie den Parameter [ansible_python_interpreter] an (https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html#connection-variables). ist.

% 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)

Zusammenfassung

Eigentlich wollte ich so etwas wie das Problem beseitigen, dass Datadog nicht funktionierte, als ich es zum Zeitpunkt der Veröffentlichung überprüfte oder nach der Ursache suchte, aber wie erwartet wurde es zwei Monate nach der Veröffentlichung fest behandelt.

Ich denke also, dass die Umgebung derzeit ziemlich nutzbar geworden ist, daher denke ich, dass es Zeit ist, CentOS 8 ernsthaft einzusetzen.

CentOS7 kann weiterhin verwendet werden, aber die EOL [^ EOL] von CentOS6 nähert sich und ich möchte ein neues Betriebssystem verwenden. [^ EOL]: EOL von CentOS 6 ist der 30. November 2020

Recommended Posts

Spielen Sie mit CentOS 8
Spiel mit dem Propheten
Spiele mit PyTorch
CentOS8 --Play --Django
Spielen Sie mit 2016-Python
Spiel mit der Pyramide
Spiel mit Fathom
Spiel mit Othello (Reversi)
Spielen wir mit der 4. Dimension der 4. Dimension
Spielen wir mit Amedas Daten - Teil 1
Spielen Sie mit Push-Benachrichtigungen mit imap4lib
Spielen Sie mit Linux-Partitionen herum
Spielen wir mit Amedas Daten - Teil 4
Spielen wir mit Amedas Daten - Teil 3
Spielen wir mit Amedas Daten - Teil 2
Spielen Sie mit dem MD-Modul von ASE
Spielen Sie mit A3RT (Textvorschlag)
Verwenden Sie pyright mit CentOS7, emacs lsp-mode
Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Spielen Sie mit Poancare-Serien und SymPy
Erstellen eines Servers mit CONOHA VPS (CentOS)
Spielen Sie mit der Pythonista-UI-Implementierung [Action-Implementierung]
Spielen Sie mit dem PIR-Sensormodul [DSUN-PIR]
Python3-Umgebungskonstruktion mit pyenv-virtualenv (CentOS 7.3)
Verwenden von Chainer mit CentOS7 [Umgebungskonstruktion]
Funken spielen mit WSL Anaconda Jupyter (2)
Spielen Sie mit Turtle auf Google Colab
Spiele mit Dämonen, weil es ein Abschnitt ist
Videowiedergabe mit Ton auf Python !! (tkinter / imageio)
[Einführung in WordCloud] Spielen Sie mit Scraping ♬
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Spielen Sie wie eine Web-App mit ipywidgets
Spielen Sie mit dem UI-Modul von pythonista3
Führen Sie Keras mit CNTK-Backend unter CentOS aus
Ein Memo mit Python2.7 und Python3 in CentOS
Ich möchte mit aws mit Python spielen
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Erstellen eines Servers mit CONOHA VPS (CentOS)
Spielen Sie mit der Implementierung der Pythonista-Benutzeroberfläche [Bildschirmelemente]
Spielen Sie mit PDBBind von MoleculeNet und RDKitGridFeaturizer von DeepChem
Spielen Sie Audiodateien mit Interrupts mit PyAudio ab
Spielen Sie mit Dajare mithilfe der COTOHA-API
Laden Sie csv mit Pandas und spielen Sie mit Index
Erstellen Sie CentOS 8 unter ESXi 6.7 mit minimaler Konfiguration
CentOS 7: Aktivieren Sie pyenv mit Apache (httpd) CGI
So installieren Sie Python3 mit Docker Centos
Python-Handspiel (Beginnen wir mit AtCoder?)
[REAPER] Wie man Reascript mit Python spielt
Starten Sie Caddy mit Docker, ohne Caddy in CentOS8 zu integrieren
Spielen Sie mit Google Spread Sheet mit Python (OAuth)
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen einer Lambda-Funktion
VM kann nicht mit einem bestimmten Kernel von CentOS7 gestartet werden
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Ich wollte mit der Bezier-Kurve spielen
Verstehe Gitterpunkte und spiele mit Konturlinien.