Come eseguire le operazioni preliminari in un server CentOS 7

Che si tratti di una macchina virtuale o di una macchina fisica, ogni volta che mi capita di installare un nuovo server, terminata l'installazione dal DVD o dall'immagine ISO, mi ritrovo sempre di fronte allo stesso problema: preparare l'ambiente di base per poter successivamente lavorare su un server CenttOS 7 in modo agevole e senza interruzioni per via della mancanza di questo o quel package.

Ho cercato e trovato un modo semplice per ovviare a questo, predisponendo un task che mi permettesse di fare tutte le attività preliminari per portare il sistema ad un livello operativo tale che mi permettesse di focalizzarmi sull'obbiettivo finale. Eliminando così tutte quelle distrazioni che qua e là interrompono le attività e distolgono l'attenzione.

Ne è venuta fuori una procedura di installazione semplice ed efficace, che ho deciso di condividere in questo post, affinché sia di aiuto a tutti coloro che, come me, preferiscono avere sempre a portata di mano la cassetta degli attrezzi da dove prendere lo strumento giusto senza perdere tempo a cercarlo e senza neanche distogliere lo sguardo da ciò che si sta facendo.

Il Contesto generale

Questa breve guida è riferita alla installazione di un server CentOS 7, ma può essere utile, con qualche ovvia differenza, anche per un server Debian (e suoi derivati). Questo soltanto perché mi trovo più spesso a contatto con sistemi basati su CentOS, quindi non voglio assolutamente qui entrare nella discussione di quale sia il server o il sistema operativo migliore.

Ciò che credo sia importante per lo scopo di questo post, è mettere in fila tutte le operazioni preliminari che ci renderanno il lavoro più semplice.

Anche se non credo sia necessario, va qui ricordato che tutte le operazioni descritte qui di seguito sono eseguite dalla console di sistema, o da remoto tramite una connessione ssh. Altrettanto ovvio che tutti i comandi dovranno essere eseguiti con i privilegi di root, a meno che non sia specificato diversamente.

Questi gli argomenti trattati in questo articolo:

Definisco un mio 'prompt' personalizzato

Il prompt linux per il terminale non è solo il segnale che si può lanciare un comando; dovrebbe anche essere uno strumento utile a fornire quante più informazioni utili possibili a colpo d'occhio.

Quindi, faccio in modo che in quel piccolo brandello di testo, ci siano condensate le seguenti informazioni:

  1. Il login name: ossia lo username che ho utilizzato per il login;
  2. Il nome dell'host sul quale mi trovo: utilissimo se ho molte connessioni contemporanee dal mio client su diverse macchine.;
  3. La directory corrente: per capire "al-volo" in quale cartella mi trovo;
  4. Il numero di sequenza del prossimo comando;
  5. Il Colore del testo del prompt stesso: utilizzando colori diversi per distinguere l'account di root dagli altri account non privilegiati.

Definisco quindi il mio prompt con il comando export PS1='\[\e[31;1m\]\u@\[\e[31;1m\]\h:\W[\#]# \[\e[0m\]'.

# export PS1='\[\e[31;1m\]\u@\[\e[31;1m\]\h:\W[\#]# \[\e[0m\]'
root@centauro:~[7]#

Ovviamente lo aggiungo al file ~/.bashrc in modo che venga impostato automaticamente ad ogni nuovo login.

Assegno il nome host (Hostname)

Con le recenti distribuzioni Linux assegnare un nome host (hostname) al sistema è la cosa più semplice che si possa immaginare. Il comando hostnamectl è un eccellente tool per fare tutte le operazioni che servono sul nome host.

Invocato senza argomenti, ritorna molte utili informazioni sul sistema:

# hostnamectl
Static hostname: centauro
Icon name: computer-vm
Chassis: vm
Machine ID: b0adf2474c9302448393d03cf097f985
Boot ID: 007b4148734b404ca9821b307661318d
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.12.2.el7.x86_64
Architecture: x86-64

Questo comando può modificare alcuni parametri di setup "profondi" del sistema, ma per lo scopo di questo articolo, prenderò solo in considerazione la possibilità di cambiare il nome host del mio server.

Per cambiare/assegnare un nome al host utilizzare il comando hostnamectl set-hostname [NOMEHOST], dove "NOMEHOST è il nome che voglio assegnare al mio server, che deve rispettare le specifiche che puoi trovare a questo link (in inglese), oppure sfogliando le man pages: man 7 hostname (sempre in inglese).

Disabilito il Desktop Manager

Quando si lavora con i server, solitamente è cosa buona e giusta evitare di utilizzare il linux desktop manager; anzi, dovrebbe essere del tutto disattivato, se non addirittuta rimosso. Questo, non tanto per convinzioni da 'purista' o da fondamentalista Unix, quanto per il fatto che il Desktop manager (che sia Gnome, Mate, LXCE, o qualsiasi altro) di fatto rubano consistenti risorse di sistema. 

Quindi, per prima cosa, disabilito il desktop manager con il comando systemctl set-default multi-user.target, in modo che al prossimo avvio del sistema esso non verrà avviato.

# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

Se poi per qualsiasi motivo avrò bisogno di riattivarlo, non mi resterà altro da fare che lanciare il comando systemctl set-default graphical.target.

# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

Ed avrò ripristinato all'occorrenza il Desktop Manager, al prossimo avvio del sistema.

 

Imposto il Repository dei pacchetti da CD/DVD (opzionale)

Non sempre inserire il DVD nella macchina significa poterlo utilizzare subito; specialmente se è stata eseguite una installazione minimale del sistema operativo. Perciò, vale la pena preparare il sistema affinché montare un CD-ROM o un DVD sia una di quelle operazioni che non porti via neanche il tempo necessario a pensare a come fare.

Passo 1 - Preparo il mount point in una directory 'storicamente' nota: /mnt/cdrom.

Passo 2 - Aggiungo la seguente riga nel file : /etc/fstab.

/dev/sr0 /mnt/cdrom udf,iso9660 noauto,utf8 0 0

Ed il gioco è fatto.

Da questo momento in poi, posso montare il CD/DVD con il semplice comando: mount /mnt/cdrom,  oppure  : mount /dev/sr0.

# mount /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only

Che è proprio ciò che volevo ottenere.

Impostazioni preliminari di 'yum'

Che cosa è yum? Ebbene; yum, come recita la man page (comando: man yum) è il Yellowdog Updater Modified, in altre parole, è il gestore dei pacchetti della distribuzione GNU Linux CentOS. Lo strumento con il quale si possono installare, rimuovere ed aggiornare tutti i pacchetti software di questa distribuzione Linux.

Visto e considerato che ho già predisposto tutto il necessario per montare il CD/DVD, ora posso predisporre 'yum' a considerare questo come uno dei tanti repository di pacchetti.

Il punto è che ho un server appena installato, e magari posso avere ancora problemi nella configurazione di rete che non mi consente in questo momento di accedere ad internet. Quindi voglio che sia possibile poter installare fin da subito qualche utile pacchetto prima di procedere alla configurazione della rete.

Per istruire yum a considerare il CD/DVD come repository del software devo modificare il file /etc/yum.repos.d/CentOS-Media.repo, in modo che il suo contenuto sia simile a quello mostrato qui sotto.

baseurl=file:///mnt/cdrom/
     file:///media/CentOS/
     file:///media/cdrom/
     file:///media/cdrecorder/

Notare che ho evidenziato in rosso la parte che ho aggiunto io al file originale. Infatti CentOS assume che il CD/DVD sia automaticamente montato in almeno una delle directory standard del sistema; cosa che non possiamo dare per scontata, se abbiamo fatto, come già accennato, una installazione "minimale" del sistema.

Per poter sfruttare qualche utile funzionalità aggiuntiva di yum, a questo punto conviene installare subito il pacchetto software appropriato: yum-utils, con il seguente comando:

 yum --disablerepo=\* --enablerepo=c7-media install -y yum-utils 

Il quale installa il pacchetto yum-utils dal CD/DVD; in quanto, all'interno del comando c'è la direttiva che disabilita tutti i repository abilitando esclusivamente quello che fa riferimento al CD/DVD.

... E questo è il sintetico risultato, alquanto corposo in orgine, che si ottiene lanciando questo comando:

# yum --disablerepo=\* --enablerepo=c7-media install -y yum-utils
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* c7-media:
Resolving Dependencies

[Truncated output, too long...]

Transaction Summary
============================================================================================================================================
Install 1 Package (+2 Dependent packages)

Total download size: 607 k
Installed size: 2.8 M
Downloading packages:
--------------------------------------------------------------------------------------------------------------------------------------------
Total 3.5 MB/s | 607 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python-chardet-2.2.1-1.el7_1.noarch 1/3
Installing : python-kitchen-1.1.1-5.el7.noarch 2/3
Installing : yum-utils-1.1.31-34.el7.noarch 3/3
Verifying : python-kitchen-1.1.1-5.el7.noarch 1/3
Verifying : yum-utils-1.1.31-34.el7.noarch 2/3
Verifying : python-chardet-2.2.1-1.el7_1.noarch 3/3

Installed:
yum-utils.noarch 0:1.1.31-34.el7

Dependency Installed:
python-chardet.noarch 0:2.2.1-1.el7_1 python-kitchen.noarch 0:1.1.1-5.el7

Complete!

 

L'installazione di yum-utils,  rende finalmente disponibile alcune utility di yum come ad esempio il comando yum-config-manager, tramite il quale è possibile fare operazioni più complesse ed estese sui repository.

A tale proposito, utilizzeremo subito questo comando, proprio per abilitare il repository locale (quello relativo al CD/DVD), disabilitando temporaneamente tutti gli altri (quelli che risiedono in internet).

Ma prima di tutto vediamo quanti e quali repository sono al momento disponibili:

# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tugraz.at
* c7-media:
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,019
c7-media CentOS-7 - Media 3,723
repolist: 13,742

Bene! Sembra proprio che per il momento gli unici repository abilitati siano base e c7-media.

Per iniziare, disabilito tutti i repository con il comando yum-config-manager --disable \*.

# yum-config-manager --disable \*
Loaded plugins: fastestmirror
=========================================================== repo: C7.0.1406-base ===========================================================
[C7.0.1406-base]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = http://vault.centos.org/7.0.1406/os/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/7/C7.0.1406-base
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = False
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7/C7.0.1406-base/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/C7.0.1406-base/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
hdrdir = /var/cache/yum/x86_64/7/C7.0.1406-base/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist =
mirrorlist_expire = 86400
name = CentOS-7.0.1406 - Base
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7/C7.0.1406-base
pkgdir = /var/cache/yum/x86_64/7/C7.0.1406-base/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = C7.0.1406-base/x86_64
ui_repoid_vars = releasever,
   basearch
username =
..... [Listato omesso poiché molto lungo]...


... Ed abilito unicamente il repository c7-media con il comando yum-config-manager --enable c7-media.

# yum-config-manager --enable c7-media
Loaded plugins: fastestmirror
============================================================== repo: c7-media ==============================================================
[c7-media]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = file:///mnt/cdrom/,
   file:///media/CentOS/,
   file:///media/cdrom/,
   file:///media/cdrecorder/
cache = 0
cachedir = /var/cache/yum/x86_64/7/c7-media
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7/c7-media/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/c7-media/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
hdrdir = /var/cache/yum/x86_64/7/c7-media/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist =
mirrorlist_expire = 86400
name = CentOS-7 - Media
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7/c7-media
pkgdir = /var/cache/yum/x86_64/7/c7-media/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = c7-media
ui_repoid_vars = releasever,
   basearch
username =

Devo però ricordare che, quando avrò terminato, devo ripristinare i repository necessari; almeno quello del repository base per permettere gli aggiornamenti di sicurezza.

Considerazione su 'yum' per server senza accesso ad internet

Vale qui la pena di considerare alcuni aspetti che ruotano intorno all'aggiornamento del software installato nel sistema.

Il più delle volte ci si trova a lavorare con server che possono raggiungere i vari repository che si trovano in internet (dove effettivamente risiedono gli ultimi aggiornamenti software più recenti).

Tuttavia, a me personalmente capita spesso anche di dover lavorare con sistemi che, una volta installati, non possono più accedere ad internet per motivi di sicurezza. Questi sistemi sono condannati a restare isolati nella propria intranet per tutta la loro esistenza.

Ciò comporta che gli aggiornamenti possono essere fatti esclusivamente tramite CD/DVD.

È proprio per questo motivo che disabilito tutti i repository, lasciano esclusivamente quello relativo al CD/DVD così che possono essere aggiornati tramite questo device.

Abilito le funzionalità grafiche da terminale

Anche se ho appena disabilitato il Desktop Manager, questo non vuole assolutamente significare che non potrei aver bisogno in futuro di utilizzare da remoto qualche applicazione con funzionalità grafiche sul server, sia con un client GNU Linux che con un client Windows.

Abilitando infatti questa funzionalità sul server, mi permetterà in futuro di utilizzare qualsiasi applicazione grafica sul server, come ad esempio xclock oppure, perché no, Mozilla Firefox o addirittura Gimp.

Come fare, è molto semplice; è sufficiente installare i pacchetti appropriati con il comando:

# yum install -y xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps

Del quale questo è l'output completo

# yum install -y xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.prometeus.net
* epel: www.mirrorservice.org
Resolving Dependencies
--> Running transaction check

[Truncated output, too long...]

------------------------------------------------------------------------------------------------------------------------------
Total 1.5 MB/s | 7.5 MB 00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libXau-1.0.8-2.1.el7.x86_64 1/40
Installing : libxcb-1.13-1.el7.x86_64 2/40
Installing : libfontenc-1.1.3-3.el7.x86_64 3/40
Installing : libxshmfence-1.2-1.el7.x86_64 4/40
Installing : pixman-0.34.0-1.el7.x86_64 5/40
Installing : mesa-libglapi-18.0.5-3.el7.x86_64 6/40
Installing : fontpackages-filesystem-1.44-8.el7.noarch 7/40
Installing : libICE-1.0.9-9.el7.x86_64 8/40
Installing : libSM-1.2.2-2.el7.x86_64 9/40
Installing : dejavu-fonts-common-2.33-6.el7.noarch 10/40
Installing : dejavu-sans-fonts-2.33-6.el7.noarch 11/40
Installing : fontconfig-2.13.0-4.3.el7.x86_64 12/40
Installing : libXfont2-2.0.3-1.el7.x86_64 13/40
Installing : libX11-common-1.6.5-2.el7.noarch 14/40
Installing : libX11-1.6.5-2.el7.x86_64 15/40
Installing : libXext-1.3.3-3.el7.x86_64 16/40
Installing : libXrender-0.9.10-1.el7.x86_64 17/40
Installing : libXt-1.1.5-3.el7.x86_64 18/40
Installing : libXmu-1.1.2-2.el7.x86_64 19/40
Installing : libXfixes-5.0.3-1.el7.x86_64 20/40
Installing : libXxf86vm-1.1.4-1.el7.x86_64 21/40
Installing : libxkbfile-1.0.9-3.el7.x86_64 22/40
Installing : xorg-x11-xkb-utils-7.7-14.el7.x86_64 23/40
Installing : libXcursor-1.1.15-1.el7.x86_64 24/40
Installing : libXdamage-1.1.4-4.1.el7.x86_64 25/40
Installing : libXft-2.3.2-2.el7.x86_64 26/40
Installing : libXpm-3.5.12-1.el7.x86_64 27/40
Installing : libXaw-1.0.13-4.el7.x86_64 28/40
Installing : libXdmcp-1.1.2-6.el7.x86_64 29/40
Installing : libepoxy-1.5.2-1.el7.x86_64 30/40
Installing : 1:libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64 31/40
Installing : 1:libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64 32/40
Installing : mesa-libGL-18.0.5-3.el7.x86_64 33/40
Installing : xkeyboard-config-2.24-1.el7.noarch 34/40
Installing : xorg-x11-server-common-1.20.1-3.el7.x86_64 35/40
Installing : libwayland-server-1.15.0-1.el7.x86_64 36/40
Installing : mesa-libgbm-18.0.5-3.el7.x86_64 37/40
Installing : xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 38/40
Installing : xorg-x11-apps-7.7-7.el7.x86_64 39/40
Installing : 1:xorg-x11-xauth-1.0.9-1.el7.x86_64 40/40
Verifying : libXext-1.3.3-3.el7.x86_64 1/40
Verifying : fontconfig-2.13.0-4.3.el7.x86_64 2/40
Verifying : libXaw-1.0.13-4.el7.x86_64 3/40
Verifying : libXrender-0.9.10-1.el7.x86_64 4/40
Verifying : 1:libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64 5/40
Verifying : libXxf86vm-1.1.4-1.el7.x86_64 6/40
Verifying : libwayland-server-1.15.0-1.el7.x86_64 7/40
Verifying : libXcursor-1.1.15-1.el7.x86_64 8/40
Verifying : mesa-libGL-18.0.5-3.el7.x86_64 9/40
Verifying : libXt-1.1.5-3.el7.x86_64 10/40
Verifying : xorg-x11-xkb-utils-7.7-14.el7.x86_64 11/40
Verifying : libICE-1.0.9-9.el7.x86_64 12/40
Verifying : fontpackages-filesystem-1.44-8.el7.noarch 13/40
Verifying : libxkbfile-1.0.9-3.el7.x86_64 14/40
Verifying : xkeyboard-config-2.24-1.el7.noarch 15/40
Verifying : mesa-libgbm-18.0.5-3.el7.x86_64 16/40
Verifying : dejavu-fonts-common-2.33-6.el7.noarch 17/40
Verifying : 1:libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64 18/40
Verifying : libxcb-1.13-1.el7.x86_64 19/40
Verifying : libXft-2.3.2-2.el7.x86_64 20/40
Verifying : mesa-libglapi-18.0.5-3.el7.x86_64 21/40
Verifying : libXpm-3.5.12-1.el7.x86_64 22/40
Verifying : libepoxy-1.5.2-1.el7.x86_64 23/40
Verifying : libXfont2-2.0.3-1.el7.x86_64 24/40
Verifying : dejavu-sans-fonts-2.33-6.el7.noarch 25/40
Verifying : libXmu-1.1.2-2.el7.x86_64 26/40
Verifying : pixman-0.34.0-1.el7.x86_64 27/40
Verifying : libX11-1.6.5-2.el7.x86_64 28/40
Verifying : 1:xorg-x11-xauth-1.0.9-1.el7.x86_64 29/40
Verifying : xorg-x11-apps-7.7-7.el7.x86_64 30/40
Verifying : libxshmfence-1.2-1.el7.x86_64 31/40
Verifying : libXau-1.0.8-2.1.el7.x86_64 32/40
Verifying : xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 33/40
Verifying : libSM-1.2.2-2.el7.x86_64 34/40
Verifying : xorg-x11-server-common-1.20.1-3.el7.x86_64 35/40
Verifying : libXdmcp-1.1.2-6.el7.x86_64 36/40
Verifying : libX11-common-1.6.5-2.el7.noarch 37/40
Verifying : libXdamage-1.1.4-4.1.el7.x86_64 38/40
Verifying : libXfixes-5.0.3-1.el7.x86_64 39/40
Verifying : libfontenc-1.1.3-3.el7.x86_64 40/40

Installed:
xorg-x11-apps.x86_64 0:7.7-7.el7 xorg-x11-server-Xorg.x86_64 0:1.20.1-3.el7 xorg-x11-xauth.x86_64 1:1.0.9-1.el7

>Dependency Installed:
dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7
fontconfig.x86_64 0:2.13.0-4.3.el7 fontpackages-filesystem.noarch 0:1.44-8.el7
libICE.x86_64 0:1.0.9-9.el7 libSM.x86_64 0:1.2.2-2.el7
libX11.x86_64 0:1.6.5-2.el7 libX11-common.noarch 0:1.6.5-2.el7
libXau.x86_64 0:1.0.8-2.1.el7 libXaw.x86_64 0:1.0.13-4.el7
libXcursor.x86_64 0:1.1.15-1.el7 libXdamage.x86_64 0:1.1.4-4.1.el7
libXdmcp.x86_64 0:1.1.2-6.el7 libXext.x86_64 0:1.3.3-3.el7
libXfixes.x86_64 0:5.0.3-1.el7 libXfont2.x86_64 0:2.0.3-1.el7
libXft.x86_64 0:2.3.2-2.el7 libXmu.x86_64 0:1.1.2-2.el7
libXpm.x86_64 0:3.5.12-1.el7 libXrender.x86_64 0:0.9.10-1.el7
libXt.x86_64 0:1.1.5-3.el7 libXxf86vm.x86_64 0:1.1.4-1.el7
libepoxy.x86_64 0:1.5.2-1.el7 libfontenc.x86_64 0:1.1.3-3.el7
libglvnd.x86_64 1:1.0.1-0.8.git5baa1e5.el7 libglvnd-glx.x86_64 1:1.0.1-0.8.git5baa1e5.el7
libwayland-server.x86_64 0:1.15.0-1.el7 libxcb.x86_64 0:1.13-1.el7
libxkbfile.x86_64 0:1.0.9-3.el7 libxshmfence.x86_64 0:1.2-1.el7
mesa-libGL.x86_64 0:18.0.5-3.el7 mesa-libgbm.x86_64 0:18.0.5-3.el7
mesa-libglapi.x86_64 0:18.0.5-3.el7 pixman.x86_64 0:0.34.0-1.el7
xkeyboard-config.noarch 0:2.24-1.el7 xorg-x11-server-common.x86_64 0:1.20.1-3.el7
xorg-x11-xkb-utils.x86_64 0:7.7-14.el7

Complete!
#

Da notare il gran numero di pacchetti dipendenti che vengono installati; tra i quali, oltre alle opportune librerie, anche alcuni fonts e Keyboard Mapping.

Con riguardo ai pacchetti installati, da sottolineare che è stato installato il pacchetto xorg-x11-xauth il quale è deputato al controllo delle autorizzazioni dell'utente nella connessione con il X Server.

Aggiungo qualche pacchetto di uso comune

Prima di poter proseguire, installo alcuni pacchetti che mi saranno utili per poter procedere ai passi successivi.

Nella fattispecie, aggiuncerò i seguenti pacchetti, dal repository CD/DVD, utilizzando il solito comando yum.

  • bash-completion
  • net-tools
  • yum-utils
  • vim-enhanced
  • nmap

Questo è più o meno l'esito del comando sul mio terminale:

# yum install -y bash-completion net-tools yum-utils vim-enhanced nmap wget curl net-snmp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.prometeus.net
 * c7-media:
c7-media                                                                                                             | 3.6 kB  00:00:00     
Package 1:bash-completion-2.1-6.el7.noarch already installed and latest version
Package net-tools-2.0-0.24.20131004git.el7.x86_64 already installed and latest version
Package curl-7.29.0-51.el7.x86_64 already installed and latest version
Resolving Dependencies

[Truncated output, too long...]

Transaction Summary
============================================================================================================================================
Install  4 Packages (+36 Dependent packages)
Upgrade  1 Package

Total download size: 25 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/41): gpm-libs-1.20.7-5.el7.x86_64.rpm                                                                             |  32 kB  00:00:01     
(2/41): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm                                                                    | 247 kB  00:00:01     
(3/41): net-snmp-libs-5.7.2-37.el7.x86_64.rpm                                                                        | 749 kB  00:00:00     
(4/41): lm_sensors-libs-3.4.0-6.20160601gitf9185e5.el7.x86_64.rpm                                                    |  42 kB  00:00:01     
(5/41): net-snmp-5.7.2-37.el7.x86_64.rpm                                                                             | 331 kB  00:00:01     
(6/41): nmap-ncat-6.40-16.el7.x86_64.rpm                                                                             | 206 kB  00:00:00     
(7/41): perl-Data-Dumper-2.145-3.el7.x86_64.rpm                                                                      |  47 kB  00:00:00     
(8/41): nmap-6.40-16.el7.x86_64.rpm                                                                                  | 3.9 MB  00:00:02     
(9/41): perl-Exporter-5.68-3.el7.noarch.rpm                                                                          |  28 kB  00:00:00     
(10/41): perl-File-Path-2.09-2.el7.noarch.rpm                                                                        |  26 kB  00:00:00     
(11/41): perl-File-Temp-0.23.01-3.el7.noarch.rpm                                                                     |  56 kB  00:00:00     
(12/41): perl-Filter-1.49-3.el7.x86_64.rpm                                                                           |  76 kB  00:00:00     
(13/41): perl-Carp-1.26-244.el7.noarch.rpm                                                                           |  19 kB  00:00:02     
(14/41): perl-Getopt-Long-2.40-3.el7.noarch.rpm                                                                      |  56 kB  00:00:00     
(15/41): net-snmp-agent-libs-5.7.2-37.el7.x86_64.rpm                                                                 | 705 kB  00:00:04     
(16/41): perl-PathTools-3.40-5.el7.x86_64.rpm                                                                        |  82 kB  00:00:00     
(17/41): perl-Encode-2.51-7.el7.x86_64.rpm                                                                           | 1.5 MB  00:00:01     
(18/41): perl-Pod-Perldoc-3.20-4.el7.noarch.rpm                                                                      |  87 kB  00:00:00     
(19/41): perl-Pod-Usage-1.63-3.el7.noarch.rpm                                                                        |  27 kB  00:00:00     
(20/41): perl-Pod-Simple-3.28-4.el7.noarch.rpm                                                                       | 216 kB  00:00:00     
(21/41): perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm                                                              |  36 kB  00:00:00     
(22/41): perl-Socket-2.010-4.el7.x86_64.rpm                                                                          |  49 kB  00:00:00     
(23/41): perl-Text-ParseWords-3.29-4.el7.noarch.rpm                                                                  |  14 kB  00:00:00     
(24/41): perl-Storable-2.45-3.el7.x86_64.rpm                                                                         |  77 kB  00:00:00     
(25/41): perl-Time-HiRes-1.9725-3.el7.x86_64.rpm                                                                     |  45 kB  00:00:00     
(26/41): perl-Time-Local-1.2300-2.el7.noarch.rpm                                                                     |  24 kB  00:00:00     
(27/41): perl-constant-1.27-2.el7.noarch.rpm                                                                         |  19 kB  00:00:00     
(28/41): perl-libs-5.16.3-293.el7.x86_64.rpm                                                                         | 688 kB  00:00:00     
(29/41): perl-HTTP-Tiny-0.033-3.el7.noarch.rpm                                                                       |  38 kB  00:00:00     
(30/41): perl-macros-5.16.3-293.el7.x86_64.rpm                                                                       |  44 kB  00:00:00     
(31/41): perl-parent-0.225-244.el7.noarch.rpm                                                                        |  12 kB  00:00:00     
(32/41): perl-Pod-Escapes-1.04-293.el7.noarch.rpm                                                                    |  51 kB  00:00:01     
(33/41): perl-threads-shared-1.43-6.el7.x86_64.rpm                                                                   |  39 kB  00:00:00     
(34/41): perl-podlators-2.5.1-3.el7.noarch.rpm                                                                       | 112 kB  00:00:00     
(35/41): vim-enhanced-7.4.160-5.el7.x86_64.rpm                                                                       | 1.0 MB  00:00:00     
(36/41): vim-filesystem-7.4.160-5.el7.x86_64.rpm                                                                     |  10 kB  00:00:00     
(37/41): perl-threads-1.87-4.el7.x86_64.rpm                                                                          |  49 kB  00:00:00     
(38/41): wget-1.14-18.el7.x86_64.rpm                                                                                 | 547 kB  00:00:00     
(39/41): yum-utils-1.1.31-50.el7.noarch.rpm                                                                          | 121 kB  00:00:00     
(40/41): perl-5.16.3-293.el7.x86_64.rpm                                                                              | 8.0 MB  00:00:06     
(41/41): vim-common-7.4.160-5.el7.x86_64.rpm                                                                         | 5.9 MB  00:00:04     
--------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                       2.4 MB/s |  25 MB  00:00:10     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : lm_sensors-libs-3.4.0-6.20160601gitf9185e5.el7.x86_64                                                                   1/42
  Installing : 1:net-snmp-libs-5.7.2-37.el7.x86_64                                                                                     2/42
  Installing : 1:perl-parent-0.225-244.el7.noarch                                                                                      3/42
  Installing : perl-HTTP-Tiny-0.033-3.el7.noarch                                                                                       4/42
  Installing : perl-podlators-2.5.1-3.el7.noarch                                                                                       5/42
  Installing : perl-Pod-Perldoc-3.20-4.el7.noarch                                                                                      6/42
  Installing : 1:perl-Pod-Escapes-1.04-293.el7.noarch                                                                                  7/42
  Installing : perl-Encode-2.51-7.el7.x86_64                                                                                           8/42
  Installing : perl-Text-ParseWords-3.29-4.el7.noarch                                                                                  9/42
  Installing : perl-Pod-Usage-1.63-3.el7.noarch                                                                                       10/42
  Installing : 4:perl-macros-5.16.3-293.el7.x86_64                                                                                    11/42
  Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                                                                                  12/42
  Installing : perl-Exporter-5.68-3.el7.noarch                                                                                        13/42
  Installing : perl-constant-1.27-2.el7.noarch                                                                                        14/42
  Installing : perl-Time-Local-1.2300-2.el7.noarch                                                                                    15/42
  Installing : perl-Socket-2.010-4.el7.x86_64                                                                                         16/42
  Installing : perl-Carp-1.26-244.el7.noarch                                                                                          17/42
  Installing : perl-PathTools-3.40-5.el7.x86_64                                                                                       18/42
  Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64                                                                             19/42
  Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch                                                                                    20/42
  Installing : perl-Storable-2.45-3.el7.x86_64                                                                                        21/42
  Installing : perl-File-Temp-0.23.01-3.el7.noarch                                                                                    22/42
  Installing : perl-File-Path-2.09-2.el7.noarch                                                                                       23/42
  Installing : perl-threads-shared-1.43-6.el7.x86_64                                                                                  24/42
  Installing : perl-threads-1.87-4.el7.x86_64                                                                                         25/42
  Installing : perl-Filter-1.49-3.el7.x86_64                                                                                          26/42
  Installing : 4:perl-libs-5.16.3-293.el7.x86_64                                                                                      27/42
  Installing : perl-Getopt-Long-2.40-3.el7.noarch                                                                                     28/42
  Installing : 4:perl-5.16.3-293.el7.x86_64                                                                                           29/42
  Installing : 1:net-snmp-agent-libs-5.7.2-37.el7.x86_64                                                                              30/42
  Installing : perl-Data-Dumper-2.145-3.el7.x86_64                                                                                    31/42
  Installing : 2:vim-filesystem-7.4.160-5.el7.x86_64                                                                                  32/42
  Installing : 2:vim-common-7.4.160-5.el7.x86_64                                                                                      33/42
  Installing : 2:nmap-ncat-6.40-16.el7.x86_64                                                                                         34/42
  Installing : libxml2-python-2.9.1-6.el7_2.3.x86_64                                                                                  35/42
  Installing : gpm-libs-1.20.7-5.el7.x86_64                                                                                           36/42
  Installing : 2:vim-enhanced-7.4.160-5.el7.x86_64                                                                                    37/42
  Updating   : yum-utils-1.1.31-50.el7.noarch                                                                                         38/42
  Installing : 2:nmap-6.40-16.el7.x86_64                                                                                              39/42
  Installing : 1:net-snmp-5.7.2-37.el7.x86_64                                                                                         40/42
  Installing : wget-1.14-18.el7.x86_64                                                                                                41/42
  Cleanup    : yum-utils-1.1.31-34.el7.noarch                                                                                         42/42
  Verifying  : perl-HTTP-Tiny-0.033-3.el7.noarch                                                                                       1/42
  Verifying  : 2:nmap-6.40-16.el7.x86_64                                                                                               2/42
  Verifying  : 2:vim-enhanced-7.4.160-5.el7.x86_64                                                                                     3/42
  Verifying  : perl-threads-shared-1.43-6.el7.x86_64                                                                                   4/42
  Verifying  : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                                                                                   5/42
  Verifying  : perl-Exporter-5.68-3.el7.noarch                                                                                         6/42
  Verifying  : perl-constant-1.27-2.el7.noarch                                                                                         7/42
  Verifying  : perl-PathTools-3.40-5.el7.x86_64                                                                                        8/42
  Verifying  : 4:perl-macros-5.16.3-293.el7.x86_64                                                                                     9/42
  Verifying  : 1:perl-parent-0.225-244.el7.noarch                                                                                     10/42
  Verifying  : 1:net-snmp-libs-5.7.2-37.el7.x86_64                                                                                    11/42
  Verifying  : perl-File-Temp-0.23.01-3.el7.noarch                                                                                    12/42
  Verifying  : 1:perl-Pod-Simple-3.28-4.el7.noarch                                                                                    13/42
  Verifying  : perl-Time-Local-1.2300-2.el7.noarch                                                                                    14/42
  Verifying  : gpm-libs-1.20.7-5.el7.x86_64                                                                                           15/42
  Verifying  : 1:net-snmp-5.7.2-37.el7.x86_64                                                                                         16/42
  Verifying  : 1:perl-Pod-Escapes-1.04-293.el7.noarch                                                                                 17/42
  Verifying  : perl-Pod-Perldoc-3.20-4.el7.noarch                                                                                     18/42
  Verifying  : 2:vim-common-7.4.160-5.el7.x86_64                                                                                      19/42
  Verifying  : 1:net-snmp-agent-libs-5.7.2-37.el7.x86_64                                                                              20/42
  Verifying  : perl-Socket-2.010-4.el7.x86_64                                                                                         21/42
  Verifying  : perl-Carp-1.26-244.el7.noarch                                                                                          22/42
  Verifying  : perl-Data-Dumper-2.145-3.el7.x86_64                                                                                    23/42
  Verifying  : lm_sensors-libs-3.4.0-6.20160601gitf9185e5.el7.x86_64                                                                  24/42
  Verifying  : libxml2-python-2.9.1-6.el7_2.3.x86_64                                                                                  25/42
  Verifying  : wget-1.14-18.el7.x86_64                                                                                                26/42
  Verifying  : perl-Scalar-List-Utils-1.27-248.el7.x86_64                                                                             27/42
  Verifying  : 2:nmap-ncat-6.40-16.el7.x86_64                                                                                         28/42
  Verifying  : perl-Pod-Usage-1.63-3.el7.noarch                                                                                       29/42
  Verifying  : perl-Encode-2.51-7.el7.x86_64                                                                                          30/42
  Verifying  : perl-Storable-2.45-3.el7.x86_64                                                                                        31/42
  Verifying  : perl-podlators-2.5.1-3.el7.noarch                                                                                      32/42
  Verifying  : yum-utils-1.1.31-50.el7.noarch                                                                                         33/42
  Verifying  : 4:perl-5.16.3-293.el7.x86_64                                                                                           34/42
  Verifying  : perl-File-Path-2.09-2.el7.noarch                                                                                       35/42
  Verifying  : perl-threads-1.87-4.el7.x86_64                                                                                         36/42
  Verifying  : perl-Filter-1.49-3.el7.x86_64                                                                                          37/42
  Verifying  : perl-Getopt-Long-2.40-3.el7.noarch                                                                                     38/42
  Verifying  : perl-Text-ParseWords-3.29-4.el7.noarch                                                                                 39/42
  Verifying  : 4:perl-libs-5.16.3-293.el7.x86_64                                                                                      40/42
  Verifying  : 2:vim-filesystem-7.4.160-5.el7.x86_64                                                                                  41/42
  Verifying  : yum-utils-1.1.31-34.el7.noarch                                                                                         42/42

Installed:
  net-snmp.x86_64 1:5.7.2-37.el7      nmap.x86_64 2:6.40-16.el7      vim-enhanced.x86_64 2:7.4.160-5.el7      wget.x86_64 0:1.14-18.el7     

Dependency Installed:
  gpm-libs.x86_64 0:1.20.7-5.el7                                             libxml2-python.x86_64 0:2.9.1-6.el7_2.3                        
  lm_sensors-libs.x86_64 0:3.4.0-6.20160601gitf9185e5.el7                    net-snmp-agent-libs.x86_64 1:5.7.2-37.el7                      
  net-snmp-libs.x86_64 1:5.7.2-37.el7                                        nmap-ncat.x86_64 2:6.40-16.el7                                 
  perl.x86_64 4:5.16.3-293.el7                                               perl-Carp.noarch 0:1.26-244.el7                                
  perl-Data-Dumper.x86_64 0:2.145-3.el7                                      perl-Encode.x86_64 0:2.51-7.el7                                
  perl-Exporter.noarch 0:5.68-3.el7                                          perl-File-Path.noarch 0:2.09-2.el7                             
  perl-File-Temp.noarch 0:0.23.01-3.el7                                      perl-Filter.x86_64 0:1.49-3.el7                                
  perl-Getopt-Long.noarch 0:2.40-3.el7                                       perl-HTTP-Tiny.noarch 0:0.033-3.el7                            
  perl-PathTools.x86_64 0:3.40-5.el7                                         perl-Pod-Escapes.noarch 1:1.04-293.el7                         
  perl-Pod-Perldoc.noarch 0:3.20-4.el7                                       perl-Pod-Simple.noarch 1:3.28-4.el7                            
  perl-Pod-Usage.noarch 0:1.63-3.el7                                         perl-Scalar-List-Utils.x86_64 0:1.27-248.el7                   
  perl-Socket.x86_64 0:2.010-4.el7                                           perl-Storable.x86_64 0:2.45-3.el7                              
  perl-Text-ParseWords.noarch 0:3.29-4.el7                                   perl-Time-HiRes.x86_64 4:1.9725-3.el7                          
  perl-Time-Local.noarch 0:1.2300-2.el7                                      perl-constant.noarch 0:1.27-2.el7                              
  perl-libs.x86_64 4:5.16.3-293.el7                                          perl-macros.x86_64 4:5.16.3-293.el7                            
  perl-parent.noarch 1:0.225-244.el7                                         perl-podlators.noarch 0:2.5.1-3.el7                            
  perl-threads.x86_64 0:1.87-4.el7                                           perl-threads-shared.x86_64 0:1.43-6.el7                        
  vim-common.x86_64 2:7.4.160-5.el7                                          vim-filesystem.x86_64 2:7.4.160-5.el7                          

Updated:
  yum-utils.noarch 0:1.1.31-50.el7                                                                                                          

Complete!

A questo punto credo di avere tutto il materiale di base necessario.

Macchina Virtuale ?

Se sto installando il mio sistema operativo come Macchina Virtuale (VM) all'interno di un qualsiasi Hypervisor, che si tratti di VmWare™, Virtualbox o meglio ancora di Proxmox, allora avrò bisogno di un agent che permetta alla mia VM di poter essere gestita dal Hypervisor.

Ma gli Hypervisor, non sono mica tutti uguali! Quindi anche gli agent per le VM saranno diversi a seconda dei casi.

Ho voluto qui considerare solo alcuni dei casi di Hypervisor che mi è capitato di approfondire più di altri, e che comunque i pacchetti software relativi agli agent siano già disponibili all'interno della ISO dei sistemi operativi CentOS e Debian.

  • Hypervisor basati su tecnologia VMware™ (ESXi, Workstation, playes, ecc.)
  • Hypervisor basati su tecnologia Qemu (KVM, Libvirt, Proxmox VE, ecc.)

Hypervisor VMware™

Se la mia Macchina Virtuale è un Guest di un Hypervisor VMware™, allora all'interno della mia VM installo il pacchetto open-vm-tools;

# yum install -y open-vm-tools

... ed avvio manualmente il servizio

# systemctl restart vmtoolsd

Hypervisor Qemu

Se la mia Macchina Virtuale è un Guest di un Hypervisor Qemu allora all'interno della mia VM installo il pacchetto qemu-guest-agent;

# yum install -y qemu-guest-agent

... ed avvio manualmente il servizio

# systemctl restart qemu-guest-agent

Altre tenologie di Hypervisor

Nel caso di Hypervisor diversi da quelli elencati qui sopra, devo necessariamente fare affidamento alla documentazione fornita dai vari costruttori sui rispettivi siti.

Se tutto è andato secondo i piani, ora dovrebbe essere possibile gestire shutdown ed altre operazioni di macchina dal Hypervisor.

Anche se in alcuni casi potrebbe essere necessario fare uno shutdown della VM ed un Power-On dalla GUI del Hypervisor, personalmente suggerirei, almeno in questa fase, di avviare 'a mano' (come mostrato nei comandi più sopra) solamente il servizio interessato; poi magari faccio un riavvio definitivo della VM quando avrò completato tutte le operazioni preliminari.

A questo punto, magicamente, dovrebbe essere possibile gestire la mia VM dalla GUI del Hyervisor, oltre, ovviamente a poter  ottenere alcune cruciali informazioni sullo stato, mentre la VM è in esecuzione.

Configuro la rete con 'ifconfig' e 'nmcli'

Ci sono molti modi per configurare la connessione di rete; quello preferito da molti è sicuramente il setup che si può fare tramite le app del Desktop Manager. Ma abbiamo già detto che non avremo nessun aiuto dal Desktop Manager, semplicemente perché non è installato. Quindi?

Ebbene, un sistema Linux "minimale" contiene almeno gli strumenti minimi indispensabili per le operazioni di base e tra questi c'è sicuramente NetworkManager.

NetworkManager è un tool che può fare più o mento tutto con le connessioni di rete; sia che si tratti di connessioni ethernet, che WiFi, che VPN. Ma a me al momento interessa solo configurare la mia connessione Ethernet in modo che possa connettere il mio server almeno alla rete Intranet.

Per interagire con NetworkManager è disponibile una interfaccia a linea di comando nmcli, tramite la quale si può fare qualsiasi cosa con le connessioni di rete.

Voglio innanzi tutto sapere se è in esecuzione con il comando systemctl status NetworkManager.

# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since lun 2019-06-10 20:37:50 CEST; 1min 23s ago
Docs: man:NetworkManager(8)
Main PID: 4524 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
├─4524 /usr/sbin/NetworkManager --no-daemon
└─4543 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclien...

giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.2586] device (eth0): state change: ip-config -> ip-check (reaso...ssume')
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.2604] device (eth0): state change: ip-check -> secondaries (rea...ssume')
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.2609] device (eth0): state change: secondaries -> activated (re...ssume')
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.2615] manager: NetworkManager state is now CONNECTED_LOCAL
giu 10 20:37:56 centauro dhclient[4543]: bound to 192.168.0.241 -- renewal in 2927 seconds.
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.2974] manager: NetworkManager state is now CONNECTED_SITE
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.2977] policy: set 'eth0' (eth0) as default for IPv4 routing and DNS
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.3136] device (eth0): Activation: successful, device activated.
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.3151] manager: NetworkManager state is now CONNECTED_GLOBAL
giu 10 20:37:56 centauro NetworkManager[4524]: [1560191876.3163] manager: startup complete
Hint: Some lines were ellipsized, use -l to show in full.

OK, questa è la conferma che è già in esecuzione!

Ovviamente, se così non fosse, utilizzo un paio di comandi per attivarlo subito:

# systemctl start NetworkManager

... E fare in modo che si avii ad ogni Boot del sistema.

# systemctl enable NetworkManager
Created symlink from /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service to /usr/lib/systemd/system/NetworkManager.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/NetworkManager.service to /usr/lib/systemd/system/NetworkManager.service.
Created symlink from /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service to /usr/lib/systemd/system/NetworkManager-dispatcher.service.
Created symlink from /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service to /usr/lib/systemd/system/NetworkManager-wait-online.service.

Fin qui, tutto semplice.

Ora bisogna configurare la connessione Ethernet. Uso il comando ifconfig per vedere (installato con il pacchetto net-tools) per vedere lo stato attuale:

# ifconfig
eth0: flags=4163<up,broadcast,running,multicast> mtu 1500
inet 192.168.0.241 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::6093:33ff:fe22:c151 prefixlen 64 scopeid 0x20
ether 62:93:33:22:c1:51 txqueuelen 1000 (Ethernet)
RX packets 37353 bytes 36903755 (35.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16687 bytes 1504809 (1.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<up,loopback,running> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Da questo ho la conferma che durante l'installazione del sistema è stata utilizzata l'interfaccia ethernet eth0, e che questa è configurata con in modo di acquisire un indirizzo IP della rete da un server DHCP.

Questo può essere determinato facilmente con il comando : grep -i BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-eth0.

# grep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-eth0 
BOOTPROTO="dhcp"

Oppure utilizzo il comando: nmcli nmcli connection show eth0, che mi ritorna tutto (ma proprio tutti) i parametri dell'interfaccia, oltre ad altre preziose informazioni sull'utilizzo.

Per impostare un indirizo IP specifico della connessione ethernet eth0, il Dns la rotta predefinita (default route). utilizzo i seguenti comandi nmcli:

# nmcli connection modify eth0 connection.autoconnect yes
# nmcli connection modify eth0 ipv4.addresses 192.168.0.242
# nmcli connection modify eth0 ipv4.dns "192.168.0.253 8.8.8.8 8.8.4.4"

Infine attivo i parametri appena definiti per il profilo di questa connessione:

# nmcli con down eth0 ; nmcli con up eth0
Connection 'eth0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Aggiungo repository 'Epel'

Osesei definirlo "Quel magico repository di cui non si può fare a meno".

EPEL (Extra Packages for Enterprise Linux) è un repository open source gratuito, alimentato dalla comunità e gestito e mantenuto dal Team di Fedora che fornisce pacchetti software di qualità per le distribuzioni Linux basate su RHEL (Red Hat Enterprise Linux), CentOS e Scientific Linux. Il progetto Epel non fa parte di RHEL/CentOS ma è espressamente pensato per fornire un gran numero di pacchetti software per queste distribuzioni.

Aggiungere il repository Epel di fatto si riduce alla installazione un pacchetto software come quasiasi altro; soltanto che, non facendo parte della distribuzione CentOS appena installata, dovremo prima scaricarlo dalla rete internet con il comando wget.

# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
--2019-06-10 18:47:34-- http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Resolving dl.fedoraproject.org (dl.fedoraproject.org)... 209.132.181.23, 209.132.181.24, 209.132.181.25
Connecting to dl.fedoraproject.org (dl.fedoraproject.org)|209.132.181.23|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15080 (15K) [application/x-rpm]
Saving to: ‘epel-release-latest-7.noarch.rpm’

100%[==================================================================================================>] 15,080 82.6KB/s in 0.2s

2019-06-10 18:47:40 (82.6 KB/s) - ‘epel-release-latest-7.noarch.rpm’ saved [15080/15080]

Ora posso installare il repository con yum come un qualsiasi pacchetto software

# yum localinstall -y epel-release-latest-7.noarch.rpm 
Loaded plugins: fastestmirror
Examining epel-release-latest-7.noarch.rpm: epel-release-7-11.noarch
Marking epel-release-latest-7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
epel-release noarch 7-11 /epel-release-latest-7.noarch 24 k

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

Total size: 24 k
Installed size: 24 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-11.noarch 1/1
Verifying : epel-release-7-11.noarch 1/1

Installed:
epel-release.noarch 0:7-11

Complete!

 

Notare che ho utilizzato l'argomento localinstall, poiché sto installando direttamente da un file rpm locale.

Preparo qualche utilissimo 'alias' per i comandi semplificati

Per semplificare alcuni comandi, normalmente utilizzo degli alias della bash (l'interprete dei comandi predefinito di Linux). Questo perché alcuni comandi possono essere complessi ed avere un discreto numero di argomenti non sempre facili da ricordare.

Gli alias possono essere definiti 'on-the-fly' (al volo) nel proprio ambiente con il comando alias. Tuttavia questo è un modo poco efficace, in quanto vengono perduti alla disconnessione dalla bashad ed a ogni nuovo login dovremo ridefinirli.

Un efficace modo per avere i miei alias sempre disponibili consiste nel trascriverli nel file ~/.bashrc, ossia, nel file che viene eseguito ad ogni nuovo login.

Alcuni degli alias che amo portare sempre con me ed averli a portata di mano in qualsiasi momento, sono quelli riportati qui sotto ed aggiunti a quelli già esistenti nel file ~/.bashrc.

# Additional useful aliases by dpm in ~/.bashrc
alias ll='ls -o --color=never'
alias mv='mv -i'
alias cp='cp -i'
alias rm='rm -i'
alias less='less -Sr'
alias scp='scp -p'
alias ssh='ssh -2 -C'
alias yum='yum --disablerepo=\* --enablerepo=c7-media'
alias lesscon='less -S /var/log/messages'
alias tailcon='tail -f /var/log/messages'
alias tailjournal='journalctl -f'
alias tailsql='tail -f /var/log/mariadb/mariadb.log'
alias tailsys='journalctl -f'
alias dmesg='dmesg -wH -T'
alias vi=vim

Per aggiungere li alias descritti qui sopra, utilizzare l'editor di testi preferito: vi, nano, o qualsiasi altro editor di testi che non inserisca caratteri di formattazione all'interno del file.

Conclusioni

Il sistema è ora pronto per la fase successiva: ossia per installare tutti i servizi che questo server dovrà erogare.

Può sembrare banale, ma portare un server al questo livello è assai utile; soprattutto se questa procedura viene ripetuta in modo molto simile per tutti i server che si installano. In questo modo posso essere sicuro che un server che ho installato io avrà sempre tutto il necessario a portata di mano.

Mi auguro che questo post sia stato utile per coloro che, come me, si ritrovano a dover installare ed attivare molti server: poter disporre di un buon punto di partenza collaudato può essere un bun inizio.

E si sa: "Chi ben comincia è già a metà dell'opera".

Lascia un commento

Tutti i commenti dovranno essere verificati ed approvati dal webmaster, prima di essere pubblicati

 

Quote of the Day

Se pensi in termini di anni, pianta un seme;
se pensi in termini di decenni, pianta alberi;
se pensi in termini di centenni, insegna alla gente.

Confucio

Chi è online

Abbiamo 383 visitatori e nessun utente online

Newsletter

Per essere sempre aggiornato sulle ultime novità del sito.
Go to top