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.
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.
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.
Un serveur adapté qui restait
vagrant
https://app.vagrantup.com/bento/boxes/centos-8
Vagrant.configure("2") do |config|
config.vm.box = "bento/centos-8"
end
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.
La génération d'allocation de disque automatique était également inchangée.
À 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.
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
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)
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