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"
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/
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:
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
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
drbd0
sul quale montare la directory /var/lib/mysql
Drbd1
sul quale montare la directory /var/www/html
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.
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.
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.
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ì.
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”
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
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
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.
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"
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).
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"
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.
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
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
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)
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
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…
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
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
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
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
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
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.
<?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.\\
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:
<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.
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"
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.
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 ########################################
#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
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
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
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
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
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.
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:
-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