Menu Chiudi

Come eseguire le operazioni preliminari in un server CentOS 7

operazioni preliminari 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 CentOS 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.

I Passi da seguire

Entriamo subito nel vivo dell’argomento e cerchiamo di mettere in fila tute le cose da fare.

Definisco un mio ‘prompt’ personalizzato

Il prompt della shell di linux (tipicamente una bash)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:

  • Il login name: ossia lo username che ho utilizzato per il login;
  • Il nome host sul quale mi trovo: utilissimo se ho molte connessioni contemporanee dal mio client su diverse macchine.;
  • La directory corrente: per capire “al-volo” in quale cartella mi trovo;
  • Il numero di sequenza del prossimo comando;
  • 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]'

Successivamente aggiungerò questa stessa riga al file ~/.bashrc dell’utente root, oppure nel file ~/.bash_profile degli utenti non-root, 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.

# hostnamectl

Il quale, invocato senza argomenti, ritorna molte utili informazioni sul sistema; come mostrato qui sotto:

# 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 addirittura 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 (in modo che al prossimo avvio del sistema esso non verrà avviato automaticamente) con il comando:

# systemctl set-default multi-user.target

di cui, questo è il risultato del comando:

# 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

del quale, qui sotto è mostrato il risultato:

# 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.

# mkdir /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, in alternativa (che poi è la stessa cosa):

# mount /dev/sr0

che produce questo risultato:

# 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.

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

Notare che ho evidenziato in grassetto 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 origine, 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

che è mostrato qui sotto:

# 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 

Per iniziare, disabilito tutti i repository con il comando:

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 \*

di cui, questo è il risultato:

# 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]...

Quindi, abilito unicamente il repository c7-media con il comando:

# yum-config-manager --enable c7-media

… E questo è il risultato

# 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 e updates per permettere almeno 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
 ... [Listato omesso poiché molto lungo]...
 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, aggiungerò i seguenti pacchetti, dal repository CD/DVD, utilizzando il solito comando yum.

  • bash-completion
  • net-tools
  • yum-utils
  • vim-enhanced
  • nmap
  • wget
  • curl
  • net-snmp

Esegui quindi:

# yum install -y bash-completion net-tools yum-utils vim-enhanced nmap wget curl net-snmp

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   
 ….. [Listato omesso poiché molto lungo]…
 (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
 ….. [Listato omesso poiché molto lungo]…
 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

# systemctl enable vmtoolsd
# 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

… poi abilito ed avvio manualmente il servizio

# systemctl enable qemu-guest-agent
# 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

Ci sono vari modi per configurare la rete, nel modo desiderato, di un server CentOS 7; dipende principalmente da cosa si vuole ottenere, ma anche dai gusti personali:

  • Configurazione con NetworkManager;
  • Configurazione manuale.

Configurazione con NetworkManager

Il sistema preferito da molti per configurare la connessione di rete è 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, anche se “minimale”, contiene almeno gli strumenti minimi indispensabili per le operazioni di base e tra questi c’è sicuramente NetworkManager, e quindi il tool nmcli che permette di agire sulla configurazione tramite la command line.

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, quindi eseguo:

Condividi
Leggi anche:   Colored prompt on bash console

Lascia un commento