Strumenti Utente

Strumenti Sito


test:pidora

Test PIDORA

traduzione del wiki orginale tratto da https://fedoraproject.org/wiki/Raspberry_Pi#Downloading_the_Fedora_ARM_image
The Raspberry Pi only boots from the first partition of an SD card, that needs additionally be FAT32 formated. This partition will be mounted to /boot/ later and contains the kernel, 2nd stage bootlader, etc. A size of 128 MB is sufficient.
Scaricare la distro server in questo caso:

wget http://stefanostrozzi.it/fedora/Fedora-Server-armhfp-24-1.2-sda.raw

Piccola parentesi per scaricare i repo totali

rsync -vaH rsync://fedora.mirrors.ovh.net/download.fedora.redhat.com/linux/releases/24/Server/armhfp/os fed

oppure come esempio

rsync -vtr --progress --exclude debug/ rsync://mirror.pnl.gov/epel/7/x86_64/ epel

Scarichiamo anche il repo di zoneminder:

reposync --repoid=zmrepo --download_path=/var/www/mirror/fed/os/

Chiaramente questo comando può funzionare solo se è già stato installato il pacchetto zmrepo-24-1.fc24.noarch.rpm precedentemente scarico dal mirror ufficiale di zoneminder.
QUesto comando reposync credo si possa usare anche con i pacchetti fedora anzichè l'rsync
Dopo aver scaricato i pacchetti si potrebbe anche usare il comando createrepo per creare il repository locale ma mi sembra che funzioni anche senza farlo
Automaticamente creerà una nuova directory con il nome del repo.

e creiamo il file /etc/yum.repos.d/zmrepo.repo

[zmrepo]
name=Zoneminder and its dependencies for Fedora $releasever - $basearch
#baseurl=http://zmrepo.connortechnology.com/f/$releasever/$basearch
baseurl=http://stefanostrozzi.it/fedora/zmrepo
#        http://67.53.78.182/f/$releasever/$basearch
#        http://zmrepo.mehvc.com/f/$releasever/$basearch
#mirrorlist=http://zmrepo.mehvc.com/f/$releasever/$basearch
enabled=1
gpgcheck=0
# zmrepo uses packages from other repos
# Import all required gpg keys
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-$releasever-zmrepo
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zmrepo

Ho tolto anche il gpgcheck perchè le chiavi non sono quelle originali

Per creare un mirror o un repository personalizzato

dnf install yum-utils

e usare reposync
Comuque al momento penso di aver capito che nelle precedenti prove ho scaricato l'immagine per l'armhpf poi i pacchetti sono stati installati dal repo “Everything” quindi ho forse inconsapevolmente installato pacchetti che non erano solo server. Invece nelle prossime prove creerò il mio repo con solo pacchetti server.
Pertanto dopo aver scaricato con l'rsync solo i repo relativi la versione “server” costruisco la mia pagina web per scaricare in fase di installazione dal mio repo solo gli rpm server.
Creare quindi in /etc/httpd/conf.d/fedora_mirror.conf

Alias /fedora /var/www/mirror/fed/os

AddType application/octet-stream .rpm

<Directory /var/www/mirror/fed/os>
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

<LocationMatch "\.(xml|xml\.gz|xml\.asc|sqlite)">
    Header set Cache-Control "must-revalidate"
    ExpiresActive On
    ExpiresDefault "now"
</LocationMatch>

e inoltre modificare il file /etc/yum.repos.d/fedora.repo nei seguenti punti:

name=Fedora
baseurl=http://stefanostrozzi.it/fedora/

commentare il metalink

#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

In questo modo si potrànno avere a disposizione tutti i pacchetti necessari. Ma c'è ancora da sistemare gli update che per il momento escludiamo.

La Raspberry pi effettua il boot dalla prima partizione di una SD card, necessariamente formattata con la FAT32. Late partizione sarò montata su /boot/ e conterrà il kernel, il bootloader di secondo livello, ecc.. Una dimensione di 128M è sufficiente.

Qui occorre creare tre partizioni:
una di \ (root) dimensione a piacere
una di \boot di circa 128M
e una di swap in base alla ram ad es la pi2 ha un gb di ram quindi si può fare di 2G

procedimento:

  fdisk> Command (m for help): n
       Partition type
          p   primary (0 primary, 0 extended, 4 free)
          e   extended (container for logical partitions)
       Select (default p): p
       Partition number (1-4, default 1): 1
       First sector (32-31422463, default 32): 
       Last sector, +sectors or +size{K,M,G,T,P} (32-31422463, default 31422463): +128M        

       Created a new partition 1 of type 'Linux' and of size 128 MiB.

Cambiamo il tipo di partizione:

fdisk> Command (m for help): t
     Selected partition 1
     Partition type (type L to list all types): b
     Changed type of partition 'Linux' to 'W95 FAT32'.

per ottenere quindi:

fdisk> Command (m for help): p
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors                 
Units: sectors of 1 * 512 = 512 bytes                                           
Sector size (logical/physical): 512 bytes / 512 bytes                           
I/O size (minimum/optimal): 512 bytes / 512 bytes                               
Disklabel type: dos                                                             
Disk identifier: 0x930a4334                                                     
                                                                                
Device     Boot Start    End Sectors  Size Id Type                              
/dev/sda1        2048 264191  262144  128M  b W95 FAT32

e quindi la seconda partizione:

fdisk> Command (m for help): n
Partition type
p   primary (1 primary, 0 extended, 3 free)
e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (262177-31422463, default 262177): 
Last sector, +sectors or +size{K,M,G,T,P} (262177-31422463, default 31422463): +2G
Created a new partition 2 of type 'Linux' and of size 2 GiB.

Cambiamo il tipo di partizione:

fdisk> Command (m for help): t
Selected partition 2
Partition type (type L to list all types):  82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.

la partizione di root:

Command (m for help): n                                                         
Partition type                                                                  
 p   primary (2 primary, 0 extended, 2 free)                                  
 e   extended (container for logical partitions)                              
Select (default p): p                                                           
Partition number (3,4, default 3):                                              
First sector (4458496-234441647, default 4458496):                              
Last sector, +sectors or +size{K,M,G,T,P} (4458496-234441647, default 234441647)
: +10G                                                                          
                                                                              
Created a new partition 3 of type 'Linux' and of size 10 GiB.

Lasciamo invariato il tipo di file system.

Command (m for help): p                                                         
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors                 
Units: sectors of 1 * 512 = 512 bytes                                           
Sector size (logical/physical): 512 bytes / 512 bytes                           
I/O size (minimum/optimal): 512 bytes / 512 bytes                               
Disklabel type: dos                                                             
Disk identifier: 0x930a4334                                                     
                                                                                
Device     Boot   Start      End  Sectors  Size Id Type                         
/dev/sda1          2048   264191   262144  128M  b W95 FAT32                    
/dev/sda2        264192  4458495  4194304    2G 82 Linux swap / Solaris         
/dev/sda3       4458496 25430015 20971520   10G 83 Linux               

Ora faccio la prova di aggiungere una partizione estesa e quindi le partizioni logiche per drbd gfs ecc.

Command (m for help): n                                                         
Partition type                                                                  
   p   primary (3 primary, 0 extended, 1 free)                                  
   e   extended (container for logical partitions)                              
Select (default e): e                                                           
                                                                                
Selected partition 4                                                            
First sector (25430016-234441647, default 25430016):                            
Last sector, +sectors or +size{K,M,G,T,P} (25430016-234441647, default 234441647):                                                                              
                                                                                
Created a new partition 4 of type 'Extended' and of size 99.7 GiB.              
                                                                                                                              
Command (m for help): n                                                         
All primary partitions are in use.                                              
Adding logical partition 5                                                      
First sector (25432064-234441647, default 25432064):                            
Last sector, +sectors or +size{K,M,G,T,P} (25432064-234441647, default 234441647
): +5G                                                                          
                                                                                
Created a new partition 5 of type 'Linux' and of size 5 GiB.                    
                                                                                
Command (m for help): p                                                         
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors                 
Units: sectors of 1 * 512 = 512 bytes                                           
Sector size (logical/physical): 512 bytes / 512 bytes                           
I/O size (minimum/optimal): 512 bytes / 512 bytes                               
Disklabel type: dos                                                             
Disk identifier: 0x930a4334                                                     
                                                                                
Device     Boot    Start       End   Sectors  Size Id Type                      
/dev/sda1           2048    264191    262144  128M  b W95 FAT32                 
/dev/sda2         264192   4458495   4194304    2G 82 Linux swap / Solaris    
/dev/sda3        4458496  25430015  20971520   10G 83 Linux                     
/dev/sda4       25430016 234441647 209011632 99.7G  5 Extended                  
/dev/sda5       25432064  35917823  10485760    5G 83 Linux                                                                       
                                                                

Formattiamo tutte e 4 le partizioni per ottenere l'UUID:

mkfs.vfat /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda5
blkid |grep sda
/dev/sda1: SEC_TYPE="msdos" UUID="C558-28C5" TYPE="vfat" PARTUUID="930a4334-01"
/dev/sda2: UUID="2ea4625c-def5-48a8-ad25-9d0046d6f492" TYPE="swap" PARTUUID="930a4334-02"
/dev/sda3: UUID="0f59b114-6db0-4d90-87e9-bece24926f98" TYPE="ext4" PARTUUID="930a4334-03"
/dev/sda5: UUID="1515dea1-cfe1-4e35-93ab-45d852ab3182" TYPE="ext4" PARTUUID="930a4334-05"

trasferimento file su sdcard

posizionarsi nella directory contenente l'immagine Fedora-Server-armhfp-24-1.2-sda.raw

#mkdir /tmp/img

#losetup --partscan --find --show Fedora-Server-armhfp-23-10-sda.raw
/dev/loop0
#mount -r /dev/loop0p3 /tmp/img/

#mkdir /tmp/rpi/

#mount /dev/sdb3 /tmp/rpi/

#mkdir /tmp/rpi/boot/

#mount /dev/sdb1 /tmp/rpi/boot/

#cp -rpv /tmp/img/* /tmp/rpi/

#sync

#umount /tmp/img

#losetup -d /dev/loop0

#blkid | grep mmcblk0
/dev/sdb1: SEC_TYPE="msdos" UUID="4745-6309" TYPE="vfat"
/dev/sdb2: UUID="47a973f6-1d66-4c4b-a40d-01e2647dc9d0" TYPE="swap"
/dev/sdb3: UUID="74ac8953-9f6b-416d-b8ea-005e9e1cf50f" TYPE="ext4"

#vi /tmp/rpi/etc/fstab
UUID=74ac8953-9f6b-416d-b8ea-005e9e1cf50f  / ext4    defaults,noatime 0 0     #/dev/sdb3 dal pc che sto usando, ma sarà /dev/mmcblk0p3
UUID=4745-6309  /boot vfat    defaults,noatime 0 0                            #/dev/sdb1
UUID=47a973f6-1d66-4c4b-a40d-01e2647dc9d0  swap swap    defaults,noatime 0 0  #/dev/sdb2

installare curl e scaricare il firmware da github

#curl -L -o raspberry-firmware.zip https://github.com/raspberrypi/firmware/archive/master.zip

#unzip raspberry-firmware.zip

#cp -r firmware-master/boot/* /tmp/rpi/boot/
#cp -r firmware-master/modules/* /tmp/rpi/lib/modules/

#vi /tmp/rpi/boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait
#umount /tmp/rpi/boot/

#umount /tmp/rpi/

#sync

smontare la microSD e avviare il RPi
apparirà la seguente videata che guida l'utente alla configurazione del primo avvio:

Initial setup of Fedora 24 (Server Edition)

1) [x] Language settings            2) [!] Timezone settings
       (English (United States))           (Timezone is not set.)
3) [x] Network Configuration        4) [!] Root Password
       (Wired (eth0) connected)            (Password is not set.)
5) [!] User creation
       (No user will be created)
Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]:

La [x] sta ad indicare il valore settato e di default propone l'inglese, ma noi scegliamo l'italiano e il nostro timezone digitando '1' per entrare nel menù di configurazione della lingua

Please select language support to install:31

e poi ancora “1” per il sottotipo
se siamo soddifatti andiamo avanti altrimenti procediamo allo stesso modo per le altre opzioni
Da specificare che al numero 3 quando dice che la rete è configurata si intende che è stato assegnato un indirizzo dal DHCP. L'indirizzo verrà svelato al momento del primo login.
infine premiamo “c”
La cosa carina di questa versione server è la “Admin Console” di gestione web che viene indicata al momento del primo login
Viene specificato nel seguente modo l'url a cui collegarsi:

Admin Console: https://xxx.xxx.xxx.xxx:9090/

preparazione storage ridondante DRBD

Ora sto facendo delle prove per vedere i vari pacchetti software a disposizione prima e dopo gli update:
ad esempio ora ci sarebbe da installare drbd che di base la Fedora 24 fornisce già pacchettizzato alla versione 8.9.6-2.fc24
Ma drbd richiede come dipendenza anche il perl che però allo stato attuale è disponibile la 5.55.5 rilascio 359 sul repo fedora (base) e 362 sul repo (update)
quindi se lascio attivo il repo update dnf installerà l'ultimo pacchetto disponibile sul repo updates.
Per prove questa volta decido di disabilitare gli update. e installiamo subito drbd per vedere mano a mano che vado avanti se ci sono dei problemi con gli aggiornamenti.

dnf info drbd

  Nome        : drbd
Arch        : armv7hl
Epoca       : 0
Versione    : 8.9.6
Rilascio    : 2.fc24
Dim.        : 20 k
Repo        : fedora
Sommario    : DRBD user-land tools and scripts
URL         : http://www.drbd.org/
Licenza     : GPLv2+
Descrizione : DRBD refers to block devices designed as a building block to form
            : high availability (HA) clusters. This is done by mirroring a whole
            : block device via an assigned network. DRBD can be understood as
            : network based raid-1.
            : 
            : This is a virtual package, installing the full user-land suite.

installare drbd:

dnf install drbd

Considerato che dobbiamo realizzare un cluster disabilitare all'avvio drbd poichè saraà pacemaker ad avviarlo quando necessario

chkconfig drbd off

creare su ciascun disco una partizione della stessa dimensione da dedicare a drdb, senza formattarla.

effettuare solo le seguenti modifiche al file /etc/drbd.d/globalcommon.con
sezione global

usage-count yes;

sezione common - handlers

pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";

sezione common - startup

wfc-timeout 60;
degr-wfc-timeout 120;

sezione common - net

after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;

creare le risorse secondo il seguente schema:

risorsa.res
  resource r0 {
 
  on nodo1 {
   device    /dev/drbd0;
   disk      /dev/sda5;
   address   192.168.1.117:7788;
   meta-disk internal;
   }
 
  on nodo2 {
   device    /dev/drbd0;
   disk      /dev/sda5;
   address   192.168.1.118:7788;
   meta-disk internal;
   }
  }

Ora che abbiamo definito il file global_common e le risorse nel file “res” possiamo inizializzare lo spazio dei metadati creando il dispositivo drbd0 richiamando il nome della risorsa indicato all'interno del file res

drbdadm create-md r0
  1. -== Thank you for participating in the global usage survey ==–

The server's response is:

you are the 389th user to install this version
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
success

risorsa per mysql

drbd0
sul quale montare la directory /var/lib/mysql

risorsa per il web

Drbd1
sul quale montare la directory /var/www/html

risorsa per le mail

drbd2
sul quale montare la directory /var/vmail

Prima di avviare il servizio assicuriamoci che le porte per il servizio drbd siano aperte (infatti con fedora il firewall è sempre attivo) usiamo il seguente comando per verificare i servizi attivi:

firewall-cmd --list-service
cockpit dhcpv6-client mdns ssh

Infatti manca il drbd, ma se volessimo provare ad aggiungerlo con:

firewall-cmd --add-service=drbd --permanent

otteniamo un errore perchè drbd è stato disabilitato all'avvio del sistema, quindi andremo ad abilitare a mano a mano le porte che ci servono per le nostre risorse:

firewall-cmd --add-port=7788/tcp --permanent

applicare con:

firewall-cmd --reload

e verifichiamo con

firewall-cmd --list-port

Ora possiamo avviare il servizio

service drbd start

ora possiamo avviare la sincronizzazione tra i due dispositivi a blocchi con il seguente comando:

drbdadm -- --overwrite-data-of-peer primary r0

dove r0 è il nome della risorsa già definita.

Con questa versione di fedora non è disponibile il vecchio comando “service drbd status” che permette di controllare lo stato della sincronizzazione e di collegamento, quindi si usa il seguente comando:

cat /proc/drbd

il cui output è simile al seguente:

version: 8.4.5 (api:1/proto:86-101)
srcversion: D496E56BBEBA8B1339BB34A 
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
   ns:774220 nr:0 dw:0 dr:774240 al:0 bm:0 lo:7 pe:22 ua:8 ap:0 ep:1 wo:f oos:3420604
	[==>.................] sync'ed: 18.5% (3420604/4194140)K
	finish: 0:06:04 speed: 9,384 (7,972) K/sec

Sembra che non sia necessario specificare l'associazione nome ip nel file hosts

Per essere certi di quello che abbiamo a disposizione usiamo il seguente comando che ci mostrerà l'elenco de dischi disponibili:

fdisk -l

Tra questi dovrebbe esserci anche il nostro /dev/drbd0 e lo formatteremo in ext4 con il seguente comando:

mkfs.ext4 /dev/drbd0

…mmhh non abbiamo parlato di partizioni… ho dei dubbi.

directory cluster

Ora dobbiamo creare una directory nella quale montare il nostro dispositivo drbd clusterizzato. In questa directory verranno posizionati tutti quei file dei programmi e dei software che dovremo sempre rendere disponibili. Pertanto:

mkdir /cluster

Vedremo tra poco come trasformare questa directory in risorsa da clusterizzare e quindi abbinare al nostro dispositivo drbd.
Prima però dobbiamo preparare i software più importanti cominciando dalla suite Corosync+Pacemaker.

Installazione Pacemaker

Sto facendo delle prove senza i repo update, per curiosità, per vedere poi se aggiornando succede qualche casino. Il seguente comando installa automaticamente tutto quello di cui c'è bisogno quindi Corosync, pacemaker e pcsd. POi forse un giorno spiegherò a cosa server ciascun programma

dnf install pcs

Potevo farlo con il precedente comando ma per studio lo faccio un po' per volta, ad installare il modulo drbd-pacemaker che è il resource agent che permette al cluster di gestire correttamente la risorsa drbd al nostro cluster in HA.

dnf install drbd-pacemaker

Può essere utile capire a che punto sono i nostri servizi, se abilitati disabilitati, avviati, o non partiti o altro…
Può essere utile il seguente comando:

systemctl list-unit-files

oppure:

systemctl -t service -a

L'installazione di pacemaker ha creato un nuovo utente chiamato hacluster.Vedremo tra poco a cosa serve

Quindi avviamo il servizio pcsd:

systemctl start pcsd.service

Credo che pcsd permetta di eseguire il comando pcs che di fatto crea il cluster, la comunicazione e gestisce tutte le risorse.
Ora dobbiamo mettere in comunicazione i due nodi pertanto il servizio pcsd deve essere attivo su entrambi.
Anche qui è necessario far aprire al firewall le porte di comunicazione per il sevizio ha.

firewall-cmd --permanent --add-service=high-availability

e applicare subito la regola con:

firewall-cmd --reload

Sarebbe ancora più interessante vedere con uno scanner di porte quali sono le porte realmente aperte dello stack tcp-ip
Ad ogni modo ora dobbiamo lanciare un comando che permette ai nodi del cluster di RICONOSCERSI e SINCRONIZZARSI.
Verrà chiesto un nome utente e una password per poter accedere all'altro nodo e viceversa.
Per questo motivo è necessario impostare la password per l'utente “hacluster” (creato durante l'installazione su ciascun nodo) che sia la stessa su entrambi i nodi.
Quindi eseguiamo su tutti e due i nodi:

passwd hacluster

ci verrà chiesto di digitare e confermare una nuova password.
Questo è un modo ma ce ne sono altri che permettono grazie allo stdin ecc… di fare tutto con un unico comando.
Non è finita in quanto ora che abbiamo messo i nodi in condizione di riconoscersi, dobbiamo anche permettere loro di sincronizzarsi attraverso la rete e poichè noi per comodità e praticità useremo i “nomi” dobbiamo impostare nel famoso file /etc/hosts di tutti e due i nodi l'abbinamento IP nome nodo.

vi /etc/hosts
192.168.1.xxx    nodo1
192.168.1.xxy    nodo2

..(chiaramente questo è un esempio)

Ora possiamo procedere con il seguente comando da eseguire solo su un nodo:

pcs cluster auth nodo1 nodo2

verrà chiesta il nome utente (che sarà “hacluster”) e la password (quella che abbiamo inserito pocanzi)
Se tutto è andato bene dovremmo avere una risposta tipo questa:

nodo1: Authorized
nodo2: Authorized

Ora possiamo creare il cluster vero e proprio dandogli un nome e associandogli i nodi potenziali (da lanciare solo su uno dei due nodi):

pcs cluster setup --name clstr strn1 strn2

Se tutto è andato bene vedremo una serie di informazioni come di seguito:

Destroying cluster on nodes: strn1, strn2...
strn1: Stopping Cluster (pacemaker)...
strn2: Stopping Cluster (pacemaker)...
strn1: Successfully destroyed cluster
strn2: Successfully destroyed cluster

Sending cluster config files to the nodes...
strn1: Succeeded
strn2: Succeeded

Synchronizing pcsd certificates on nodes strn1, strn2...
strn2: Success
strn1: Success 

Restarting pcsd on the nodes in order to reload the certificates...
strn2: Success
strn1: Success

Possiamo ora avviare il cluster su entrambi i nodi:

pcs cluster start

Altrimenti se lo eseguiamo solo su un nodo verrà avviato pacemaker sul nodo da cui viene lanciato il comando e questo comando appena eseguito avvia il servizio corosync e pacemaker considerando che il servizio pcsd era già avviato
Invece il seguente comando può essere lanciato comunque solo su un nodo ma avvia anche i servizi pacemaker e corosync anche sull'altro nodo:

pcs cluster start --all

Poi procedere con la visualizzazione dello stato con:

pcs status

oppure

pcs cluster status

entrambi i comandi restituiscono informazioni simili ma mi sembra che “pcs status” fornisca informazioni anche sullo stati di corosync pacemaker e pcsd

Infine bisogna ricordarsi poi di rendere avviabile al boot il pcsd:

systemctl enable pcsd.service

Questo permette di avviare all'avvio il servizio pcsd ma non ancora il cluster (cosa che avviene quando si digita “pcs cluster start”
Per farlo partire al boot occorre anche abilitare pacemaker con:

systemctl enable pacemaker.service

Pacemaker avvia anche il corosync.
Bella storia… sul secondo nodo faccio il reboot e non riesco più a riconnettermi, non pinga più. ho fatto il reboot senza spegnere il servizio cluster… centra qualcosa??? boh? da verificare.
Questa faccenda penso che sia legata all'hardware del disco rigido che fa schifo e continua a dare l'alimentazione al RPi e quindi in realta si spegne ma non fa il reboot…
Comunque dopo le ultime prove non l'ha più fatto e non ci sono problemi.

Andiamo avanti ancora con la preparazione di pacemaker aggiungendo alcuni settaggi di base:

pcs property set stonith-enabled=false

pcs property set no-quorum-policy=ignore

pcs property set default-resource-stickiness=INFINITY

Se si verificano dei casini e bisogna rifare tutto conviene distruggere e rifare tutti i comandi… per ora ho dovuto fare così in un caso:

pcs cluster destroy all

C'è un ultima cosa da fare e da sapere riguardo l'eventuale possibilità di visualizzare, rimuovere le constraint order o colocation:

pcs constraint show
pcs constraint order remove hd_drbd0_ fs_maria
pcs constraint colocation remove mysql_service01 fs_maria

Se è andato tutto bene siamo pronti per inserire le risorse da gestire dentro al cluster.

Risorsa indirizzo IP

Semplicemente:

pcs resource create clstrIP IPaddr2 ip=192.168.1.xxx cidr_netmask=24

se tutto è andato bene facciamo una verifica con crm_mon o pcs status:

  Stack: corosync
Current DC: strn2 (version 1.1.14-2.5a6cdd1.git.fc24-5a6cdd1) - partition with q
uorum
Last updated: Thu Sep  8 21:42:44 2016          Last change: Thu Sep  8 21:42:40
 2016 by root via cibadmin on strn2

2 nodes and 3 resources configured

Online: [ strn1 strn2 ]

 Master/Slave Set: hd_drbd0_m [hd_drbd0]
     Masters: [ strn2 ]
     Slaves: [ strn1 ]
clstrIP (ocf::heartbeat:IPaddr2):	Started strn1

Se notiamo bene però la risorsa master è su un nodo e il nostro IP sull'altro. Vedremo poi come far andare insieme le risorse. Per ora va bene così.

Risorsa DRBD

Ora che il nostro cluster è funzionante dobbiamo cominciare a metterci dentro le risorse da gestire che ci occorrono.
Prima di tutto dobbiamo avere uno spazio dati nel quale mettere i file e i programmi che dobbiamo rendere disponibili, ad esempio il database, i file web e quant'altro.
direi quindi di cominciare a formattare il disco DRBD che abbiamo precedentemente preparato con il filesystem prescelto in base all'utilizzo, poi attraverso alcune operazioni il cluster renderà disponibile il filesystem in esso creato.

Vabbè, ora creiamo la risorsa disco da gestire, e lo facciamo attraverso gli strumenti pacemaker specifici per drbd considerato che si tratta di un disco drbd e non un disco normale.
A quanto pare ho trovato in un tutorial ufficiale : http://clusterlabs.org/doc/fr/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/_configure_the_cluster_for_the_drbd_device.html

altri comandi utili http://clusterlabs.org/doc/fr/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/_configure_the_cluster_for_the_drbd_device.html

Ok, ora ci dovremmo essere. Avevo fatto alcune prove anteponendo al comando di creazione risorsa “-f nomecluster”, ma questo presupponeva che avvessi precedentemente digitato il comando “pcs cluster cib nomecluster”. Significa che ogni azione che viene compiuta non è ancora reale, effettiva am viene memorizzata nal cib che poi dovrà essere messo online con il successivo comando “pcs cluster cib-push nomecluster”

mysql

Quindi creiamo la risorsa drbd che verrà automaticamente tirata su da pacemaker ossia, se anche avremo il servizio drbd “non attivo” (nemmeno al boot) pacemaker si preoccuperà di avviarlo ponendo la risorsa nello stato in cui di deve trovare secondo le regole:

pcs resource create hd_drbd0 ocf:linbit:drbd drbd_resource=r0 op monitor interval=20s

poi:

pcs resource master hd_drbd0_m hd_drbd0 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

Questo secondo comando completa il primo e stabilisce la caratteristica della risorsa creata ovvero che la risorsa viene clonata su tutti e due i nodi, ma solo uno può essere master.
Se per caso abbiamo la console aperta sull'altro nodo e abbiamo il “crm_mon” in esecuzione noteremo subito dopo il primo comando degli errori e ancora dopo il secondo comando. Questò perchè il cluster deve ancora capire dove stà il master. Allora facciamo un po di ordine o “pulizia” digitando:

pcs resource cleanup hd_drbd0

web

Ok creiamo anche il secondo disco drbd per la risorsa web:

pcs resource create hd_drbd1 ocf:linbit:drbd drbd_resource=r1 op monitor interval=20s

poi:

pcs resource master hd_drbd1_m hd_drbd1 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

mail

E il terzo disco drbd per la risorsa mail:

pcs resource create hd_drbd2 ocf:linbit:drbd drbd_resource=r2 op monitor interval=20s

poi:

pcs resource master hd_drbd2_m hd_drbd2 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

Ma non è detto, perchè quando ho eseguito la prima volta il comando nessuno dei due drbd era primario…
hd_drbd è il nome della risorsa creata

Ricordiamoci sempre che è necessario eseguire:

pcs resource cleanup hd_drbd 

o

pcs resource cleanup hd_drbd_x

per vedere la risorsa funzionare altrimenti bisogna riavviare pacemaker.

File System

mysql

Ora dobbiamo inserire tra le risorse di pacemaker il files ystem che verrà montato sul dispositivo drbd:

pcs resource create fs_maria Filesystem device="/dev/drbd0" directory="/var/lib/mysql" fstype="ext4"

web

pcs resource create fs_web Filesystem device="/dev/drbd1" directory="/var/www" fstype="ext4"

nelle prove mi sono sbagliato ho lasciato fs_cluster (me lo devo ricordare).

mail

Qui prima di creare la risorsa filesystem è necessario fare alcune cose preliminari su ciascun nodo.
Pacemaker deve essere arrestato, postfix deve essere arrestato e drbd avviato manualmente.

1)Portare la risorsa drbd primaria in un nodo
drbdadm primary r2

2)montare la risorsa sulla directory /srv:

mount /dev/drbd2 /srv/

3)spostare la directory /var/spool/mail:

mv /var/spool/mail/ /srv/

4)Creare un link nella vecchia posizione:

ln -s /srv/mail/ /var/spool/mail

5)Smontare la risorsa:

umount /srv

oppure

umount /dev/drbd2

6)ridurre a secondario la risorsa drbd dal primo nodo e portare primario il secondo

7)montare la risorsa:

mount /dev/drbd2 /srv

8)rimuovere la cartella /var/spool/mail:

rm -r /var/spool/mail

9)creare il link simbolico come fatto al punto 4:

ln -s /srv/mail/ /var/spool/mail

Infine creiamo la risorsa file system:

pcs resource create fs_mail Filesystem device="/dev/drbd2" directory="/srv" fstype="ext4"

Raggruppiamo ordiniamo

questa è una versione
creiamo i gruppi:

pcs resource group add gr_maria fs_maria mysql_service01

poi ordiniamo la partenza:

pcs constraint order promote hd_drbd0_m then start gr_maria

e ci dovrebbe essere differenza dal semplice “constraint order” nome risorsa then altrarisorsa da “constraint order promote” (then start) che si usa nei casi di risorse master slave quindi nel nostro caso.
Andando avanti

pcs resource group add gr_web fs_cluster web_server ip_clstr
pcs constraint order promote hd_drbd1_m then start gr_web

poi infine si ordina senza il promote i gruppi:

pcs constraint order gr_maria then gr_web

ok così ci siamo! almeno per il momento.

Raggruppiamo

questa è un'altra
In questo caso dobbiamo creare per forza una costrizione di collocazione, ossia dobbiamo fare in modo che la risorsa disco e la risorsa filesystem stiano sempre insieme dove il disco è master.

pcs constraint colocation add fs_cluster with hd_drbd0_m INFINITY with-rsc-role=Master

raggruppiamo anche il disco per il web con il filesystem del web.

pcs constraint colocation add fs_web with hd_drbd1_m INFINITY with-rsc-role=Master

Ordiniamo

da notare il nome della risorsa drbd associata. vedere bene quale mettere.
Ora c'è da fare la costrizione all'ordine di partenza che non è stato possibile fare attraverso il raggruppamento (quando c'è una risorsa di tipo master-slave non la si può inserire in un gruppo).:

pcs constraint order promote hd_drbd0_m then start fs_maria

anche per il web:

pcs constraint order promote hd_drbd1_m then start fs_web

Ordinamento ultima versione

pcs constraint order promote hd_drbd0_m then start hd_drbd2_m
pcs constraint order show
Ordering Constraints:
  promote hd_drbd0_m then start hd_drbd2_m (kind:Mandatory)
pcs constraint order hd_drbd2_m then hd_drbd1_m
pcs constraint order show
Ordering Constraints:
  promote hd_drbd0_m then start hd_drbd2_m (kind:Mandatory)
start hd_drbd2_m then start hd_drbd1_m (kind:Mandatory)
pcs constraint order hd_drbd1_m then gr_maria
pcs constraint order gr_maria then gr_mail
pcs constraint order gr_mail then gr_web
pcs constraint order show
Ordering Constraints:
  promote hd_drbd0_m then start hd_drbd2_m (kind:Mandatory)
  start hd_drbd2_m then start hd_drbd1_m (kind:Mandatory)
  start hd_drbd1_m then start gr_maria (kind:Mandatory)
  start gr_maria then start gr_mail (kind:Mandatory)
  start gr_mail then start gr_web (kind:Mandatory)

Risorsa MariaDB

Installare su entrambi i nodi:

dnf install mariadb-server

A questo punto occorre abilitare nel firewall il servizio, sembra che si aproprio questo il problema che ho avuto l'altra volta:

firewall-cmd --add-service=mariadb --permanent
firewall-cmd --reload

Disabilitare su entrambi i nodi:

systemctl disable mariadb.service

Avviare solo sul nodo che ha la risorsa master montata:

systemctl start mariadb.service

Eseguire solo sul nodo attivo (/cluster/mariadb è quella che ho scelto io ma può essere personalizzata:

mysql_install_db --datadir=/cluster/mariadb --user=mysql

Per conoscenza metto a disposizione nel seguente file l'output del comando appena lanciato

output.txt
Installing MariaDB/MySQL system tables in '/cluster/mariadb' ...
2016-09-03 23:22:17 1984978944 [Note] /usr/libexec/mysqld (mysqld 10.1.14-MariaDB) starting as process 25186 ...
OK
Filling help tables...
2016-09-03 23:22:34 1984536576 [Note] /usr/libexec/mysqld (mysqld 10.1.14-MariaDB) starting as process 25216 ...
OK
Creating OpenGIS required SP-s...
2016-09-03 23:22:37 1984221184 [Note] /usr/libexec/mysqld (mysqld 10.1.14-MariaDB) starting as process 25246 ...
OK
 
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
 
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:
 
'/usr/bin/mysqladmin' -u root password 'new-password'
'/usr/bin/mysqladmin' -u root -h strn1 password 'new-password'
 
Alternatively you can run:
'/usr/bin/mysql_secure_installation'
 
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
 
See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.
 
You can start the MariaDB daemon with:
cd '/usr' ; /usr/bin/mysqld_safe --datadir='/cluster/mariadb'
 
You can test the MariaDB daemon with mysql-test-run.pl
cd '/usr/mysql-test' ; perl mysql-test-run.pl
 
Please report any problems at http://mariadb.org/jira
 
The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from MariaDB
Corporation Ab. You can contact us about this at sales@mariadb.com.
Alternatively consider joining our community based development effort:
http://mariadb.com/kb/en/contributing-to-the-mariadb-project/

Sempre dal nodo attivo:

mysql_secure_installation

Ora eseguo altri due comandi che non ho capito a cosa servono ma provo a seguire pari pari il tutorial(solo sul nodo attivo):

semanage fcontext -a -t mysqld_db_t "/mnt(/.*)?"
restorecon -Rv /mnt

Smontare la directory:

umount /cluster

Arrestare il servizio sempre dal nodo attivo

systemctl stop mariadb.service

In più faccio le seguenti modifiche al file /etc/my.cnf (di tutti e due i nodi):

cat << EOL > /etc/my.cnf
[mysqld]
symbolic-links=0
bind_address            = 0.0.0.0
datadir                 = /var/lib/mysql
pid_file                = /var/run/mariadb/mysqld.pid
socket                  = /var/run/mariadb/mysqld.sock

[mysqld_safe]
bind_address            = 0.0.0.0
datadir                 = /var/lib/mysql
pid_file                = /var/run/mariadb/mysqld.pid
socket                  = /var/run/mariadb/mysqld.sock

!includedir /etc/my.cnf.d
EOL

Quest'ultima cosa non mi convince… secondo me si è sbagliato il tipo del tutorial e provo a cambiare la “datadir” in /cluster/mariadb su entrambi i nodi.

Infatti la cosa giusta da fare è modificare non solo il file /etc/my.cnf ma anche /etc/my.cnf.d/mariadb.server-cnf e cambiare il percorso del “datadir” :

cat << EOL > /etc/my.cnf
[mysqld]
symbolic-links=0
bind_address            = 0.0.0.0
datadir                 = /cluster/mariadb
pid_file                = /cluster/mariadb/mysqld.pid
socket                  = /cluster/mariadb/mysqld.sock

[mysqld_safe]
bind_address            = 0.0.0.0
datadir                 = /cluster/mariadb
pid_file                = /cluster/mariadb/mysqld.pid
socket                  = /cluster/mariadb/mysqld.sock

!includedir /etc/my.cnf.d
EOL

Modificare anche il file /etc/my.cnf.d/mariadb.server.cnf con gli stessi riferimenti alla directory condivisa /cluster/mariadb
Naturalmente bisogna montare correttamente la partizione prima di avviare il servizio mariadb.
Ma dobbiamo ancora fare delle prove.
In sostanza ho inserito in entrambi i my.cnf la corretta “datadir” e quando ho avviato il servizio sul secondo nodo ho avuto degli errori a quanto pare perchè non era mai stato eseguito il mysql_secure installation per poi impostare la password di root. Ma una volta attivato il secondo ed eseguito il mysql_secure_installation poi è partitto apparentemente tutto correttamente e ho fatto alcune prove di spostamento creando un database e ritrovandomelo sull'altro… proviamo.

Creiamo la risorsa per pacemaker:

pcs resource create mysql_service ocf:heartbeat:mysql binary="/usr/bin/mysqld_safe" config="/etc/my.cnf" datadir="/cluster/mariadb" pid="/cluster/mariadb/mysql.pid" socket="/cluster/mariadb/mysql.sock" additional_parameters="''bind-address=0.0.0.0" op start timeout=60s op stop timeout="60s" op monitor interval=20s timeout=30s

Facciamo ordine:

pcs constraint colocation add mysql_service whit fs_cluster INFINITY
pcs constraint order fs_cluster then mysql_service

Purtroppo non va si blocca tutto a questo punto…

Risorsa web

dopo aver avviato la risorsa disco web e verificato con:

df

se abbiamo ottenuto qualcosa di simile:

File system    1K-blocchi   Usati Disponib. Uso% Montato su
/dev/root        10190136 2065892   7599956  22% /
devtmpfs           469540       0    469540   0% /dev
tmpfs              473872   55176    418696  12% /dev/shm
tmpfs              473872     420    473452   1% /run
tmpfs              473872       0    473872   0% /sys/fs/cgroup
/dev/mmcblk0p1     130798   20452    110346  16% /boot
tmpfs               94776       0     94776   0% /run/user/0
/dev/drbd0        4062748  119944   3926420   3% /var/lib/mysql
/dev/drbd1        6061404   15680   5714780   1% /var/www

possiamo avviare il servizio web e vedere se funziona o comunque in fase di prova ora provo a installare postfixadmin e vediamo se funge.
poi avvio manualmente l'apache e vediamo che succede…

systemctl start httpd.service

Ok se va possiamo rifermare il servizio

systemctl stop httpd.service

Creare il seguente file su entrambi i nodi:

vi /etc/httpd/conf.d/status.conf

<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Location>

Nel precedente blocco c'è il permesso di vedere solo a 127.0.0.1 quindi la situazione dovrebbe essere sicura. se vogliamo farlo vedere fuori dall'host dobbiamo mettere allow from all.
Ma credo che questo lavoro si afatto solo per capire se e come sta funzionando il web server.

pcs resource create web_server ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=20s

Ordiniamo:

pcs constraint colocation add web_server whit fs_web INFINITY

poi:

pcs constraint order fs_web then web_server

Risorsa Mysql da abbandonare

Ora dobbiamo fare in modo che le directory di default per per il database siano sempre disponibili nel cluster.
ho trovato alcune istruzioni che metto di seguito per fare in modo che mysql lavori nel nuovo spazio di lavoro condiviso e sia attivo su un nodo o sull'altro grazie alle regole di pacemaker.

Stop MySQL using the following command:

sudo /etc/init.d/mysql stop

Copy the existing data directory (default located in /var/lib/mysql) using the following command:

cp -R -p /var/lib/mysql /newpath

edit the MySQL configuration file with the following command:

vi /etc/mysql/my.cnf

Look for the entry for datadir, and change the path (which should be /var/lib/mysql) to the new data directory.
In the terminal, enter the command:

vi /etc/apparmor.d/usr.sbin.mysqld

Look for lines beginning with /var/lib/mysql. Change /var/lib/mysql in the lines with the new path.

Save and close the file.

Restart the AppArmor profiles with the command:

/etc/init.d/apparmor reload

Restart MySQL with the command:

/etc/init.d/mysql restart

WEB

postfixadmin

ora che il server web funziona ed anche il cluster. e' giunto il momento di installare e configurare i servizi web che useremo per la posta.
seguire porcedura dal sito http://blog.acmenet.ru/en/2014/11/25/mail-centos-en

postfix

Attenzione!!!
seguire questo link per postfixadmin e valutare di condividere un pezzo di disco appostiamente per postfixadmin
http://studyhat.blogspot.it/2010/10/installing-postfix-admin-on-cent-os.html altrimenti seguire l'installazione del pacchetto scaricato già pronto per fedora, ma non è per arm in effetti… quindi sarebbe forse meglio seguire questa guida… bo? vediamo

inizio reale configurazione postfix:

dnf install postfix postfix-mysql
vi /etc/postfix/main.cf

modificare i seguenti valori:

myhostname = mail.miodominio.com
mydomain = miodominio.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mynetworks_style = host
mynetworks = $config_directory/mynetworks
smtpd_banner = $myhostname ESMTP $mail_name

Qui c'è da riportare tutti i file di configurazione di postfix attualmente funzionanti e presi da quel sito russo.

Le mappe hanno il seguente schema sicuro:

hosts           = localhost
dbname          = postfix
user            = postfix
password        = Pa$Pxnrk00ps$
table           = mailbox
select_field    = maildir
where_field     = username
additional_conditions = AND active = '1'

Intanto metto la procedura per la creazione dei certificati personalizzati e non quelli generici del sistema operativo:

Installare openssl

#apt-get install openssl\\

Creare una cartella per contenere i certificati, per esempio:
# mkdir /etc/postfix/certificati
poi spostarsi in questa cartella:
cd /etc/postfix/certificati

Lanciare questi comandi per la generazione dei certificati:
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Una volta terminato tutto creare la risorsa per il cluster pacemaker nel seguente modo:

pcs resource create srv_postfix ocf:heartbeat:postfix op monitor timeout="20s" interval="60s"

e poi viene gestita nel mucchio nel modo opportuno ad es per il raggruppamento:

pcs resource group add gr_mail fs_mail srv_postfix

ricordarsi anche di abilitare il servizio nel firewall:

firewall-cmd --add-service=smtp --permanent
firewall-cmd --add-service=smtps --permanent
firewall-cmd --reload

roundcubemail

installazione pacchettizzata

Si fa l'installazione con dnf poi si crea subito il database:

mysql -u root -p

CREATE DATABASE roundcubemail;
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password';

Poi andare all'installer: http://nomesito.es/roundcubemail/installer

installazione manuale

Con i sorgenti è più macchinoso, infatti la prima cosa da fare è installare a mano le dipendenze:

dnf install php-ldap php-pear php-pear-Auth-SASL php-pear-Mail-Mime php-pear-Net-IDNA2 php-pear-Net-LDAP2 php-pear-Net-Sieve php-pear-Net-SMTP php-pear-Net-Socket php-intl

poi dopo aver scaricato e decompresso il pacchetto bisogna rendere scrivibili le directory temp e logs all'interno della directory appena scompattata.
E poi bisogna cambiare la proprietà da root:root a root:apache (credo…)
Il percorso può essere dove vogliamo. io l'ho messo nella /usr/share ch eè la stessa posizione dove lo metterebbe un'installazione pacchettizzata.

chown -R apache:apache /usr/share/roundcubemail

oppure

chown -R root:apache /usr/share/roundcubemail

e poi:

chmod 775 /usr/share/roundcubemail/temp
chmod 775 /usr/share/roundcubemail/logs
chmod 775 /usr/share/roundcubemail/config

per consentire l'installazione

Di sicuro bisogna creare da zero il file /etc/httpd/conf.d/roundcubemail.conf :

#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail

# Define who can access the Webmail
# You can enlarge permissions once configured

<Directory /usr/share/roundcubemail/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
#        Require local
#        Require ip 192.168.1
Require all granted
  </IfModule>
   <IfModule !mod_authz_core.c>
       # Apache 2.2
        Order Deny,Allow
#        Deny from all
#        Allow from 192.168.1
        #Allow from 127.0.0.1
#        Allow from ::1
Allow from all
    </IfModule>
</Directory>

# Define who can access the installer
# keep this secured once configured

<Directory /usr/share/roundcubemail/installer/>
  <IfModule mod_authz_core.c>
      # Apache 2.4
      Require local
       Require all granted
   </IfModule>
   <IfModule !mod_authz_core.c>
       # Apache 2.2
        Order Deny,Allow
#        Deny from all
Allow from all
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

# Those directories should not be viewed by Web clients.
<Directory /usr/share/roundcubemail/bin/>
    Order Allow,Deny
    Deny from all
</Directory>
<Directory /usr/share/roundcubemail/plugins/enigma/home/>
    Order Allow,Deny
    Deny from all
</Directory>

Ora si può andare all'installer: http://nomesito/installer dove avremo il primo step da affrontare e controllare se è tutto verde o se ci sono dei parametri da mettere a posto.
gli avvertimenti colore arancio non pregiudicano il funzionamento ma è meglio metterli a posto tranne quelli relativi i database che ovviamente appariranno perchè noi ne abbiamo scelto solo uno…

Altra cosa abbastanza assurda da fare è modificare a mano il php.ini e aggiungere subito in alto:

date.timezone = "Europe/Vatican"

o altra zona scelta.
Altrimenti c'è un warning in fondo al file di preparazione installazione. che poi in realtà non so se è quello il problema, perchè ho anche lanciato il comando

timedatectl

e ho eseguito quello che veniva suggerito:

timedatectl set-local-rtc 0

Quindi alla fine non so se il warning si risolve con la modifica del php.ini o il comando timedatectl

Nel secondo step i parametri più importanti da modificare sono i collegamenti al DB, IMAP e SMTP. In quest'ultimo si mette solo localhost e alla schermata successiva propone %u e %p
modifichiamo anche la lingua e i parametri mime per roundcube e thunderbird. (quest'ultimo non so se faccio bene)

Al terzo step si fanno le prove e se il sistema ha riscontrato un aggiornamento da fare nel DB propone di aggiornare le tabelle.
DI seguito il file config.inc.php che è stato posizionato nella cartella config di roundcubemail.

config.inc.php
<?php
 
/* Local configuration for Roundcube Webmail */
 
// ----------------------------------
// SQL DATABASE
// ----------------------------------
// Database connection string (DSN) for read+write operations
// Format (compatible with PEAR MDB2): db_provider://user:password@host/database
// Currently supported db_providers: mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
// NOTE: for SQLite use absolute path (Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646'
//       or (Windows): 'sqlite:///C:/full/path/to/sqlite.db'
$config['db_dsnw'] = 'mysql://roundcube:password@localhost/roundcubemail';
 
// ----------------------------------
// IMAP
// ----------------------------------
// The mail host chosen to perform the log-in.
// Leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// Supported replacement variables:
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %s - domain name after the '@' from e-mail address provided at login screen
// For example %n = mail.domain.tld, %t = domain.tld
// WARNING: After hostname change update of mail_host column in users table is
//          required to match old user data records with the new host.
$config['default_host'] = 'localhost';
 
// ----------------------------------
// SMTP
// ----------------------------------
// SMTP server host (for sending mails).
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// If left blank, the PHP mail() function is used
// Supported replacement variables:
// %h - user's IMAP hostname
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %z - IMAP domain (IMAP hostname without the first part)
// For example %n = mail.domain.tld, %t = domain.tld
$config['smtp_server'] = 'localhost';
 
// SMTP username (if required) if you use %u as the username Roundcube
// will use the current username for login
$config['smtp_user'] = '%u';
 
// SMTP password (if required) if you use %p as the password Roundcube
// will use the current user's password for login
$config['smtp_pass'] = '%p';
 
// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';
 
// This key is used for encrypting purposes, like storing of imap password
// in the session. For historical reasons it's called DES_key, but it's used
// with any configured cipher_method (see below).
$config['des_key'] = 'f5vqoge932naWaO9yoaXzftd';
 
// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = array();
 
// the default locale setting (leave empty for auto-detection)
// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
$config['language'] = 'it_IT';
 
// Encoding of long/non-ascii attachment names:
// 0 - Full RFC 2231 compatible
// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default)
// 2 - Full 2047 compatible
$config['mime_param_folding'] = 0;

ora bisogna mettere in sicurezza impostando le protezioni come indicato nel sito di roundcube.
che dovrebbero essere tipo:

rm -rf /usr/share/roundcubemail/installer

che elimina la cartella di installazione, ma c'è anche l'altro modo senza eliminare che va a commentare nel file /etc/httpd/conf.d/roundcubemail.conf tutta la parte relativa la directory installer

poi per il chown e il chmod devo chiedere a giovanni.\\

DokuWiki

Si può installare con il repo fedora oppure installare dai sorgenti. Qua metto l'installazione dai sorgenti però con un download personalizzato che dokuwiki ci ha messo a disposizione.
Se si installa con il pacchetto viene messo nella solita cartella /usr/share io stavolta invece provo a metterla sotto /var/www/nomesito/
Dopo avermesso il file scaricato nella suddetta cartella si decomprime:

tar -xzvf dokuwiki-f922c7a8d64f096e12dbefa469d2bb87.tgz

entrare nella directory e cominciare a settare i permessi:

chown apache:apache data/
chown apache:apache data/tmp/
chown apache:apache lib/plugins
chown apache:apache lib/tpl

poi cambiare directory

cd data
chown apache:apache pages/
chown apache:apache attic/
chown apache:apache media/
chown apache:apache media_attic/
chown apache:apache meta/
chown apache:apache media_meta/
chown apache:apache cache/
chown apache:apache index/
chown apache:apache locks/

ritornare alla radici di dokuwiki

cd ..
chown apache:apache conf

Andare all'installer tenendo presente che se si fosse messo i file presenti all'interno della cartella dokuwiki sulla root del sito si potrebbe anche omettere nel seguente url la parola dokuwiki.

http://sito/dokuwiki/installer.php

NOTA
ho provato anche a cambiare solo la proprietà del gruppo alle cartelle in modo tale da permettere la scrittura solo delle cartelle necessarie e la creazione di nuovi file ma non sui vecchi file.
quindi ho usato solo:

chgrp apache nomecartella\

ecc…

o comunque ho cambiato la proprietà solo a due cartelle data/ e conf/ ma non con l'opsione -R che cambia la proprietà a tutti i file ma solo ai nuovi file.
poi nella cartella conf/ ci sono alcuni file che devono essere scrivibili e quindi cambio la proprietà solo a quelli.

Nota importante per Dokuwiki è la scrittura del file personalizzato del virtualhost all'interno della cartella /etc/httpd/conf.d/
Praticamente per risolvere il problema della sicurezza delle pagine e della directory del wiki ho aggiunto le seguenti riche all'interno del file di configurazione personalizzata del virtual host:

nomefile.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/risorsalibera/dokuwiki"
    ServerName www.risorsalibera.org
    ServerAlias risorsalibera.org
    # Other directives here
#        <Directory />
#                Options FollowSymLinks
#                AllowOverride None
#        </Directory>
        <Directory /var/www/risorsalibera>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride none
                Order allow,deny
                allow from all
        </Directory>
 
 
<LocationMatch "/(data|conf|bin|inc)/">
   Order allow,deny
    Deny from all
    Satisfy All
</LocationMatch>
 
</VirtualHost>

Quindi per il resto posso anche lasciare la proprietà dei file e delle cartelle a root ma sono da rendere scrivibili ad apache le cartelle e i file indicati dall'installer e indicati sopra.

Zoneminder

Ho trovato i repo specifici per fedora. Mi dovrei fare io il repo per questa guida onde evitare che li cambino…

wget http://zmrepo.zoneminder.com/f/24/armhfp/zmrepo-24-1.fc24.noarch.rpm

ora però prima di installare bisognerebbe dare le priorità inserendo nel file fedora.repo la seguente dicitura

exclude=zoneminder*

poi

dnf install --nogpgcheck zmrepo-24-1.fc24.noarch.rpm

il seguente comando l'avevo eseguito ma bisogna capire il perchè
cp /etc/zm.conf.rpmsave /etc/zm/zm.conf

e poi ci sono cose da vedere anche qui:
vi /usr/share/doc/zoneminder/README.Fedora

e sicuramente c'è da eseguire questo:

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

questo mi sembra di aver capito che è necessario:

dnf install mod_ssl

c'è anche una modifica qui per il discorso del timezone

vi /etc/php.ini

da inserire la seguente riga all'inizio altrimenti zoneminder si incavola:

date.timezone = "Europe/Vatican"

APACHE

Virtual Host

Per attivare i virtual host possono tornare utili alcune info prese da qui: https://httpd.apache.org/docs/2.4/vhosts/examples.html
e comunque il primo esperimento è stato fatto creando un nuovo file /etc/httpd/conf.d/nomesito.conf

<VirtualHost *:80>
  DocumentRoot "/var/www/cartellasito"
  ServerName www.nomesito.it

  # Other directives here

</VirtualHost>

Ed è subito partito senza problemi.
ora si tratta di capire bene come impostare la sicurezza.

sicurezza di apache

Ridurre il numero di informazioni esposte.
con il comando

curl -I http://www.nomesito.it

è possibile visualizzare diverse informazioni ma noi dobbiamo ridurle con le seguenti modifiche:

vi /etc/httpd/conf/httpd.conf

#impostazioni di sicurezza#########
ServerTokens Prod
ServerSignature Off
TraceEnable Off
Header unset ETag
FileETag None
vi /etc/php.d/security.ini

# impostazioni di sicurezza ############
expose_php=Off
display_errors=Off
track_errors = Off
html_errors = Off
########################################

primo aggiornamento del sistema

#dnf update

Server per aggiornare tutti i pacchetti della fedora 24
tra questi c'è anche il kernel 4.6.ecc.. ma tra poco aggiornerò il kernel al più recente di raspberry e non a quello di fedora
comunque sia è una cosa che devo ancora capire.
Infatti verificato che dopo l'update il kernel è sempre quello di raspberry infatti in fase di installazione abbiamo copiato nella directory boot della roba a parte rispetto la distribuzione.
quindi

#dnf install binutils git

cluster pidora

con le ultime prove ho installato subito pcs che automaticamente ha installato pacemaker e quindi corosync
seguire la procedura per le impostazioni iniziali al primo avvio di Fedora Server per architettura arm

impostazioni di rete

accertarsi di aver impostato ip statici
di seguito un esempiodi /etc/sysconfig/network-script/ifcfg-eth0

HWADDR=B8:27:EB:2B:BE:58
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=cd599730-cf12-3d71-821a-82b7a2b837c1
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
IPADDR=192.168.1.118
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

verificare hostname

[root@n2 ~]# cat /etc/hostname 
n2
[root@n2 ~]# 

impostare ip su /etc/hosts aggiungendo gli ip statici impostati per ciascun nodo

192.168.1.117           n1
192.168.1.118           n2

installazione software

DRBD

dnf install drbd drbd-utils 

preparare lo storage condiviso utilizzando le configurazioni note per drbd
teniamo presente però che drbd anche se abilitato con

systemctl enable drbd.service

non si avvia al boot.
non so se è un bug o altro. fatto sta che se non fosse per pacemaker non si riesce a renderlo avviabile senza fare il login.
Infatti sarebbe possibile inserire drbd.service all'interno della directory /etc/systemd/user e farlo partire quando un utente effettua il login. ma lasciamo perdere non è questo il caso.

importantissimo! aprire le porte sul firewall che in fedora 24 è funzionante “firewalld” rendendola permanente

firewall-cmd --add-port=7788/tcp --permanent

rendere operativa immediatamente la regola

firewall-cmd --reload

oppure farlo per i servizi:

firewall-cmd --add-service=drbd --permanent

però non ho provato realmente con drbd

verificare i servizi abilitati o le porte abilitate

firewall-cmd --list-service

o

firewall-cmd --list-port

dopo aver sincronizzato i dispositivi drbd formattare i device:

mkfs.ext4 /dev/drbd0

HTTPD

dnf install httpd

ma su fedora 24 Server per arm dovrebbe già essere installato
accertarsi comunque che il firewall sia aperto o aprirlo

firewall-cmd --add-service=httpd
firewall-cmd --reload

PACEMAKER

ora dovremmo essere pronti per configurare il cluster
quindi installiamo i software necessari:

dnf install pcs drbd-pacemaker

questo dovrebbe installare anche corosync e pacemaker vero e proprio

abilitarli all'avvio

systemctl enable pacemaker.service
systemctl enable pcsd.service

in un tutorial ho trovato anche questo da aggiungere:

ln -s '/usr/lib/systemd/system/pcsd.service' '/etc/systemd/system/multi-user.target.wants/pcsd.service'

ma bisogna provare a non farlo…

aggiungere la solita regola per il firewall:

firewall-cmd --add-service=high-availability --permanent

per la configurazione vera e propria si comincia assegnando la password all'utente speciale hacluster con:

passwd hacluster

oppure

echo <new-password> | passwd --stdin hacluster

su entrambi i nodi
poi avviare pcsd

systemctl start pcsd.service

autorizzare i nodi con:

pcs cluster auth node1 node2

a questo comando verrà chiesto di inserire il nome dell'utente speciale hacluster o lo troviamo già inserito e dobbiamo solo mettere la password.bo?
è sufficiente eseguirlo da un solo nodo.
sempre da un solo nodo creare il cluster:

pcs cluster setup --start --name webcluster centos05 centos07
pcs cluster setup --name webcluster webnode01 webnode02
pcs cluster setup --start --name apachecluster node1 node2
pcs cluster setup --name mysql_cluster pcmk01-cr pcmk02-cr

quattro modi di fare la stessa cosa ovvero creare un cluster.

se non è già stato fatto nel comando unico precedente, avviare il cluster

pcs cluster start --all

un'altra cosa di cui non sono sicuro

pcs cluster enable --all

penso per abilitare tutte le risorse.

verificarne lo stato

pcs cluster status

o

pcs status

sistemare lo stonith se non lo si attiva

pcs -f clust_cfg property set stonith-enabled=false

o

pcs property set stonith-enabled=false

il quorum

pcs property set no-quorum-policy=ignore

e lo stickiness

pcs -f clust_cfg resource defaults resource-stickiness=200

procedere con la creazione delle risorse.

appunti

istruzioni.txt
ExecStart=/usr/sbin/drbdadm adjust all
ExecStart=/usr/sbin/drbdadm wait-con-int
ExecStart=/usr/sbin/drbdadm sh-b-pri all
ExecStop=/usr/sbin/drbdadm down all
 
 
copiare il servizio in /etc/systemd/user
 
poi eseguire
 
loginctl enable-linger root
 
 
crmsh # crm configure primitive 
				ClusterIP ocf:heartbeat:IPaddr2 \
        params ip=192.168.122.120 cidr_netmask=32 \
        op monitor interval=30s 
pcs   # pcs resource create 
				ClusterIP IPaddr2 ip=192.168.0.120 cidr_netmask=32
 
 
crm configure primitive WebData ocf:linbit:drbd params drbd_resource=wwwdata \
    op monitor interval=60s
 
pcs resource create p_drbd_d 
 
 
pcs -f clust_cfg resource create mysql_data01 ocf:linbit:drbd \
  drbd_resource=mysql01 \
  op monitor interval=30s
------
tra le situazioni iniziali da accertare c'è quella che tutti i servizi siano disabilitati ovvero: drbd, myslq, httpd
poi in un secondo momento ci penserà pacemaker ad attivarli
 
Preparare lo storage ridondante con una risorsa drbd
 
importantissimo eseguire il comando seguente su entrambi i nodi per abilitare la comunicazione attraverso il firewalld
 
firewall-cmd --add-port=7789/tcp --permanent
firewall-cmd --reload
 
Questo passaggio è determinante perché in sostanza si prepara una configurazione ma non viene resa immadiatamente operativa ne tantomento visibile quando si esegue il pcs status o il crm_mon\\
In sostanza si prepara il cib prima di renderlo effettivo:\\
  pcs cluster cib clust_cfg
                  nome cluster
 
da creare con pcs:\\
prima di tutto gli storage master slave:\\
 
  pcs -f clstr resource create mysql_data01 ocf:linbit:drbd drbd_resource=nomerosrsadrbdmysql01 op monitor interval=30s
                               nomescelto
 
  pcs -f clstr resource master httpdclone httpd_data01 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
			     nomescelto	nomeprecedente
 
per rendere poi attivo quello che si è fatto bisogna eseguire il seguente comando\\
  pcs cluster cib-push drbd_cfg
 
Come spiegato in questa pagina: http://clusterlabs.org/doc/fr/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/_configure_the_cluster_for_the_drbd_device.html \\
 
 
filesystem 
pcs -f clust_cfg resource create mysql_fs01 Filesystem device="/dev/drbd0" directory="/var/lib/mysql" fstype="ext4 --group nomegruppo(nel caso si voglia inserire la risorsa in un  gruppo)
opppure
pcs resource create webserver_fs Filesystem device="/dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777-part1" directory="/var/www" fstype="ext4" --group webgroup
 
associazione tra risorsa filesystem e risorsa drbd(master) [costrizione all'esecuzione associata master]
pcs -f clstr constraint colocation add httpd_fs01 with httpdclone INFINITY with-rsc-role=Master
 
ordine di partenza
pcs -f clstr constraint order promote httpdclone then start httpd_fs01 [costrizione all'ordine di partenza]
 
 
 
virtual IP
 
 
 
mysql
 
penso che questo sia importante per ottenere in uno spazio condiviso le info per mysql
  mysql_install_db --datadir=/mnt --user=mysql
 
 pcs -f clust_cfg resource create mysql_service01 ocf:heartbeat:mysql \
  binary="/usr/bin/mysqld_safe" \
  config="/etc/my.cnf" \
  datadir="/var/lib/mysql" \
  pid="/var/lib/mysql/mysql.pid" \
  socket="/var/lib/mysql/mysql.sock" \
  additional_parameters="--bind-address=0.0.0.0" \
  op start timeout=60s \
  op stop timeout=60s \
  op monitor interval=20s timeout=30s
 
associazione tra risorsa servizio e filesystem
 
 
apache
 
prima di creare la risorsa servizio apache aggiungere in fondo al seguente file /etc/httpd/conf/httpd.conf:
  <Location /server-status>
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  </Location>
 
filesystem
vedere creazione risorsa filesystem
(pcs resource create webserver_fs Filesystem device="/dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777-part1" directory="/var/www" fstype="ext4" --group webgroup)
 
servizio
pcs resource create WebServer ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=20s
oppure
pcs resource create apache_res apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group webgroup
 
associazione tra servizio e filesystem
pcs -f clstr constraint colocation add apache_res with httpd_fs01 INFINITY
pcs -f clust_cfg constraint colocation add nomeservizio with nomerisorsafilesystem(httpd_fs01) INFINITY
 
costrizione all'ordine di partenza
pcs -f clust_cfg constraint order nomerisorsafilesystem then nomerisorsaservizio
pcs -f clstr constraint order httpd_fs01 then apache_res
 
associazione all'ip
pcs -f clstr constraint colocation add apache_res with mysql_VIP01 INFINITY
 
costrizione all'ip
pcs -f clstr constraint order mysql_VIP01 then apache_res
 
 
 
ip virtuale
pcs resource create vip_res IPaddr2 ip=192.168.1.151 cidr_netmask=24 --group webgroup
oppure
pcs -f clust_cfg resource create mysql_VIP01 ocf:heartbeat:IPaddr2 ip=10.8.8.60 cidr_netmask=32 op monitor interval=30s
pcs -f clstr resource create httpd
 
 
se c'è già l'ip....
fare solo la costrizione all'esecuzione e all'ordine di partenza

altro file:

ClusterC53-1.odt
-INSTALLAZIONE SOFTWARE NECESSARIO
 
--INSTALLAZIONE SISTEMA OPERATIVO (GNU/Linux CentOS 6.4 - x86_64)
 
---Partizionamento, Scelta pacchetti e altre personalizzazioni
	In base alle esigenze. (vedi altro tutorial)
 
--PREPARAZIONE SISTEMA
 
#vi /etc/yum.repos.d/CentOS-Base.repo		disattivare il repo Base
	[base]
	enabled=0
	[updates]
	enabled=0
	[extras]
	enabled=0
 
---attivare il repo Media per effettuare le installazioni da DVD locale se si vuole evitare di inserire --enablerepo=c6-media
 
#vi /etc/yum.repos.d/CentOS-Media.repo
	[c6-media]
	enabled=1
 
---creo la directory su cui montare il dvd di installazione
 
#mkdir /media/CentOS
 
---monto il device dvd sulla directory appena create
 
#mount /dev/dvd /media/CentOS
 
--INSTALLAZIONE PACCHETTI
 
---A solo scopo didattico si illustra anche il listato prodotto da “yum” durante la fase di installazione per capire quali dipendenze sono necessarie ai pacchetti fondamentali da installare. Inoltre si visualizza l'elenco dei servizi che che verranno a mano amano installati specificando quelli che devono essere avviati al boot del nodo tramite il comando “chkconfig”.
 
---Dopo l'installazione base:
 
#chkconfig (chk1.txt)
 
 
auditd         	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
blk-availability	0:off	1:on	2:on	3:on	4:on	5:on	6:off 
crond          	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
ip6tables      	0:off	1:off	2:off	3:off	4:off	5:off	6:off 
iptables       	0:off	1:off	2:off	3:off	4:off	5:off	6:off 
lvm2-monitor   	0:off	1:on	2:on	3:on	4:on	5:on	6:off 
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off 
netfs          	0:off	1:off	2:off	3:on	4:on	5:on	6:off 
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
postfix        	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
rdisc          	0:off	1:off	2:off	3:off	4:off	5:off	6:off 
restorecond    	0:off	1:off	2:off	3:off	4:off	5:off	6:off 
rsyslog        	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
saslauthd      	0:off	1:off	2:off	3:off	4:off	5:off	6:off 
sshd           	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
udev-post      	0:off	1:on	2:on	3:on	4:on	5:on	6:off
 
 
 
---L'obiettivo è installare il cluster ad alta affidabilità corosync, pacemaker e drbd. Ma occorrono diversi programmi e librerie preliminari che si elencano per chiarezza e per studio.
 
 
---installo il “perl” a parte poichè verrà sfruttato da diversi software. Questo per capire meglio i pacchetti specifici installati dai diversi software successivi.
 
#yum --enablerepo=c6-media install -y perl	
 
 
================================================================================ 
 Package                   Arch       Version                Repository    Size 
================================================================================ 
Installing: 
 perl                      x86_64     4:5.10.1-129.el6       c6-media      10 M 
Installing for dependencies: 
 perl-Module-Pluggable     x86_64     1:3.90-129.el6         c6-media      38 k 
 perl-Pod-Escapes          x86_64     1:1.04-129.el6         c6-media      31 k 
 perl-Pod-Simple           x86_64     1:3.13-129.el6         c6-media     210 k 
 perl-libs                 x86_64     4:5.10.1-129.el6       c6-media     576 k 
 perl-version              x86_64     3:0.77-129.el6         c6-media      50 k 
 
Transaction Summary 
================================================================================ 
Install       6 Package(s) 
 
Total download size: 11 M 
Installed size: 36 M
 
 
---Nessun servizio installato
 
---Si installa rpcbind (Remote Procedure Call) il quale necessita di alcune librerie e tool in cascata per dipendenza (libtirpc libgssglue keyutils) http://en.wikipedia.org/wiki/Portmap
 
#yum --enablerepo=c6-media install -y rpcbind	
 
 
 
================================================================================
 Package             Arch       Version                      Repository    Size
================================================================================
Installing:
 openssh-clients     x86_64     5.3p1-84.1.el6               c6-media     355 k
Installing for dependencies:
 libedit             x86_64     2.11-4.20080712cvs.1.el6     c6-media      74 k
 
Transaction Summary
================================================================================
Install       2 Package(s)
 
Total download size: 429 k
Installed size: 1.2 M
 
 
Servizi aggiunti in seguito all'installazione di rpcbind:
 
 
rpcbind        	0:off	1:off	2:on	3:on	4:on	5:on	6:off 
 
 
 
 
 
---installo il client Openssh che mi permette di utilizzare connessioni sicure da e per il nodo del cluster (connessioni sicure per la copia dei file "scp" o per la connessione ad altri host "ssh"):
 
#yum --enablerepo=c6-media install -y openssh-clients	
 
 
 
================================================================================
 Package             Arch       Version                      Repository    Size
================================================================================
Installing:
 openssh-clients     x86_64     5.3p1-84.1.el6               c6-media     355 k
Installing for dependencies:
 libedit             x86_64     2.11-4.20080712cvs.1.el6     c6-media      74 k
 
Transaction Summary
================================================================================
Install       2 Package(s)
 
Total download size: 429 k
Installed size: 1.2 M
 
 
---Nessun servizio installato
 
 
 
---installo il servente grafico Xorg e il driver specifico per la mia scheda video (OPZIONALE).
 
#yum --enablerepo=c6-media install -y xorg-x11-server-Xorg xorg-x11-drv-intel	
 
 
================================================================================ 
 Package                   Arch      Version                  Repository   Size 
================================================================================ 
Installing: 
 xorg-x11-drv-intel        x86_64    2.16.0-4.el6             c6-media    198 k 
 xorg-x11-server-Xorg      x86_64    1.10.6-1.el6.centos      c6-media    1.3 M 
Installing for dependencies: 
 ConsoleKit                x86_64    0.4.1-3.el6              c6-media     82 k 
 ConsoleKit-libs           x86_64    0.4.1-3.el6              c6-media     17 k 
 cryptsetup-luks           x86_64    1.2.0-7.el6              c6-media     95 k 
 cryptsetup-luks-libs      x86_64    1.2.0-7.el6              c6-media     51 k 
 dbus                      x86_64    1:1.2.24-5.el6_1         c6-media    207 k 
 device-mapper             x86_64    1.02.74-10.el6           c6-media    135 k 
 device-mapper-libs        x86_64    1.02.74-10.el6           c6-media    162 k 
 dmidecode                 x86_64    1:2.11-2.el6             c6-media     71 k 
 eggdbus                   x86_64    0.6-3.el6                c6-media     91 k 
 freetype                  x86_64    2.3.11-6.el6_2.9         c6-media    359 k 
 hal                       x86_64    0.5.14-11.el6            c6-media    375 k 
 hal-info                  noarch    20090716-3.1.el6         c6-media     56 k 
 hal-libs                  x86_64    0.5.14-11.el6            c6-media     69 k 
 hdparm                    x86_64    9.16-3.4.el6             c6-media     72 k 
 libX11                    x86_64    1.3-2.el6                c6-media    582 k 
 libX11-common             noarch    1.3-2.el6                c6-media    188 k 
 libXau                    x86_64    1.0.5-1.el6              c6-media     22 k 
 libXdmcp                  x86_64    1.0.3-1.el6              c6-media     22 k 
 libXext                   x86_64    1.1-3.el6                c6-media     33 k 
 libXfixes                 x86_64    4.0.4-1.el6              c6-media     19 k 
 libXfont                  x86_64    1.4.1-2.el6_1            c6-media    128 k 
 libXv                     x86_64    1.0.5-1.el6              c6-media     21 k 
 libXvMC                   x86_64    1.0.4-8.1.el6            c6-media     22 k 
 libfontenc                x86_64    1.0.5-2.el6              c6-media     24 k 
 libpciaccess              x86_64    0.12.1-1.el6             c6-media     42 k 
 libudev                   x86_64    147-2.41.el6             c6-media     75 k 
 libxcb                    x86_64    1.5-1.el6                c6-media    100 k 
 libxkbfile                x86_64    1.0.6-1.1.el6            c6-media     74 k 
 pixman                    x86_64    0.18.4-1.el6_0.1         c6-media    146 k 
 pkgconfig                 x86_64    1:0.23-9.1.el6           c6-media     70 k 
 pm-utils                  x86_64    1.2.5-9.el6              c6-media    108 k 
 polkit                    x86_64    0.96-2.el6_0.1           c6-media    158 k 
 system-setup-keyboard     x86_64    0.7-4.el6                c6-media     11 k 
 xcb-util                  x86_64    0.3.6-1.el6              c6-media     38 k 
 xkeyboard-config          noarch    2.3-1.el6                c6-media    685 k 
 xorg-x11-drv-evdev        x86_64    2.6.0-2.el6              c6-media     32 k 
 xorg-x11-drv-vesa         x86_64    2.3.0-2.el6              c6-media     20 k 
 xorg-x11-drv-void         x86_64    1.4.0-1.el6              c6-media     11 k 
 xorg-x11-server-common    x86_64    1.10.6-1.el6.centos      c6-media     34 k 
 xorg-x11-xkb-utils        x86_64    7.4-6.el6                c6-media     85 k 
 
Transaction Summary 
================================================================================ 
Install      42 Package(s) 
 
Total download size: 6.0 M 
Installed size: 20 M 
 
 
Servizi aggiunti in seguito all'installazione di Xorg e driver:
 
 
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off 
messagebus      0:off   1:off   2:on    3:on    4:on    5:on    6:off 
 
 
---Installo il Desktop Manager (DM) gnome (G)  --> GDM il pannello delle applicazioni e nautilus che mi permette di sfogliare le risorse.
 
#yum --enablerepo=c6-media install -y gdm gnome-panel nautilus	
 
 
================================================================================ 
 Package                   Arch   Version                        Repository 
                                                                           Size 
================================================================================ 
Installing: 
 gdm                       x86_64 1:2.30.4-33.el6_2              c6-media 1.0 M 
 gnome-panel               x86_64 2.30.2-14.el6                  c6-media 2.1 M 
 nautilus                  x86_64 2.28.4-19.el6                  c6-media 3.7 M 
Installing for dependencies: 
 ConsoleKit-x11            x86_64 0.4.1-3.el6                    c6-media  20 k 
 DeviceKit-power           x86_64 014-3.el6                      c6-media  91 k 
 GConf2                    x86_64 2.28.0-6.el6                   c6-media 964 k 
 GConf2-gtk                x86_64 2.28.0-6.el6                   c6-media  23 k 
 ORBit2                    x86_64 2.14.17-3.1.el6                c6-media 168 k 
 alsa-lib                  x86_64 1.0.22-3.el6                   c6-media 370 k 
 at-spi                    x86_64 1.28.1-2.el6.centos            c6-media 215 k 
 atk                       x86_64 1.28.0-2.el6                   c6-media 191 k 
 avahi                     x86_64 0.6.25-11.el6                  c6-media 217 k 
 avahi-glib                x86_64 0.6.25-11.el6                  c6-media  20 k 
 avahi-libs                x86_64 0.6.25-11.el6                  c6-media  54 k 
 cairo                     x86_64 1.8.8-3.1.el6                  c6-media 309 k 
 control-center            x86_64 1:2.28.1-37.el6                c6-media 2.6 M 
 control-center-filesystem x86_64 1:2.28.1-37.el6                c6-media  50 k 
 cups-libs                 x86_64 1:1.4.2-48.el6                 c6-media 315 k 
 dbus-x11                  x86_64 1:1.2.24-5.el6_1               c6-media  40 k 
 desktop-file-utils        x86_64 0.15-9.el6                     c6-media  47 k 
 dmz-cursor-themes         noarch 0.4-4.el6                      c6-media 390 k 
 dosfstools                x86_64 3.0.9-4.el6                    c6-media  78 k 
 evolution-data-server     x86_64 2.28.3-15.el6                  c6-media 2.6 M 
 exempi                    x86_64 2.1.0-5.el6                    c6-media 337 k 
 flac                      x86_64 1.2.1-6.1.el6                  c6-media 243 k 
 fontconfig                x86_64 2.8.0-3.el6                    c6-media 186 k 
 gdm-libs                  x86_64 1:2.30.4-33.el6_2              c6-media  97 k 
 gnome-desktop             x86_64 2.28.2-9.el6.centos            c6-media 988 k 
 gnome-disk-utility-libs   x86_64 2.30.1-2.el6                   c6-media 1.0 M 
 gnome-icon-theme          noarch 2.28.0-2.el6                   c6-media 3.9 M 
 gnome-keyring             x86_64 2.28.2-7.el6                   c6-media 811 k 
 gnome-keyring-pam         x86_64 2.28.2-7.el6                   c6-media  29 k 
 gnome-menus               x86_64 2.28.0-4.el6                   c6-media 195 k 
 gnome-panel-libs          x86_64 2.30.2-14.el6                  c6-media  64 k 
 gnome-python2             x86_64 2.28.0-3.el6                   c6-media  45 k 
 gnome-python2-gnome       x86_64 2.28.0-3.el6                   c6-media  74 k 
 gnome-python2-gnomevfs    x86_64 2.28.0-3.el6                   c6-media  78 k 
 gnome-session             x86_64 2.28.0-18.el6                  c6-media 438 k 
 gnome-session-xsession    x86_64 2.28.0-18.el6                  c6-media  30 k 
 gnome-settings-daemon     x86_64 2.28.2-20.el6                  c6-media 561 k 
 gnome-themes              noarch 2.28.1-6.el6                   c6-media 3.4 M 
 gnome-vfs2                x86_64 2.24.2-6.el6                   c6-media 739 k 
 gnutls                    x86_64 2.8.5-4.el6_2.2                c6-media 342 k 
 gstreamer                 x86_64 0.10.29-1.el6                  c6-media 764 k 
 gstreamer-tools           x86_64 0.10.29-1.el6                  c6-media  23 k 
 gtk2                      x86_64 2.18.9-10.el6                  c6-media 3.3 M 
 gtk2-engines              x86_64 2.18.4-5.el6.centos            c6-media 282 k 
 gvfs                      x86_64 1.4.3-12.el6                   c6-media 891 k 
 hicolor-icon-theme        noarch 0.11-1.1.el6                   c6-media  40 k 
 iso-codes                 noarch 3.16-2.el6                     c6-media 2.4 M 
 jasper-libs               x86_64 1.900.1-15.el6_1.1             c6-media 136 k 
 libICE                    x86_64 1.0.6-1.el6                    c6-media  53 k 
 libIDL                    x86_64 0.8.13-2.1.el6                 c6-media  83 k 
 libSM                     x86_64 1.1.0-7.1.el6                  c6-media  26 k 
 libXScrnSaver             x86_64 1.2.0-1.el6                    c6-media  19 k 
 libXcomposite             x86_64 0.4.1-2.el6                    c6-media  17 k 
 libXcursor                x86_64 1.1.10-2.el6                   c6-media  32 k 
 libXdamage                x86_64 1.1.2-1.el6                    c6-media  16 k 
 libXft                    x86_64 2.1.13-4.1.el6                 c6-media  49 k 
 libXi                     x86_64 1.3-3.el6                      c6-media  32 k 
 libXinerama               x86_64 1.1-1.el6                      c6-media  15 k 
 libXmu                    x86_64 1.0.5-1.el6                    c6-media  59 k 
 libXrandr                 x86_64 1.3.0-4.el6                    c6-media  30 k 
 libXrender                x86_64 0.9.5-1.el6                    c6-media  27 k 
 libXres                   x86_64 1.0.4-1.el6                    c6-media  15 k 
 libXt                     x86_64 1.0.7-1.el6                    c6-media 174 k 
 libXtst                   x86_64 1.0.99.2-3.el6                 c6-media  22 k 
 libXxf86misc              x86_64 1.0.2-1.el6                    c6-media  15 k 
 libXxf86vm                x86_64 1.1.0-1.el6                    c6-media  18 k 
 libart_lgpl               x86_64 2.3.20-5.1.el6                 c6-media  65 k 
 libasyncns                x86_64 0.8-1.1.el6                    c6-media  24 k 
 libatasmart               x86_64 0.17-4.el6_2                   c6-media  38 k 
 libbonobo                 x86_64 2.24.2-5.el6                   c6-media 418 k 
 libbonoboui               x86_64 2.24.2-3.el6                   c6-media 326 k 
 libcanberra               x86_64 0.22-1.el6.centos              c6-media  66 k 
 libcanberra-gtk2          x86_64 0.22-1.el6.centos              c6-media  26 k 
 libcdio                   x86_64 0.81-3.1.el6                   c6-media 246 k 
 libcroco                  x86_64 0.6.2-5.el6                    c6-media 100 k 
 libdaemon                 x86_64 0.14-1.el6                     c6-media  28 k 
 libexif                   x86_64 0.6.16-4.1.el6                 c6-media 160 k 
 libgail-gnome             x86_64 1.20.1-4.1.el6.centos          c6-media  25 k 
 libglade2                 x86_64 2.6.4-3.1.el6                  c6-media  60 k 
 libgnome                  x86_64 2.28.0-11.el6                  c6-media 502 k 
 libgnomecanvas            x86_64 2.26.0-4.el6                   c6-media 208 k 
 libgnomekbd               x86_64 2.28.2-2.el6                   c6-media 130 k 
 libgnomeui                x86_64 2.24.1-4.el6                   c6-media 680 k 
 libgsf                    x86_64 1.14.15-5.el6                  c6-media 116 k 
 libgudev1                 x86_64 147-2.41.el6                   c6-media  59 k 
 libgweather               x86_64 2.28.0-5.el6                   c6-media 3.2 M 
 libical                   x86_64 0.43-5.1.el6                   c6-media 179 k 
 libjpeg                   x86_64 6b-46.el6                      c6-media 134 k 
 libmcpp                   x86_64 2.7.2-4.1.el6                  c6-media  69 k 
 libnotify                 x86_64 0.5.0-1.el6                    c6-media  35 k 
 libogg                    x86_64 2:1.1.4-2.1.el6                c6-media  21 k 
 libpng                    x86_64 2:1.2.49-1.el6_2               c6-media 182 k 
 libproxy                  x86_64 0.3.0-2.el6                    c6-media  39 k 
 libproxy-bin              x86_64 0.3.0-2.el6                    c6-media 8.1 k 
 libproxy-python           x86_64 0.3.0-2.el6                    c6-media 8.2 k 
 librsvg2                  x86_64 2.26.0-5.el6_1.1.0.1.centos    c6-media 138 k 
 libsndfile                x86_64 1.0.20-5.el6                   c6-media 233 k 
 libsoup                   x86_64 2.28.2-1.el6_1.1               c6-media 162 k 
 libtasn1                  x86_64 2.3-3.el6_2.1                  c6-media 238 k 
 libtdb                    x86_64 1.2.1-3.el6                    c6-media  28 k 
 libthai                   x86_64 0.1.12-3.el6                   c6-media 183 k 
 libtiff                   x86_64 3.9.4-5.el6_2                  c6-media 341 k 
 libtool-ltdl              x86_64 2.2.6-15.5.el6                 c6-media  44 k 
 libvorbis                 x86_64 1:1.2.3-4.el6_2.1              c6-media 168 k 
 libwacom                  x86_64 0.5-3.el6                      c6-media  21 k 
 libwacom-data             noarch 0.5-3.el6                      c6-media  16 k 
 libwnck                   x86_64 2.28.0-3.el6                   c6-media 334 k 
 libxklavier               x86_64 4.0-9.el6                      c6-media  56 k 
 libxslt                   x86_64 1.1.26-2.el6                   c6-media 450 k 
 mcpp                      x86_64 2.7.2-4.1.el6                  c6-media  23 k 
 mdadm                     x86_64 3.2.3-9.el6                    c6-media 331 k 
 metacity                  x86_64 2.28.0-23.el6                  c6-media 1.2 M 
 mtools                    x86_64 4.0.12-1.el6                   c6-media 194 k 
 nautilus-extensions       x86_64 2.28.4-19.el6                  c6-media  53 k 
 notification-daemon       x86_64 0.5.0-1.el6                    c6-media  69 k 
 pango                     x86_64 1.28.1-3.el6_0.5.1.centos      c6-media 350 k 
 parted                    x86_64 2.1-18.el6                     c6-media 605 k 
 plymouth-gdm-hooks        x86_64 0.8.3-24.el6.centos            c6-media  28 k 
 plymouth-utils            x86_64 0.8.3-24.el6.centos            c6-media  33 k 
 polkit-desktop-policy     noarch 0.96-2.el6_0.1                 c6-media 6.6 k 
 polkit-gnome              x86_64 0.96-3.el6                     c6-media  88 k 
 pulseaudio-gdm-hooks      x86_64 0.9.21-13.el6                  c6-media  16 k 
 pulseaudio-libs           x86_64 0.9.21-13.el6                  c6-media 462 k 
 pulseaudio-libs-glib2     x86_64 0.9.21-13.el6                  c6-media  23 k 
 pycairo                   x86_64 1.8.6-2.1.el6                  c6-media 172 k 
 pygobject2                x86_64 2.20.0-5.el6                   c6-media 172 k 
 pygtk2                    x86_64 2.16.0-3.el6                   c6-media 986 k 
 rarian                    x86_64 0.8.1-5.1.el6                  c6-media  97 k 
 rarian-compat             x86_64 0.8.1-5.1.el6                  c6-media  61 k 
 redhat-menus              noarch 14.0.0-3.el6                   c6-media 168 k 
 sg3_utils-libs            x86_64 1.28-4.el6                     c6-media  51 k 
 sgml-common               noarch 0.6.3-32.el6                   c6-media  43 k 
 shared-mime-info          x86_64 0.70-4.el6                     c6-media 209 k 
 smp_utils                 x86_64 0.94-4.el6                     c6-media 103 k 
 sound-theme-freedesktop   noarch 0.7-3.el6                      c6-media 388 k 
 startup-notification      x86_64 0.10-2.1.el6                   c6-media  37 k 
 system-gnome-theme        noarch 60.0.2-1.el6                   c6-media  11 k 
 system-icon-theme         noarch 6.0.0-2.el6                    c6-media 112 k 
 udisks                    x86_64 1.0.1-4.el6                    c6-media 168 k 
 unique                    x86_64 1.1.4-2.el6                    c6-media  53 k 
 usermode                  x86_64 1.102-3.el6                    c6-media 187 k 
 xml-common                noarch 0.6.3-32.el6                   c6-media 9.5 k 
 xorg-x11-drv-wacom        x86_64 0.13.0-6.el6                   c6-media 228 k 
 xorg-x11-server-utils     x86_64 7.5-5.2.el6                    c6-media 134 k 
 xorg-x11-xauth            x86_64 1:1.0.2-7.1.el6                c6-media  35 k 
 xorg-x11-xinit            x86_64 1.0.9-13.el6                   c6-media  43 k 
 zenity                    x86_64 2.28.0-1.el6                   c6-media 2.6 M 
 
Transaction Summary 
================================================================================ 
Install     150 Package(s) 
 
Total download size: 56 M 
Installed size: 232 M 
 
 
Servizi aggiunti in seguito all'installazione di gdm gnome-panel nautilus:
 
 
avahi-daemon    0:off   1:off   2:off   3:on    4:on    5:on    6:off 
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off 
 
 
---installo i font grafici 
 
#yum --enablerepo=c6-media install -y liberation-sans-fonts
 
 
================================================================================ 
 Package                   Arch     Version                    Repository  Size 
================================================================================ 
Installing: 
 liberation-sans-fonts     noarch   1.05.1.20090721-5.el6      c6-media   275 k 
Installing for dependencies: 
 fontpackages-filesystem   noarch   1.41-1.1.el6               c6-media   8.8 k 
 liberation-fonts-common   noarch   1.05.1.20090721-5.el6      c6-media    21 k 
 
Transaction Summary 
================================================================================ 
Install       3 Package(s) 
 
Total download size: 305 k 
Installed size: 624 k 
 
 
---Nessun servizio installato
 
---installo firefox (OPZIONALE) 
 
#yum --enablerepo=c6-media install -y firefox
 
 
================================================================================ 
 Package                Arch       Version                   Repository    Size 
================================================================================ 
Installing: 
 firefox                x86_64     10.0.5-1.el6.centos       c6-media      20 M 
Installing for dependencies: 
 centos-indexhtml       noarch     6-1.el6.centos            c6-media      70 k 
 hunspell               x86_64     1.2.8-16.el6              c6-media     177 k 
 mozilla-filesystem     x86_64     1.9-5.1.el6               c6-media     4.7 k 
 redhat-bookmarks       noarch     6-1.el6.centos            c6-media     4.1 k 
 xulrunner              x86_64     10.0.5-1.el6.centos       c6-media      12 M 
 
Transaction Summary 
================================================================================ 
Install       6 Package(s) 
 
Total download size: 32 M 
Installed size: 52 M 
 
 
---Nessun servizio installato
 
---installo i pacchetti per la virtualizzazione
 
#yum --enablerepo=c6-media groupinstall -y "Virtualization”
 
 
================================================================================ 
 Package             Arch        Version                    Repository     Size 
================================================================================ 
Installing: 
 qemu-kvm            x86_64      2:0.12.1.2-2.295.el6       c6-media      1.2 M 
Installing for dependencies: 
 celt051             x86_64      0.5.1.3-0.el6              c6-media       50 k 
 gpxe-roms-qemu      noarch      0.9.7-6.9.el6              c6-media      219 k 
 libaio              x86_64      0.3.107-10.el6             c6-media       21 k 
 libusb1             x86_64      1.0.9-0.5.rc1.el6          c6-media       80 k 
 qemu-img            x86_64      2:0.12.1.2-2.295.el6       c6-media      415 k 
 seabios             x86_64      0.6.1.2-19.el6             c6-media       90 k 
 sgabios-bin         noarch      0-0.3.20110621svn.el6      c6-media      6.6 k 
 spice-server        x86_64      0.10.1-10.el6              c6-media      274 k 
 usbredir            x86_64      0.4.3-1.el6                c6-media       37 k 
 vgabios             noarch      0.6b-3.6.el6               c6-media       42 k 
 
Transaction Summary 
================================================================================ 
Install      11 Package(s) 
 
Total download size: 2.5 M 
Installed size: 7.1 M 
 
 
Servizi aggiunti in seguito all'installazione di “Virtualization” 
 
 
ksm             0:off   1:off   2:off   3:on    4:on    5:on    6:off 
ksmtuned        0:off   1:off   2:off   3:on    4:on    5:on    6:off 
 
 
 
---installo i pacchetti per la gestione della virtualizzazione
 
#yum --enablerepo=c6-media groupinstall -y "Virtualization Client”
 
 
================================================================================ 
 Package                 Arch   Version                          Repository 
                                                                           Size 
================================================================================ 
Installing: 
 python-virtinst         noarch 0.600.0-8.el6                    c6-media 488 k 
 virt-manager            x86_64 0.9.0-14.el6                     c6-media 1.0 M 
 virt-top                x86_64 1.0.4-3.13.el6                   c6-media 364 k 
 virt-viewer             x86_64 0.5.2-9.el6                      c6-media 191 k 
Installing for dependencies: 
 augeas-libs             x86_64 0.9.0-4.el6                      c6-media 317 k 
 cvs                     x86_64 1.11.23-11.el6_2.1               c6-media 712 k 
 cyrus-sasl-md5          x86_64 2.1.23-13.el6                    c6-media  47 k 
 dbus-python             x86_64 0.83.0-6.1.el6                   c6-media 204 k 
 gettext                 x86_64 0.17-16.el6                      c6-media 1.8 M 
 gnome-python2-canvas    x86_64 2.28.0-3.el6                     c6-media  31 k 
 gnome-python2-desktop   x86_64 2.28.0-4.el6                     c6-media  63 k 
 gnome-python2-gconf     x86_64 2.28.0-3.el6                     c6-media  41 k 
 gnome-python2-gnomekeyring 
                         x86_64 2.28.0-4.el6                     c6-media  24 k 
 gnutls-utils            x86_64 2.8.5-4.el6_2.2                  c6-media  99 k 
 gtk-vnc                 x86_64 0.3.10-3.el6                     c6-media  95 k 
 gtk-vnc-python          x86_64 0.3.10-3.el6                     c6-media  17 k 
 libcacard               x86_64 0.15.0-2.el6                     c6-media  41 k 
 libgomp                 x86_64 4.4.6-4.el6                      c6-media 117 k 
 libnl                   x86_64 1.1-14.el6                       c6-media 121 k 
 libpcap                 x86_64 14:1.0.0-6.20091201git117cb5.el6 c6-media 126 k 
 libselinux-python       x86_64 2.0.94-5.3.el6                   c6-media 202 k 
 libvirt-client          x86_64 0.9.10-21.el6                    c6-media 3.2 M 
 libvirt-python          x86_64 0.9.10-21.el6                    c6-media 394 k 
 libxml2-python          x86_64 2.7.6-4.el6_2.4                  c6-media 320 k 
 nc                      x86_64 1.84-22.el6                      c6-media  57 k 
 netcf-libs              x86_64 0.1.9-2.el6                      c6-media  51 k 
 numactl                 x86_64 2.0.7-3.el6                      c6-media  59 k 
 pygtk2-libglade         x86_64 2.16.0-3.el6                     c6-media  22 k 
 spice-glib              x86_64 0.11-11.el6                      c6-media 266 k 
 spice-gtk               x86_64 0.11-11.el6                      c6-media  49 k 
 spice-gtk-python        x86_64 0.11-11.el6                      c6-media  20 k 
 vte                     x86_64 0.25.1-7.el6                     c6-media 354 k 
 yajl                    x86_64 1.0.7-3.el6                      c6-media  27 k 
 
Transaction Summary 
================================================================================ 
Install      33 Package(s) 
 
Total download size: 11 M 
Installed size: 39 M 
 
 
---Nessun servizio installato
 
---installo il demone che mi permette di gestire le macchine virtuali
 
#yum --enablerepo=c6-media install -y libvirt
 
 
================================================================================ 
 Package                 Arch   Version                          Repository 
                                                                           Size 
================================================================================ 
Installing: 
 libvirt                 x86_64 0.9.10-21.el6                    c6-media 1.9 M 
Installing for dependencies: 
 device-mapper-event     x86_64 1.02.74-10.el6                   c6-media  88 k 
 device-mapper-event-libs 
                         x86_64 1.02.74-10.el6                   c6-media  83 k 
 dnsmasq                 x86_64 2.48-6.el6                       c6-media 147 k 
 ebtables                x86_64 2.0.9-6.el6                      c6-media  95 k 
 iscsi-initiator-utils   x86_64 6.2.0.872-41.el6                 c6-media 654 k 
 keyutils                x86_64 1.4-4.el6                        c6-media  39 k 
 libcgroup               x86_64 0.37-4.el6                       c6-media 104 k 
 libevent                x86_64 1.4.13-4.el6                     c6-media  66 k 
 libgssglue              x86_64 0.1-11.el6                       c6-media  23 k 
 libtirpc                x86_64 0.2.1-5.el6                      c6-media  78 k 
 lvm2                    x86_64 2.02.95-10.el6                   c6-media 613 k 
 lvm2-libs               x86_64 2.02.95-10.el6                   c6-media 678 k 
 lzo                     x86_64 2.03-3.1.el6                     c6-media  55 k 
 lzop                    x86_64 1.02-0.9.rc1.el6                 c6-media  50 k 
 nfs-utils               x86_64 1:1.2.3-26.el6                   c6-media 316 k 
 nfs-utils-lib           x86_64 1.1.5-4.el6                      c6-media  67 k 
 numad                   x86_64 0.5-4.20120522git.el6            c6-media  24 k 
 radvd                   x86_64 1.6-1.el6                        c6-media  75 k 
 rpcbind                 x86_64 0.2.0-9.el6                      c6-media  51 k 
 xz                      x86_64 4.999.9-0.3.beta.20091007git.el6 c6-media 137 k 
 
Transaction Summary 
================================================================================ 
Install      21 Package(s) 
 
Total download size: 5.2 M 
Installed size: 13 M 
 
 
Servizi aggiunti in seguito all'installazione di libvirt:
 
 
cgconfig        0:off   1:off   2:on    3:on    4:on    5:on    6:off 
cgred           0:off   1:off   2:off   3:off   4:off   5:off   6:off
dnsmasq         0:off   1:off   2:off   3:off   4:off   5:off   6:off
ebtables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
iscsi           0:off   1:off   2:off   3:on    4:on    5:on    6:off 
iscsid          0:off   1:off   2:off   3:on    4:on    5:on    6:off
libvirt-guests  0:off   1:off   2:on    3:on    4:on    5:on    6:off 
libvirtd        0:off   1:off   2:off   3:on    4:on    5:on    6:off 
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off 
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off 
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off 
numad           0:off   1:off   2:off   3:off   4:off   5:off   6:off
radvd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off 
rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off 
rpcidmapd       0:off   1:off   2:off   3:on    4:on    5:on    6:off 
rpcsvcgssd      0:off   1:off   2:off   3:off   4:off   5:off   6:off 
 
 
---installo il modulo per effettuare il bridge (indispensabile)
 
#yum --enablerepo=c6-media install -y bridge-utils
 
 
================================================================================ 
 Package              Arch           Version             Repository        Size 
================================================================================ 
Installing: 
 bridge-utils         x86_64         1.2-9.el6           c6-media          30 k 
 
Transaction Summary 
================================================================================ 
Install       1 Package(s) 
 
Total download size: 30 k 
Installed size: 57 k 
 
 
---Nessun servizio installato
 
---installo i software del cluster (indispensabile)
 
 
================================================================================ 
 Package                    Arch       Version               Repository    Size 
================================================================================ 
Installing: 
 cman                       x86_64     3.0.12.1-32.el6       c6-media     434 k 
 pacemaker                  x86_64     1.1.7-6.el6           c6-media     366 k 
Installing for dependencies: 
 cifs-utils                 x86_64     4.8.1-10.el6          c6-media      46 k 
 cluster-glue               x86_64     1.0.5-6.el6           c6-media      71 k 
 cluster-glue-libs          x86_64     1.0.5-6.el6           c6-media     116 k 
 clusterlib                 x86_64     3.0.12.1-32.el6       c6-media      96 k 
 corosync                   x86_64     1.4.1-7.el6           c6-media     189 k 
 corosynclib                x86_64     1.4.1-7.el6           c6-media     173 k 
 fence-agents               x86_64     3.1.5-17.el6          c6-media     150 k 
 fence-virt                 x86_64     0.2.3-9.el6           c6-media      36 k 
 ipmitool                   x86_64     1.8.11-13.el6         c6-media     328 k 
 libibverbs                 x86_64     1.1.6-4.el6           c6-media      45 k 
 libqb                      x86_64     0.9.0-2.el6           c6-media      62 k 
 librdmacm                  x86_64     1.0.15-2.el6          c6-media      29 k 
 libtalloc                  x86_64     2.0.1-1.1.el6         c6-media      19 k 
 lm_sensors-libs            x86_64     3.1.1-10.el6          c6-media      37 k 
 modcluster                 x86_64     0.16.2-18.el6         c6-media     191 k 
 net-snmp-libs              x86_64     1:5.5-41.el6          c6-media     1.5 M 
 net-snmp-utils             x86_64     1:5.5-41.el6          c6-media     170 k 
 oddjob                     x86_64     0.30-5.el6            c6-media      60 k 
 openais                    x86_64     1.1.1-7.el6           c6-media     192 k 
 openaislib                 x86_64     1.1.1-7.el6           c6-media      82 k 
 pacemaker-cli              x86_64     1.1.7-6.el6           c6-media     357 k 
 pacemaker-cluster-libs     x86_64     1.1.7-6.el6           c6-media      79 k 
 pacemaker-libs             x86_64     1.1.7-6.el6           c6-media     307 k 
 perl-Net-Telnet            noarch     3.03-11.el6           c6-media      56 k 
 perl-TimeDate              noarch     1:1.16-11.1.el6       c6-media      34 k 
 pexpect                    noarch     2.3-6.el6             c6-media     147 k 
 pyOpenSSL                  x86_64     0.10-2.el6            c6-media     212 k 
 python-suds                noarch     0.4.1-3.el6           c6-media     218 k 
 quota                      x86_64     1:3.17-16.el6         c6-media     197 k 
 resource-agents            x86_64     3.9.2-12.el6          c6-media     474 k 
 ricci                      x86_64     0.16.2-55.el6         c6-media     624 k 
 sg3_utils                  x86_64     1.28-4.el6            c6-media     471 k 
 tcp_wrappers               x86_64     7.6-57.el6            c6-media      61 k 
 telnet                     x86_64     1:0.17-47.el6         c6-media      58 k 
 
Transaction Summary 
================================================================================ 
Install      36 Package(s) 
 
Total download size: 7.6 M 
Installed size: 24 M 
 
 
Servizi aggiunti in seguito all'installazione:
 
 
cman           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
corosync       	0:off	1:off	2:off	3:off	4:off	5:off	6:off
ipmievd        	0:off	1:off	2:off	3:off	4:off	5:off	6:off
modclusterd       0:off 1:off 2:off 3:off 4:off 5:off 6:off 
oddjobd        	0:off	1:off	2:off	3:off	4:off	5:off	6:off
pacemaker      	0:off	1:off	2:off	3:off	4:off	5:off	6:off
quota_nld      	0:off	1:off	2:off	3:off	4:off	5:off	6:off
ricci          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
 
 
 
---installo il gruppo di pacchetti per la gestione dei PV VG e LV e filesystem cluster inoltre installa anche il programma "ccs" che mi permette di gestire il file cluster.conf
 
#yum --enablerepo=c6-media groupinstall -y "Resilient Storage"
 
 
 
================================================================================ 
 Package             Arch          Version                Repository       Size 
================================================================================ 
Installing: 
 ccs                 x86_64        0.16.2-55.el6          c6-media         47 k 
 gfs2-utils          x86_64        3.0.12.1-32.el6        c6-media        281 k 
 lvm2-cluster        x86_64        2.02.95-10.el6         c6-media        345 k 
 
Transaction Summary 
================================================================================ 
Install       3 Package(s) 
 
Total download size: 672 k 
Installed size: 1.6 M
 
 
 
---Servizi aggiunti in seguito all'installazione:
 
 
clvmd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
gfs2           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
 
 
 
---installo i pacchetto che mi permette di gestire ed esportare i dispositivi iscsi
 
#yum --enablerepo=c6-media install -y scsi-target-utils(inst14)
 
 
 
================================================================================
 Package                   Arch         Version            Repository      Size
================================================================================
Installing:
 scsi-target-utils         x86_64       1.0.24-2.el6       c6-media       170 k
Installing for dependencies:
 lsof                      x86_64       4.82-4.el6         c6-media       319 k
 perl-Config-General       noarch       2.44-1.el6         c6-media        68 k
 
Transaction Summary
================================================================================
Install       3 Package(s)
 
Total download size: 557 k
Installed size: 1.5 M
 
 
---Servizi aggiunti in seguito all'installazione:
 
 
tgtd           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
 
 
 
---Aggiorno il kernel e il firmware che mi permetteranno di installare poi il modulo drbd da un repositry esterno. Questi andranno scaricati a parte da qui.
 
# yum install kernel-2.6.32-279.19.1.el6.x86_64.rpm kernel-firmware-2.6.32-279.19.1.el6.noarch.rpm
 
 
================================================================================ 
 Package 
   Arch   Version             Repository                                   Size 
================================================================================ 
Installing: 
 kernel 
   x86_64 2.6.32-279.19.1.el6 /kernel-2.6.32-279.19.1.el6.x86_64          113 M 
Updating: 
 kernel-firmware 
   noarch 2.6.32-279.19.1.el6 /kernel-firmware-2.6.32-279.19.1.el6.noarch  16 M 
 
Transaction Summary 
================================================================================ 
Install       1 Package(s) 
Upgrade       1 Package(s) 
 
Total size: 129 M 
 
 
# reboot
 
---Scaricare dal repository “elrepo” o da -qui- i seguenti file e installarli. Se non si è in grado di configurare autonomamente il nodo per lo scarico in locale, caricarli da altro pc o da semplice chiavetta USB. Da notare l'origine dell'installazione che non è più il media dvd ma il percorso locale.
 
---Installo il modulo e il software di gestione drbd
 
#yum install kmod-drbd84-8.4.2-1.el6_3.elrepo.x86_64.rpm drbd84-utils-8.4.2-1.el6.elrepo.x86_64.rpm
 
 
================================================================================ 
 Package 
     Arch   Version              Repository                                Size 
================================================================================ 
Installing: 
 drbd84-utils 
     x86_64 8.4.2-1.el6.elrepo   /drbd84-utils-8.4.2-1.el6.elrepo.x86_64  890 k 
 kmod-drbd84 
     x86_64 8.4.2-1.el6_3.elrepo /kmod-drbd84-8.4.2-1.el6_3.elrepo.x86_64 606 k 
 
Transaction Summary 
================================================================================ 
Install       2 Package(s) 
 
Total size: 1.5 M 
Installed size: 1.5 M 
 
 
Servizi aggiunti in seguito all'installazione:
 
 
drbd           	0:off	1:off	2:on	3:on	4:on	5:on	6:off
 
 
 
---installo il software che mi permette di gestire il desktop remoto (opzionale)
 
#yum --enablerepo=c6-media install -y tigervnc-server
 
 
================================================================================ 
 Package              Arch    Version                           Repository 
                                                                           Size 
================================================================================ 
Installing: 
 tigervnc-server      x86_64  1.0.90-0.17.20110314svn4359.el6   c6-media  1.1 M 
Installing for dependencies: 
 mesa-dri-drivers     x86_64  7.11-5.el6                        c6-media   11 M 
 xorg-x11-font-utils  x86_64  1:7.2-11.el6                      c6-media   75 k 
 xorg-x11-fonts-misc  noarch  7.2-9.1.el6                       c6-media  5.8 M 
 
Transaction Summary 
================================================================================ 
Install       4 Package(s) 
 
Total download size: 18 M 
Installed size: 48 M 
 
 
Servizi aggiunti in seguito all'installazione di vncserver:
 
 
vncserver       0:off   1:off   2:off   3:off   4:off   5:off   6:off 
 
 
 
 
-CONFIGURAZIONE SISTEMA E SOFTWARE INSTALLATO
 
--CONFIGURAZIONE NETWORK
 
 
 
 
---disattivare il firewall all'avvio del SO
 
#chkconfig iptables off
 
#chkconfig ip6tables off
 
---disattivare SELinux all'avvio del SO
 
#vi /etc/selinux/config				disattivare SELinux
 
 SELINUX=disabled
 
---modificare e aggiungere le seguenti righe al file di condigurazione della scheda di rete
 
[n1str]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
 ONBOOT=yes
 BOOTPROTO=none 
 IPADDR=192.168.1.XX
 NETMASK=255.255.255.0
 GATEWAY=192.168.1.1
 
[n2str]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
 ONBOOT=yes
 BOOTPROTO=none 
 IPADDR=192.168.2.XX
 NETMASK=255.255.255.0
 GATEWAY=192.168.2.1
 
[ALL]#vi /etc/sysconfig/network-scripts/ifcfg-eth1
 
 ONBOOT=yes
 BOOTPROTO=none 
 
---aggiungere le seguenti righe al file hosts su entrambi i nodi
 
[ALL]#vi /etc/hosts
 
 192.168.1.74    n1str   n1str.stefanostrozzi.it 
 192.168.1.75    n2str   n2str.stefanostrozzi.it 
 
 
--CONFIGURAZIONE TIGERVNC-SERVER per accesso remoto (opzionale).
 
---effettuare l'accesso da ciascun nodo verso l'altro inserendo la password e rispondendo affermativamente alla richiesta di connessione.
 
[n1str]#useradd stefano
 
[n1str]#passwd stefano		
 
 
Cambio password per l'utente stefano 
Nuova password: xxxxxxx
Reimmettere la nuova password: xxxxxx
passwd: tutti gli authentication token sono stati aggiornati con successo. 
 
 
[n1str]#chkconfig vncserver on
 
---editare il seguente file e aggiungere il nome dell'utente e la geometria così come indicato.
 
[n1str]#vi /etc/sysconfig/vncservers
 
 
VNCSERVERS="1:stefano" 
VNCSERVERARGS[1]="-geometry 1024x768" 
 
 
[n1str]#su – stefano
 
[n1str]$vncpasswd
 
 
Password: 
Verify: 
 
 
[n1str]$exit
 
[n1str]#service vncserver start
 
---dal pc client è possibile accedere specificando l'ip seguito dall'id utente (192.168.1.74:1)
 
 
--INSTALLAZIONE MACCHINE VIRTUALI .
 
---Procedura grafica:
 
---Aprire Virtual-Machine-Manager
---tasto destro su localhost
---seleziona dettagli
fw22ht---scheda “reti virtuali”
---arresta rete “default”
---elimina rete “default”
---aggiungi rete seguento procedura guidata
---nome rete: “cluster”
---lasciare valori default
---disattivare DHCP
---lasciare rete virtuale isolata
---selezionare scheda “interfacce di rete”
---Aggiungi interfaccia seguendo procedura guidata
---type “bridge”
---lasciare “br0”
---attivare all'avvio
---scegliere abbinamento con “eth0”
---dopo aver prmuto fine accettare messaggio di avviso
---Aggiungi interfaccia seguendo procedura guidata
---type “bridge”
---lasciare “br1”
---attivare all'avvio
---scegliere abbinamento con “eth1”
---dopo aver prmuto fine accettare messaggio di avviso
---chiudere finestra dettagli
 
---riavvia il sistema
 
---pulsante destro su localhost
---nuova macchina virtuale
---nome: “fw1”
---lasciare default tranne tipo OS: linux versione: generico 2.6 kernel
---ram 256
---hdd 2gb
---selezionare customize after install
---opzioni avanzate
---selezionare br0
---aggiungere hardware 
---network: br1-eth1
---aggiungere hardware 
---network: cluster : Rete isolata
---Begin Installation
 
---installare il primo firewall con le seguenti impostazioni:
---scheda 1 - green – 192.168.1.1
---scheda 2 - red – 192.168.15.74
---scheda 3 - blue – 192.168.100.74
 
---installare il secondo firewall con le seguenti impostazioni:
---scheda 1 - green – 192.168.2.1
---scheda 2 - red – 192.168.15.75
---scheda 3 - blue – 192.168.100.75
 
---accertarsi che nel file di configurazione della macchina host /etc/sysconfig/network-scripts/ifcfg-br0 sia presente il GATEWAY
 
 ONBOOT=yes
 BOOTPROTO=none 
 IPADDR=192.168.2.XX
 NETMASK=255.255.255.0
 GATEWAY=192.168.2.1
 
---attivare l'avvio della VM fw al boot del pc host 
 
---configurare l'IPSec tra i due firewall
 
---inserire tutte le slide 
 
 
 
--CONFIGURAZIONE OPENSSH per accesso sicuro ai nodi senza la richiesta di autenticazione.
 
---effettuare l'accesso da ciascun nodo verso l'altro inserendo la password e rispondendo affermativamente alla richiesta di connessione.
 
[n1str]#ssh n2str		
 
 
The authenticity of host 'n2str (192.168.1.75)' can't be established. 
RSA key fingerprint is ef:9d:53:8e:51:41:d6:5e:ec:8c:f5:2e:6e:b4:ab:e3. 
Are you sure you want to continue connecting (yes/no)? Yes 
 
 
[n2str]#ssh n1str
 
---L'output sarà analogo al precedente, cambierà solo il nome host e l'IP
 
---Creare la chiave di autenticazione
 
[n1str]#ssh-keygen -t rsa -N "" -b 2047 -f /root/.ssh/id_rsa
 
 
Generating public/private rsa key pair. 
Your identification has been saved in .ssh/id_rsa. 
Your public key has been saved in .ssh/id_rsa.pub. 
The key fingerprint is: 
9b:19:30:33:0f:b9:29:2b:23:2f:8d:96:6d:7d:2d:a9 root@n1str 
The key's randomart image is: 
+--[ RSA 2047]----+ 
|                 | 
|       .         | 
|      B          | 
|       X         | 
|    . o S        | 
|     o   =       | 
|.o= o   *        | 
|o=.= . + .       | 
|..o  Eo .        | 
+-----------------+ 
 
 
---Creare inserendo all'interno del file “authorized_keys” la chiave pubblica appena create.
 
[n1str]#cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys 
 
---Copiare sull'altro nodo tutti i file della directory /root/.ssh (la prima volta inserendo la password)
 
[n1str]#scp /root/.ssh/* n2str:/root/.ssh/ 
 
--CONFIGURAZIONE DRBD.
 
---Le seguenti operazioni vanno eseguite quasi tutte su entrambi i nodi infatti è specificato [ALL] tra parentesi quadre. 
---Modificare il seguente file
 
[ALL]#vi /etc/drbd.d/global_common.conf
 
 
global { 
        usage-count yes; 
        # minor-count dialog-refresh disable-ip-verification 
} 
 
common { 
        handlers { 
                pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /u sr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; 
                pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; 
                local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"; 
                #fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; 
                # split-brain "/usr/lib/drbd/notify-split-brain.sh root"; 
                # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root"; 
                # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k"; 
                #after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh; 
                ###fence-peer   /sbin/obliterate-peer.sh; 
        } 
 
        startup { 
                wfc-timeout 10; 
                degr-wfc-timeout 120; 
                #become-primary-on both; 
                #outdated-wfc-timeout wait-after-sb 
        } 
 
        options { 
                # cpu-mask on-no-data-accessible 
        } 
 
        disk { 
                #fencing resource-and-stonith; 
                # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes 
                # disk-drain md-flushes resync-rate resync-after al-extents 
                # c-plan-ahead c-delay-target c-fill-target c-max-rate 
                # c-min-rate disk-timeout 
        } 
        protocol        C; 
        net { 
                # protocol timeout max-epoch-size max-buffers unplug-watermark 
                # connect-int ping-int sndbuf-size rcvbuf-size ko-count 
                allow-two-primaries; 
                #cram-hmac-alg shared-secret 
                after-sb-0pri discard-zero-changes; 
                after-sb-1pri discard-secondary; 
                after-sb-2pri disconnect; 
                #always-asbp rr-conflict 
                # ping-timeout data-integrity-alg tcp-cork on-congestion 
                # congestion-fill congestion-extents csums-alg verify-alg 
                # use-rle 
        } 
} 
 
 
 
---dopo aver individuato i dispositivi a blocchi da “ridondare”, creare i relativi file .res
 
[ALL]#vi /etc/drbd.d/sda5.res
 
 resource web1 { 
         #startup { 
         #       become-primary-on both; 
         #} 
         device /dev/drbd0; 
         disk /dev/sda5; 
         meta-disk internal; 
 
         on n1str { 
                 address 192.168.1.74:7788; 
         } 
 
         on n2str { 
                 address 192.168.2.75:7788; 
         } 
 }
 
[ALL]#drbdadm create-md web1
 
---l'output dovrebbe essere come il seguente
 
 
Writing meta data... 
initializing activity log 
NOT initializing bitmap 
New drbd meta data block successfully created.
 
 
[ALL]#service drbd reload
 
[n1str]#drbdadm -- --overwrite-data-of-peer primary web1
 
---la stessa procedura è da eseguire per tutti gli altri dispositivi da gestire con DRBD
 
[ALL]#vi /etc/drbd.d/sda6.res
 
 resource vm1 { 
         #startup { 
         #       become-primary-on both; 
         #} 
         device /dev/drbd1; 
         disk /dev/sda6; 
         meta-disk internal; 
 
         on n1str { 
                 address 192.168.1.74:7789; 
         } 
 
         on n2str { 
                 address 192.168.1.74:7789; 
         } 
 }
 
[ALL]#drbdadm create-md vm1
 
[ALL]#service drbd reload
 
[n1str]#drbdadm -- --overwrite-data-of-peer primary vm1
 
---mantenendo la stessa struttura sono stati segnalati in rosso i valori da cambiare
 
---riassunto:
	/dev/sda5	/dev/drbd0	500GB	web1		gfs2
	/dev/sda6	/dev/drbd1	200GB	vm1		lv
	/dev/sda7	/dev/drbd2	200GB	vm2		lv
	/dev/sda8	/dev/drbd3	10GB		wwin		iscsi
	/dev/sda9	/dev/drbd4	1GB		cond		gfs2
	/dev/sda10	/dev/drbd5	10GB		wwinsc	iscsi(per prove)
 
 
--CONFIGURAZIONE CLUSTER
 
---Esistono diverse soluzioni per la realizzazione di cluster HA. Questo progetto è stato realizzato abbinando CMAN a PACEMAKER.  
---Di seguito vengono effettuate le operazioni di preparazione del componente CMAN e  le seguenti operazioni vanno eseguite su uno dei due nodi. 
 
#ccs -f /etc/cluster/cluster.conf --createcluster clstr
 
---Viene creato il file di configurazione del nostro cluster chiamato “clstr” . Di seguito l'effetto del lancio del comando precedente che ha creato il file con i TAG basilari per cominciare a configurare il cluster.
 
 
<cluster config_version="1" name="clstr"> 
  <fence_daemon/> 
  <clusternodes/> 
  <cman/> 
  <fencedevices/> 
  <rm> 
    <failoverdomains/> 
    <resources/> 
  </rm> 
</cluster> 
 
 
#ccs -f /etc/cluster/cluster.conf --addnode n1str
 
#ccs -f /etc/cluster/cluster.conf --addnode n2str
 
 
<cluster config_version="4" name="clstr"> 
  <fence_daemon/> 
  <clusternodes> 
    <clusternode name="n1str" nodeid="1"/> 
    <clusternode name="n2str" nodeid="2"/> 
  </clusternodes> 
  <cman/> 
  <fencedevices/> 
  <rm> 
    <failoverdomains/> 
    <resources/> 
  </rm> 
</cluster> 
 
 
#ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk
 
 
<cluster config_version="4" name="clstr"> 
  <fence_daemon/> 
  <clusternodes> 
    <clusternode name="n1str" nodeid="1"/> 
    <clusternode name="n2str" nodeid="2"/> 
  </clusternodes> 
  <cman/> 
  <fencedevices> 
    <fencedevice agent="fence_pcmk" name="pcmk"/> 
  </fencedevices> 
  <rm> 
    <failoverdomains/> 
    <resources/> 
  </rm> 
</cluster> 
 
 
#ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect n1str 
 
#ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect n2str
 
 
<cluster config_version="6" name="clstr"> 
  <fence_daemon/> 
  <clusternodes> 
    <clusternode name="n1str" nodeid="1"> 
      <fence> 
        <method name="pcmk-redirect"/> 
      </fence> 
    </clusternode> 
    <clusternode name="n2str" nodeid="2"> 
      <fence> 
        <method name="pcmk-redirect"/> 
      </fence> 
    </clusternode> 
  </clusternodes> 
  <cman/> 
  <fencedevices> 
    <fencedevice agent="fence_pcmk" name="pcmk"/> 
  </fencedevices> 
  <rm> 
    <failoverdomains/> 
    <resources/> 
  </rm> 
</cluster> 
 
 
#ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk n1str pcmk-redirect port=n1str 
 
#ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk n2str pcmk-redirect port=n2str
 
 
<cluster config_version="8" name="clstr"> 
  <fence_daemon/> 
  <clusternodes> 
    <clusternode name="n1str" nodeid="1"> 
      <fence> 
        <method name="pcmk-redirect"> 
          <device name="pcmk" port="n1str"/> 
        </method> 
      </fence> 
    </clusternode> 
    <clusternode name="n2str" nodeid="2"> 
      <fence> 
        <method name="pcmk-redirect"> 
          <device name="pcmk" port="n2str"/> 
        </method> 
      </fence> 
    </clusternode> 
  </clusternodes> 
  <cman/> 
  <fencedevices> 
    <fencedevice agent="fence_pcmk" name="pcmk"/> 
  </fencedevices> 
  <rm> 
    <failoverdomains/> 
    <resources/> 
  </rm> 
</cluster> 
 
 
---Al risultato finale sono arrivato effettuando numerose prove ed editando manualmente il file “cluster.conf”. Quindi di seguito indico i parametri da aggiungere manualmente editando il file “cluster.conf” (in rosso)
 
#vi /etc/cluster/cluster.conf [ONE]
 
 
<cluster config_version="10" name="clstr"> 
  <fence_daemon clean_start="1" post_fail_delay="0" post_join_delay="5"/> 
  <clusternodes> 
    <clusternode name="n1str" nodeid="1"> 
      <fence> 
        <method name="pcmk-redirect"> 
          <device name="pcmk" port="n1str"/> 
        </method> 
      </fence> 
    </clusternode> 
    <clusternode name="n2str" nodeid="2"> 
      <fence> 
        <method name="pcmk-redirect"> 
          <device name="pcmk" port="n2str"/> 
        </method> 
      </fence> 
    </clusternode> 
  </clusternodes> 
  <cman expected_votes="1" two_node="1" transport="udpu"//> 
  <fencedevices> 
    <fencedevice agent="fence_pcmk" name="pcmk"/> 
  </fencedevices> 
  <rm> 
    <failoverdomains/> 
    <resources/> 
  </rm> 
  <dlm enable_quorum="0" enable_fencing="0"/> 
  <gfs_controld enable_withdraw="0"/> 
</cluster> 
 
 
---Convalidare la configurazione modificata manualmente notando che è stato cambiato il valore di configurazione della versione.
 
#ccs_config_validate
 
---In fine copiare sull'altro nodo il file di configurazione di CMAN
 
#scp /etc/cluster/cluster.conf n2str:/etc/cluster/
 
---Cominciamo a configurare PACEMAKER
 
#service pacemaker start	[ALL]
 
 
--CONFIGURAZIONE CLVMD (CLUSTER LOGICAL VOLUME).
 
---Le seguenti operazioni vanno eseguite quasi tutte su entrambi i nodi infatti è specificato [ALL] tra parentesi quadre. 
---Queste operazioni sono preliminari alla configurazione di GFS2 la cui operatività è subordinato (secondo RedHat) alla creazione di LV.
---Apparentemente risulta inutile utilizzare per questo progetto la suite “Resilient Storage”. In realtà esso è l'unico sistema che mi permette di effettuare il live migration della macchine virtuali.
---Accertarsi che su entrambi i nodi siano 'primary' le risorse DRBD che devono far parte del CLVMD
 
#service drbd status	[ONE]
 
 
drbd driver loaded OK; device status: 
version: 8.4.2 (api:1/proto:86-101) 
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10 
m:res   cs         ro               ds                 p  mounted  fstype 
0:web1  Connected  Primary/Primary  UpToDate/UpToDate  C 
1:vm1   Connected  Primary/Primary  UpToDate/UpToDate  C 
2:vm2   Connected  Primary/Primary  UpToDate/UpToDate  C 
3:wwin  Connected  Primary/Primary  UpToDate/UpToDate  C 
4:cond  Connected  Primary/Primary  UpToDate/UpToDate  C 
 
 
---Editare il seguente file e modificare i parametri per la gestione dei LV da parte del cluster. In rosso i valori modificati rispetto all'originale. In verde la sezione che con la versione 6.4 della CentOS è stata abilitata rispetto alla versione 6.3.
---In realtà il file 'lvm.conf' è dettagliatissimo in ogni parametro con tutti i commenti che spiegano ogni singolo valore e come modificarlo. Per semplicità ho riportato solo il contenuto effettivo. E' sempre consigliabile farsi una copia dell'originale.
 
#vi /etc/lvm/lvm.conf	[ALL]
 
 
devices { 
 
    dir = "/dev" 
    scan = [ "/dev" ] 
    obtain_device_list_from_udev = 1 
    preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] 
    filter = [ "a|/dev/drbd*|", "r/.*/" ] 
    cache_dir = "/etc/lvm/cache" 
    cache_file_prefix = "" 
    write_cache_state = 1 
    sysfs_scan = 1 
    multipath_component_detection = 1 
    md_component_detection = 1 
    md_chunk_alignment = 1 
    data_alignment_detection = 1 
    data_alignment = 0 
    data_alignment_offset_detection = 1 
    ignore_suspended_devices = 0 
    disable_after_error_count = 0 
    require_restorefile_with_uuid = 1 
    pv_min_size = 2048 
    issue_discards = 0 
} 
 
allocation { 
 
    maximise_cling = 1 
    mirror_logs_require_separate_pvs = 0 
    thin_pool_metadata_require_separate_pvs = 0 
} 
 
log { 
    verbose = 0 
    silent = 0 
    syslog = 1 
    overwrite = 0 
    level = 0 
    indent = 1 
    command_names = 0 
    prefix = "  " 
} 
 
backup { 
    backup = 1 
    backup_dir = "/etc/lvm/backup" 
    archive = 1 
    archive_dir = "/etc/lvm/archive" 
    retain_min = 10 
    retain_days = 30 
} 
 
shell { 
    history_size = 100 
} 
 
global { 
    umask = 077 
    test = 0 
    units = "h" 
    si_unit_consistency = 1 
    activation = 1 
    proc = "/proc" 
    locking_type = 3 
    wait_for_locks = 0 
    #fallback_to_clustered_locking = 1 
    fallback_to_local_locking = 1 
    locking_dir = "/var/lock/lvm" 
    prioritise_write_locks = 1 
    abort_on_internal_errors = 0 
    detect_internal_vg_cache_corruption = 0 
    metadata_read_only = 0 
    mirror_segtype_default = "mirror" 
    use_lvmetad = 0 
    thin_check_executable = "/usr/sbin/thin_check" 
    thin_check_options = [ "-q" ] 
} 
 
activation { 
    checks = 0 
    udev_sync = 1 
    udev_rules = 1 
    verify_udev_operations = 0 
    retry_deactivation = 1 
    missing_stripe_filler = "error" 
    use_linear_target = 1 
    reserved_stack = 64 
    reserved_memory = 8192 
    process_priority = -18 
    mirror_region_size = 512 
    readahead = "auto" 
    raid_fault_policy = "warn" 
    mirror_log_fault_policy = "allocate" 
    mirror_image_fault_policy = "remove" 
    snapshot_autoextend_threshold = 100 
    snapshot_autoextend_percent = 20 
    thin_pool_autoextend_threshold = 100 
    thin_pool_autoextend_percent = 20 
    use_mlockall = 0 
    monitoring = 1 
    polling_interval = 15 
} 
 
#################### 
# Advanced section # 
#################### 
 
dmeventd { 
    mirror_library = "libdevmapper-event-lvm2mirror.so" 
    snapshot_library = "libdevmapper-event-lvm2snapshot.so" 
    thin_library = "libdevmapper-event-lvm2thin.so" 
}
 
 
#reboot	[ALL]
 
---Creare i PV (phisical volume) su cui verrano creati i VG (volume group) e gli LV (logical volume) che saranno gestiti dal cluster.
 
#service clvmd start	[ALL]
 
#pvcreate /dev/drbd0	[ONE]
 
#pvcreate /dev/drbd1	[ONE]
 
#pvcreate /dev/drbd2	[ONE]
 
#pvcreate /dev/drbd4	[ONE]
 
---per verificare la corretta messa in opera dei PV possiamo eseguire il seguente comando che visualizzerà l'elenco dei PV appena creati. Se si vuole avere maggiori informazioni è possibile lanciare un'altro comando che è “vgdisplay” oppure “vgscan”
 
#pvs		[ALL]
 
 
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/drbd0      lvm2 a--  499,99g 499,99g 
  /dev/drbd1      lvm2 a--  200,00g 200,00g 
  /dev/drbd2      lvm2 a--  200,00g 200,00g 
  /dev/drbd4      lvm2 a--    1,01g   1,01g 
 
 
#pscan		[ALL]
 
 
  PV /dev/drbd0                      lvm2 [499,99 GiB] 
  PV /dev/drbd1                      lvm2 [200,00 GiB] 
  PV /dev/drbd2                      lvm2 [200,00 GiB] 
  PV /dev/drbd4                      lvm2 [1,01 GiB] 
  Total: 4 [901,00 GiB] / in use: 0 [0   ] / in no VG: 4 [901,00 GiB] 
 
 
 
#pvdisplay		[ALL]
 
 
  "/dev/drbd0" is a new physical volume of "499,99 GiB" 
  --- NEW Physical volume --- 
  PV Name               /dev/drbd0 
  VG Name               
  PV Size               499,99 GiB 
  Allocatable           NO 
  PE Size               0   
  Total PE              0 
  Free PE               0 
  Allocated PE          0 
  PV UUID               n9mfvb-jr1z-7oBJ-KHnu-PV3m-wuWA-ljdQgE 
 
  "/dev/drbd1" is a new physical volume of "200,00 GiB" 
  --- NEW Physical volume --- 
  PV Name               /dev/drbd1 
  VG Name               
  PV Size               200,00 GiB 
  Allocatable           NO 
  PE Size               0   
  Total PE              0 
  Free PE               0 
  Allocated PE          0 
  PV UUID               R1r7Go-APzq-iPKZ-PGvA-BrUn-OfcR-73Of47 
 
  "/dev/drbd2" is a new physical volume of "200,00 GiB" 
  --- NEW Physical volume --- 
  PV Name               /dev/drbd2 
  VG Name               
  PV Size               200,00 GiB 
  Allocatable           NO 
  PE Size               0   
  Total PE              0 
  Free PE               0 
  Allocated PE          0 
  PV UUID               RdCEyx-pqs4-idFF-DnqH-5ZRa-quJb-k23j8J 
 
  "/dev/drbd4" is a new physical volume of "1,01 GiB" 
  --- NEW Physical volume --- 
  PV Name               /dev/drbd4 
  VG Name               
  PV Size               1,01 GiB 
  Allocatable           NO 
  PE Size               0   
  Total PE              0 
  Free PE               0 
  Allocated PE          0 
  PV UUID               FLsAn2-Taca-VQ3r-0jwM-7uo2-Lve0-fyw0Rw 
 
---Ora possiamo creare i VG che ospiteranno gli LV.
 
#vgcreate -c y vg_web /dev/drbd0	[ONE]
 
  Clustered volume group "vg_web" successfully created 
 
#vgcreate -c y vg_vm1 /dev/drbd1	[ONE]
 
  Clustered volume group "vg_vm1" successfully created 
 
#vgcreate -c y vg_vm2 /dev/drbd2	[ONE]
 
  Clustered volume group "vg_vm2" successfully created 
 
#vgcreate -c y vg_cond /dev/drbd4	[ONE]
 
  Clustered volume group "vg_cond" successfully created 
 
---piccolo particolare... se non avessi avviato il servizio CLVMD avrei dovuto usare l'opzione “-c y” per indicare al sistema che il VG che stavo per creare era di tipo cluster.
---altro piccolo particolare... se avessi voluto eliminare completamente un pv con i relativi VG e quindi reinizializzarlo avrei dovuto usare il comando “pvcreate -ff /dev/xxx”
---possiamo vedere l'effetto del comando appena lanciato dalla visualizzazione dell'elenco dei VG con i comandi “vgs”, “vgdisplay” e “vgscan”.
---Da notare che tra gli “Attr” è presente la lettera “c” che sta ad indicare il tipo di VG clustered.
 
#vgs		[ALL]
 
 
  VG      #PV #LV #SN Attr   VSize   VFree  
  vg_cond   1   0   0 wz--nc   1,01g   1,01g 
  vg_vm1    1   0   0 wz--nc 200,00g 200,00g 
  vg_vm2    1   0   0 wz--nc 200,00g 200,00g 
  vg_web    1   0   0 wz--nc 499,99g 499,99g 
 
 
#vgscan		[ALL]
 
 
  Reading all physical volumes.  This may take a while... 
  Found volume group "vg_cond" using metadata type lvm2 
  Found volume group "vg_vm2" using metadata type lvm2 
  Found volume group "vg_vm1" using metadata type lvm2 
  Found volume group "vg_web" using metadata type lvm2 
 
 
#vgdisplay		[ALL]
 
 
  --- Volume group --- 
  VG Name               vg_cond 
  System ID 
  Format                lvm2 
  Metadata Areas        1 
  Metadata Sequence No  1 
  VG Access             read/write 
  VG Status             resizable 
  Clustered             yes 
  Shared                no 
  MAX LV                0 
  Cur LV                0 
  Open LV               0 
  Max PV                0 
  Cur PV                1 
  Act PV                1 
  VG Size               1,01 GiB 
  PE Size               4,00 MiB 
  Total PE              258 
  Alloc PE / Size       0 / 0 
  Free  PE / Size       258 / 1,01 GiB 
  VG UUID               VfpdEK-7vEk-4laW-XFQx-pqJM-igQw-u6Cv1B 
 
  --- Volume group --- 
  VG Name               vg_vm2 
  System ID 
  Format                lvm2 
  Metadata Areas        1 
  Metadata Sequence No  1 
  VG Access             read/write 
  VG Status             resizable 
  Clustered             yes 
  Shared                no 
  MAX LV                0 
  Cur LV                0 
  Open LV               0 
  Max PV                0 
  Cur PV                1 
  Act PV                1 
  VG Size               200,00 GiB 
  PE Size               4,00 MiB 
  Total PE              51199 
  Alloc PE / Size       0 / 0 
  Free  PE / Size       51199 / 200,00 GiB 
  VG UUID               1GTNB3-a3e2-9s5Y-97QH-yoxL-NhR9-GJaTSM  
 
  --- Volume group --- 
  VG Name               vg_vm1 
  System ID             
  Format                lvm2 
  Metadata Areas        1 
  Metadata Sequence No  1 
  VG Access             read/write 
  VG Status             resizable 
  Clustered             yes 
  Shared                no 
  MAX LV                0 
  Cur LV                0 
  Open LV               0 
  Max PV                0 
  Cur PV                1 
  Act PV                1 
  VG Size               200,00 GiB 
  PE Size               4,00 MiB 
  Total PE              51199 
  Alloc PE / Size       0 / 0   
  Free  PE / Size       51199 / 200,00 GiB 
  VG UUID               1BfSAW-S0rF-12rp-Phwk-qNMv-R8TA-vv6RTd 
 
  --- Volume group --- 
  VG Name               vg_web 
  System ID             
  Format                lvm2 
  Metadata Areas        1 
  Metadata Sequence No  1 
  VG Access             read/write 
  VG Status             resizable 
  Clustered             yes 
  Shared                no 
  MAX LV                0 
  Cur LV                0 
  Open LV               0 
  Max PV                0 
  Cur PV                1 
  Act PV                1 
  VG Size               499,99 GiB 
  PE Size               4,00 MiB 
  Total PE              127998 
  Alloc PE / Size       0 / 0   
  Free  PE / Size       127998 / 499,99 GiB 
  VG UUID               X4NToq-9Ruu-db2b-ncIk-9Mh8-8JBG-tzZXlL 
 
 
---Ora possiamo creare i LG.
 
#lvcreate -l 100%FREE -n lv_web vg_web	[ONE]
 
  Logical volume "lv_web" created 
 
#lvcreate -l 100%FREE -n lv_cond vg_cond	[ONE]
 
  Logical volume "lv_cond" created 
 
#lvcreate -L 5G -n lv_vmx vg_vm1		[ONE]
 
  Logical volume "lv_vmx" created 
 
#lvcreate -L 5G -n lv_vmx vg_vm2		[ONE]
 
  Logical volume "lv_vmx		
	" created 
 
 
 
---possiamo vedere l'effetto del comando appena lanciato dalla visualizzazione dell'elenco dei LV con i comandi “lvs”, “lvdisplay” e “lvscan”.
 
#lvs		[ALL]
 
 
  VG      #PV #LV #SN Attr   VSize   VFree  
  vg_cond   1   0   0 wz--nc   1,01g   1,01g 
  vg_web    1   0   0 wz--nc 499,99g 499,99g 
 
 
#lvscan		[ALL]
 
 
  ACTIVE            '/dev/vg_cond/lv_cond' [1,01 GiB] inherit 
  ACTIVE            '/dev/vg_web/lv_web' [499,99 GiB] inherit 
 
 
#lvdisplay		[ALL]
 
 
  --- Logical volume --- 
  LV Path                /dev/vg_cond/lv_cond 
  LV Name                lv_cond 
  VG Name                vg_cond 
  LV UUID                X1cx9e-LT0b-4vQt-D5Fl-5dTR-gqlM-DeUfUT 
  LV Write Access        read/write 
  LV Creation host, time n2str, 2013-04-11 11:02:01 +0200 
  LV Status              available 
  # open                 0 
  LV Size                1,01 GiB 
  Current LE             258 
  Segments               1 
  Allocation             inherit 
  Read ahead sectors     auto 
  - currently set to     256 
  Block device           253:3 
 
  --- Logical volume --- 
  LV Path                /dev/vg_web/lv_web 
  LV Name                lv_web 
  VG Name                vg_web 
  LV UUID                gsurxg-uDT2-055X-46O6-k2Zg-dcdU-x8g4XE 
  LV Write Access        read/write 
  LV Creation host, time n1str, 2013-04-11 10:59:27 +0200 
  LV Status              available 
  # open                 0 
  LV Size                499,99 GiB 
  Current LE             127998 
  Segments               1 
  Allocation             inherit 
  Read ahead sectors     auto 
  - currently set to     256 
  Block device           253:0 
 
 
--CONFIGURAZIONE GFS2
 
---Ora è necessario formattare il dispositivo che ospiterà il file system GFS2. Tale operazione deve essere eseguita solo su uno dei due nodi.
---formattiamo la prima partizione che conterrà i dati condivisi tra i dui nodi del cluster.
 
 
#mkfs.gfs2 -p lock_dlm -j 2 -t clstr:gcond /dev/vg_cond/lv_cond	[ONE]
 
 
This will destroy any data on /dev/vg_cond/lv_cond. 
It appears to contain: symbolic link to `../dm-1' 
 
Are you sure you want to proceed? [y/n] y 
 
Device:                    /dev/vg_cond/lv_cond 
Blocksize:                 4096 
Device Size                0,97 GB (254976 blocks) 
Filesystem Size:           0,97 GB (254973 blocks) 
Journals:                  2 
Resource Groups:           4 
Locking Protocol:          "lock_dlm" 
Lock Table:                "clstr:gcond" 
UUID:                      27674f76-7168-6358-1402-1737039192f0 
 
 
 
---formattiamo la partizione che conterrà i dati web da pubblicare.
#mkfs.gfs2 -p lock_dlm -j 2 -t clstr:gweb /dev/vg_cond/lv_web		[ONE]
 
 
This will destroy any data on /dev/vg_web/lv_web. 
It appears to contain: symbolic link to `../dm-0' 
 
Are you sure you want to proceed? [y/n] y 
 
Device:                    /dev/vg_web/lv_web 
Blocksize:                 4096 
Device Size                488,26 GB (127994880 blocks) 
Filesystem Size:           488,26 GB (127994877 blocks) 
Journals:                  2 
Resource Groups:           1954 
Locking Protocol:          "lock_dlm" 
Lock Table:                "clstr:gweb" 
UUID:                      06e4821d-564a-41b3-1cdc-4b1c7459e289 
 
 
---ora è indispensabile create le directory su cui verranno montate le partizioni GFS2
 
#mkdir /COND		[ALL]
 
#mkdir /WEB		[ALL]
 
---editiamo il file “fstab” per aggiungere le partizioni che saranno montate automaticamente all'avvio del SO o del servizio GFS2. In rosso le righe da aggiungere.
 
#vi /etc/fstab		[ALL]
 
 
# 
# /etc/fstab 
# Created by anaconda on Tue Apr  9 11:57:08 2013 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info 
# 
UUID=5438e653-76cc-4e02-a26b-850296e05d52 /                       ext4    defaults        1 1 
UUID=7560b2db-0896-4f7d-bafa-5f78ef363146 swap                    swap    defaults        0 0 
tmpfs                   /dev/shm                tmpfs   defaults        0 0 
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0 
sysfs                   /sys                    sysfs   defaults        0 0 
proc                    /proc                   proc    defaults        0 0 
/dev/vg_cond/lv_cond    /COND                   gfs2    defaults,noatime,nodiratime     0 0 
/dev/vg_web/lv_web      /WEB                    gfs2    defaults,noatime,nodiratime     0 0 
 
 
#service gfs2 restart		[ALL]
 
 
--CONFIGURAZIONE MACCHINE VIRTUALI
 
---CREAZIONE RETE VIRTUALE E DISPOSITIVI BRIDGE SU ENTRAMBI I NODI
 
---INSTALLAZIONE SUL PRIMO NODO DEL FIREWALL
 
---INSTALLAZIONE SUL SECONDO NODO DEL FIREWALL
 
---INSTALLAZIONE SUL PRIMO NODO DELLA PRIMA vm
 
---INSTALLAZIONE SUL SECONDO NODO DELLA SECONDA vm
 
 
--CONFIGURAZIONE MONITOR DI CONNESSIONE
 
#chkconfig cman on		[ALL]
 
---creiamo il file “stricmd” per creare il demone di controllo connessione.
 
#vi /etc/init.d/stricmd		[ALL]
 
 
#! /bin/sh 
#demone di monitor connessione 
#Strozzi Internet Connection Monitor Daemon 
. /etc/rc.d/init.d/functions 
 
# Source networking configuration. 
. /etc/sysconfig/network 
 
STRICM="/usr/sbin/stricm &" 
 
[ -f /usr/sbin/stricm ] || exit 0 
 
RETVAL=0 
 
# See how we were called. 
case "$1" in 
  start) 
                echo -n "Starting Internet connection monitor Str: " 
                daemon $NICELEVEL $STRICM 
                RETVAL=$? 
                echo 
                [ $RETVAL = 0 ] && touch /var/lock/subsys/stricm 
                ;; 
  stop) 
                echo -n "Stopping Internet connection monitor: " 
                killproc stricm 
                RETVAL=$? 
                echo 
                [ $RETVAL = 0 ] && rm -f /var/lock/subsys/stricm 
                ;; 
  restart) 
                $0 stop 
                $0 start 
                RETVAL=$? 
                ;; 
  status) 
                status stricm 
                RETVAL=$? 
                ;; 
  *) 
                echo "Usage: $0 {start|stop|restart|status}" 
                exit 1 
esac 
 
exit $RETVAL 
 
---creiamo il file “stricm” che esegue lo script di controllo connessione vero e proprio.
 
#vi /usr/sbin/stricm		[ALL]
 
 
#!/bin/bash 
#script di controllo connessione a internet 
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/root 
GW=192.168.15.33 
PAUSE=10 
MISSED=0 
j=0 
 
drbdadm disconnect all 
 
while true; 
        do 
if (! ping -c 1 -w 1 $GW > /dev/null); then 
 
        if [ $j -eq 1 ]; then 
                service pacemaker stop 
                service gfs2 stop 
                service clvmd stop 
                service cman stop 
                drbdadm secondary all 
                sleep $PAUSE 
                drbdadm disconnect all 
                #echo interrompo servizi 
                j=0 
                #echo $j 
        fi 
 
elif (ping -c 1 -w 1 $GW > /dev/null); then 
 
        if [ $j -eq 0 ]; then 
                sleep 20 
                drbdadm connect all 
                sleep $PAUSE 
                drbdadm primary all 
                sleep $PAUSE 
                service cman start 
                service clvmd start 
                service gfs2 start 
                service pacemaker start 
                #echo avvio i servizi 
                j=1 
                #echo $j 
        fi 
fi 
 
sleep $PAUSE 
 
done 
 
 
---creiamo un link simbolico nella directory in cui si vuole far avviare il demone. Indicando “S” che significa start all'avvio e “71” è l'ordine di avvio in mezzo a tutti gli altri demoni.
---Infatti se si controlla il contenuto della directory si può vedere che alcuni link hanno la K davanti il che significa “kill” ovvero non si avviano al boot e il numero è sempre lo stesso che identifica anche il demone.
 
#ln -s /etc/init.d/stricmd /etc/rc2.d/S98stricmd		[ALL]
#ln -s /etc/init.d/stricmd /etc/rc3.d/S98stricmd		[ALL]
 
---Inoltre dobbiamo modificare la sequenza di avvio dei servizi drbd e libvirtd
 
#mv /etc/rc3.d/S70drbd /etc/rc3.d/S97drbd		[ALL]
 
#mv /etc/rc3.d/S97libvirtd /etc/rc3.d/S96libvirtd		[ALL]
 
---Questo viene fatto per dare il tempo alla macchina virtuale firewall di avviarsi. Anche se questo problema sarebbe ovviato dall'ultima modifica al mio script che disconnette all'avvio eventuali dispositivi connessi. Questo viene fatto perchè in caso di riavvio della macchina, se l'altro nodo è online con le risorse “primary” si verrebbe a creare una situazione di split-brian
 
---Quando si lancia per la prima volta il demone appena creato ci si deve accertare che le risorse DRBD non siano connesse.
 
#service drbd status		[ALL]
 
 
drbd driver loaded OK; device status: 
version: 8.4.2 (api:1/proto:86-101) 
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10 
m:res   cs          ro                 ds                 p       mounted  fstype 
0:web1  StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----- 
1:vm1   StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----- 
2:vm2   StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----- 
3:wwin  StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----- 
4:cond  StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----- 
 
 
#service stricmd start		[ALL]
 
---Una cosa simile andrà configurata sulla macchina virtuale WEB.
 
#vi /usr/sbin/stras		[ONE]
 
 
#!/bin/bash
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
STRAS="/usr/sbin/stras &"
[ -f /usr/sbin/stras ] || exit 0
RETVAL=0
case "$1" in
  start)
	echo -n "Avvio STRAS: "
	daemon $NICELEVEL $STRAS
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && touch /var/lock/subsys/stras
	;;
  stop)
	echo -n "Stopping STRAS: "
	killproc stras
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && rm -f /var/lock/subsys/stras
	;;
  restart)
	$0 stop
	$0 start
	RETVAL=$?
	;;
  status)
	status stras
	RETVAL=$?
	;;
*)
	echo "Usage: $0 {start|stop|restart|status}"
	exit 1
esac
 
exit $RETVAL
 
 
 
#chmod 755 /usr/sbin/stras		[ONE]
 
#vi /etc/init.d/strasd		[ONE]
 
 
#!/bin/bash
CONN=192.168.15.33
PAUSE=10
while true;
	do
		if (! ping -c1 -w 1 $CONN > /dev/null); then
			sleep $PAUSE
			shutdown -h now
		fi
		sleep $PAUSE
	done
 
 
 
#chmod 755 /etc/init.d/strasd		[ONE]
 
#ln -s /etc/init.d/strasd /etc/rc2.d/S13strasd		[ONE]
 
#ln -s /etc/init.d/strasd /etc/rc3.d/S13strasd		[ONE]
 
#service strasd start		[ONE]
 
 
 
--CONFIGURAZIONE CLUSTER
 
---Avviamo il gestore delle risorse del cluster
 
#service pacemaker start		[ALL]
 
---possiamo verificare la situazione iniziale del cluster digitando il seguente comando:
 
#crm_mon	[ONE]
 
 
============ 
Last updated: Fri May 10 15:20:15 2013 
Last change: Thu May  9 12:22:19 2013 via cibadmin on n1str 
Stack: cman 
Current DC: n2str - partition with quorum 
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14 
2 Nodes configured, unknown expected votes 
0 Resources configured. 
============ 
 
Online: [ n1str n2str ] 
 
 
---iniziamo la configurazione del cluster lanciando i seguenti comandi.
 
#crm configure property stonith-enabled="false"		[ONE]
 
#crm configure property no-quorum-policy="ignore"		[ONE]
 
#crm configure property default-resource-stickiness=INFINITY		[ONE]
 
#crm configure primitive ping ocf:pacemaker:ping params host_list="192.168.15.33" name="ping" op monitor interval="10s" timeout="60s" op start interval="0" timeout="60s" op stop interval="0" timeout="60s"	[ONE]
 
#crm configure clone c_ping ping meta globally-unique="false" 
 
---Con gli ultimi due comandi è stata creata una risorsa di tipo primitivo che svolge un'attività fondamentale di verifica connessione. In sostanza effettua il monitoraggio della connessione e verrà utilizzata dalle risorse per verificare quale sia il nodo connesso alla rete per poter erogare i servizi.
 
---Ora verrà creata l'esportazione del dispositivo ISCSI con relativo indirizzo IP a cui di dovrà puntare per usufruirne. 
 
#crm configure primitive p_ip_web ocf:heartbeat:IPaddr2 \ 
        params ip="192.168.100.200" nic="virbr0" \ 
        op monitor interval="10s" timeout="20s" \ 
        op start interval="0" timeout="20s" \ 
        op stop interval="0" timeout="20s" 
 
#crm configure primitive p_tgt_web ocf:heartbeat:iSCSITarget \ 
        params iqn="web" tid="1" \ 
        op monitor interval="60s" 
 
#crm configure primitive p_lun_web ocf:heartbeat:iSCSILogicalUnit \ 
        params target_iqn="web" lun="1" path="/dev/vg_web/lv_web" \ 
        op monitor interval="10" \ 
        meta target-role="Started" 
 
---Viene creata la risorsa Virtual Domain che consiste nella macchina virtuale che fornirà i servizi WEB
 
#crm configure primitive p_vm_web ocf:heartbeat:VirtualDomain \ 
        params config="/etc/libvirt/qemu/ce64-21.xml" migration_transport="ssh" \ 
        meta allow-migrate="true" \ 
        op start interval="0" timeout="90s" \ 
        op stop interval="0" timeout="90s" \ 
        op monitor interval="10s" timeout="60s" \ 
        op migrate_from interval="0" timeout="240s" \ 
        op migrate_to interval="0" timeout="240s" 
 
---Consideriamo che la risorsa di tipo ISCSI divrà sempre essere in linea con la macchina virtuale web. Quindi tutte le risorse che servono al dispositivo ISCSI saranno raggruppate insieme alla macchina virtuale WEB creando una risorsa “gruppo”
 
#crm configure group g_web p_tgt_web p_lun_web p_ip_web p_vm_web 
 
---E' ancora necessario indicare al cluster che il gruppo appena creato deve obbligatoriamente risiedere sul nodo che ha la connessione con il seguente comando:
 
#crm configure location l_web g_web rule $id="l_web-rule" -inf: not_defined ping or ping lte 0 
 
---Può darsi che il primo risultato del comando restituisca degli errori che andranno risolti con la pulizia di ogni risorsa 
 
#crm resource cleanup p_tgt_web 
 
#crm resource cleanup p_lun_web 
 
#crm resource cleanup p_ip_web 
 
#crm resource cleanup p_vm_web 
 
#crm resource cleanup g_web 
 
---Infine rieseguendo il comando di monitoraggio cluster avremo la seguente situazione:
 
 
============ 
Last updated: Fri May 10 15:31:32 2013 
Last change: Thu May  9 12:22:19 2013 via cibadmin on n1str 
Stack: cman 
Current DC: n2str - partition with quorum 
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14 
2 Nodes configured, unknown expected votes 
6 Resources configured. 
============ 
 
Online: [ n1str n2str ] 
 
 Resource Group: g_web 
     p_tgt_web  (ocf::heartbeat:iSCSITarget):   Started n2str 
     p_lun_web  (ocf::heartbeat:iSCSILogicalUnit):      Started n2str 
     p_ip_web   (ocf::heartbeat:IPaddr2):       Started n2str 
     p_vm_web   (ocf::heartbeat:VirtualDomain): Started n2str 
 Clone Set: c_ping [ping] 
     Started: [ n1str n2str ] 
 
 
 
- - -
 
Installazione software su macchine vrituali
	WEB
 
requisiti per cmsmadesimple
 
#yum install httpd
#yum install php-gd php-mysql php-xml
 
#chkconfig httpd on
 
#service httpd start
 
--copiare nella directory /var/www/html il seguente file e decomprimerlo:
 
#tar -xzvf cmsmadesimple-1.11.6-full.tar.gz
 
--- eliminare o spostare il file originale compressi (giusto per fare pulizia)
 
#rm /var/www/html/cmsmadesimple-1.11.6-full.tar.gz
 
effettaure le seguenti modifiche
 
#chmod 777 /var/www/html/tmp/templates_c
#chmod 777 /var/www/html/tmp/cache
 
---collegarsi tramite browser a: http://192.168.100.37/index.php e iniziare la configurazione di cmsmadesimple
 
#vi /var/www/html/config.php
#chmod 777 /var/www/html/config.php
 
---editare il file 
 
#vi /etc/php.ini
 
 
max_execution_time = 60
post_max_size = 10M
upload_max_filesize = 10M
 
 
Service httpd restart
 
#chmod 777 /var/www/html/uploads
#chmod 777 /var/www/html/uploads/images
#chmod 777 /var/www/html/modules
 
 
 
---------myslql
 
#yum –enablerepo=c6-media install mysql mysql-server 
 
#chkconfig mysqld start
 
#service mysqld start
 
#/usr/bin/mysql_secure_intallation 
 
--attenzione il precedente comando lancia uno script che serve per mettere in sicurezza mysql
--parla di cambiare la password dell'utente “root”. Si riferisce all'utente root di mysql quindi quando chiede la
--password ed essendo la prima volta che si accede, essa è nulla quindi si da invio alla prima domanda.
--subito dopo infatti chiede di settare la password di root(è poi l'amministratore di mysql).
--chiede di rimuovere gli utenti anonimi - Y
--chiede di diabilitare il login remoto dell'utente root – n
--chiede di rimuovere i database di test e gli accessi ad essi - Y
--chiede di aggiornare i privileggi delle tabelle ora – Y
 
#mysql -u root -p
 
>create database strcms;
 
>grant all privileges on strcms.* to cms_stefano@localhost identified by $472192d$;
 
 
importante per mail
 
#ln -s /usr/share/squirrelmail /var/www/html/mail
 
------creare repo
 
sul server installare httpd
 
#yum install httpd
 
---installlare il pacchetto createrepo
 
#yum install createrepo
 
---creare il repositori con il comando
 
#createrepo -v /var/www/html/directoryrepo/
 
 
---creare il seguente file
 
#vi /etc/yum.repos.d/miorepo.repo
 
	[mio repo]
	name=mio_repository
	baseurl=http://server/directoryrepo
	gpgcheck=0
	enabled=1
 
 
------installare e configurare mailserver
 
---Dopo l'installazione base abbiamo i seguenti servizi:
 
#chkconfig
 
 
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off 
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off 
ip6tables       0:off   1:off   2:off   3:off   4:off   5:off   6:off 
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off 
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off 
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off 
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off 
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off 
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off 
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off 
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off 
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off 
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off 
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off 
 
 
---Installiamo prima di tutto il server web.
 
#yum install httpd
 
Servizi aggiunti in seguito all'installazione di httpd:
 
 
htcacheclean    0:off   1:off   2:off   3:off   4:off   4:off   6:off 
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off 
 
 
---installare i programmi e le librerie per la compilazione
 
#yum install gcc-c++ make
 
#yum install openssl-devel
 
---creare una directory in cui copiare il pacchetto dei sorgenti
 
#mkdir /COMPIL
 
---decomprimere il file compresso contenente i sorgenti
 
#tar – xzvf xmail-1.27.tar
 
---entrare nella directory appena creata
 
#cd /COMPIL/xmail-1.27
 
---iniziare la compilazione con il seguente comando
 
#cd /COMPIL/xmail-1.27
 
---copiare la cartella MailRoot (che non è stata toccata o modificata dalla compilazione) su /var
 
#cp -dpR /COMPIL/xmail-1.27/MailRoot /var/
 
---cabiare i diritti a 700
 
#chmod 700 /var/MailRoot
 
---la compilazione ha creato la seguente cartella: /COMPIL/xmail-1.27/bin 
---gli eseguibili in essa contenuta andranno copiati in /var/MailRoot/bin che precedentemente era vuota
 
#cp /COMPIL/xmail-1.27/bin/CtrlClnt /var/MailRoot/bin
#cp /COMPIL/xmail-1.27/bin/MkMachDep /var/MailRoot/bin
#cp /COMPIL/xmail-1.27/bin/MkUsers /var/MailRoot/bin
#cp /COMPIL/xmail-1.27/bin/sendmail /var/MailRoot/bin
#cp /COMPIL/xmail-1.27/bin/XMail /var/MailRoot/bin
#cp /COMPIL/xmail-1.27/bin/XMCrypt /var/MailRoot/bin
 
---copiare il file xmail (che non è stato toccato o modificato dalla compilazione)nella directory init.d 
 
#cp /COMPIL/xmail-1.27/xmail /etc/init.d/
 
---cabiare i diritti a 700 per renderlo eseguibile
 
#chmod 700 /etc/init.d/xmail
 
---creare il link simbolico per avviarlo automaticamente all'avvio del sistema 
 
#ln -s /etc/init.d/xmail /etc/rc3.d/S98xmail
 
---creare la password per l'amministratore di xmail
 
#/var/MailRoot/bin/XMCrypt passwordchevoglio 
 
---il risultato sarà una stringa che andrà inserita manualmente editando il seguente file
 
#vi /var/MailRoot/ctrlaccounts.tab 
 
	“utenteadmin”	“stringaottenuta” 
 
 
 
 
- - - - - installazione di phpxmail
 
#yum install php php-xml unzip
 
---decomprimere il file nella cartella /var/www/html o altra sottocartella
 
#unzip ....
 
 
 
 
 
 
 
 
 
 
-- - - - - - - - - - - - - - - - - - -
 
 
 
 
gparted
 
mkpart 
	3-prim
	[ext2]
	38GB
	40GB
 
mkpart
	DATI_WEB
	[ext2]
	40GB
	740GB
 
mkpart
	VM1
	[ext2]
	740GB
	940GB
 
mkpart
	VM1
	[ext2]
	740GB
	940GB
 
 
1 22000 / OS
2 16000 swp
3 80000 
4 500000	repo e dati internet
5 200000 	vm1
6 200000	vm2
7 10000	progwin
8 50000	vm locale per prove
9 100000	vm drbd con casa
10 500000	dati_casa
 
 
 
500 gb per repo e dati internet (mirror)
 
21gb per so
 
16gb per swp
 
200gb per vm1
 
200gb per vm2
 
10gb per prog win
 
 
700gb per DATI_CASA
test/pidora.txt · Ultima modifica: 2023/04/17 14:25 (modifica esterna)