====== Test PIDORA ====== traduzione del wiki orginale tratto da https://fedoraproject.org/wiki/Raspberry_Pi#Downloading_the_Fedora_ARM_image\\ The Raspberry Pi only boots from the first partition of an SD card, that needs additionally be FAT32 formated. This partition will be mounted to /boot/ later and contains the kernel, 2nd stage bootlader, etc. A size of 128 MB is sufficient. \\ Scaricare la distro server in questo caso:\\ wget http://stefanostrozzi.it/fedora/Fedora-Server-armhfp-24-1.2-sda.raw Piccola parentesi per scaricare i repo totali rsync -vaH rsync://fedora.mirrors.ovh.net/download.fedora.redhat.com/linux/releases/24/Server/armhfp/os fed oppure come esempio\\ rsync -vtr --progress --exclude debug/ rsync://mirror.pnl.gov/epel/7/x86_64/ epel Scarichiamo anche il repo di zoneminder:\\ reposync --repoid=zmrepo --download_path=/var/www/mirror/fed/os/ Chiaramente questo comando può funzionare solo se è già stato installato il pacchetto zmrepo-24-1.fc24.noarch.rpm precedentemente scarico dal mirror ufficiale di zoneminder.\\ QUesto comando reposync credo si possa usare anche con i pacchetti fedora anzichè l'rsync\\ Dopo aver scaricato i pacchetti si potrebbe anche usare il comando createrepo per creare il repository locale ma mi sembra che funzioni anche senza farlo\\ Automaticamente creerà una nuova directory con il nome del repo.\\ e creiamo il file /etc/yum.repos.d/zmrepo.repo\\ [zmrepo] name=Zoneminder and its dependencies for Fedora $releasever - $basearch #baseurl=http://zmrepo.connortechnology.com/f/$releasever/$basearch baseurl=http://stefanostrozzi.it/fedora/zmrepo # http://67.53.78.182/f/$releasever/$basearch # http://zmrepo.mehvc.com/f/$releasever/$basearch #mirrorlist=http://zmrepo.mehvc.com/f/$releasever/$basearch enabled=1 gpgcheck=0 # zmrepo uses packages from other repos # Import all required gpg keys gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-$releasever-zmrepo file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zmrepo Ho tolto anche il gpgcheck perchè le chiavi non sono quelle originali\\ Per creare un mirror o un repository personalizzato\\ dnf install yum-utils e usare reposync\\ Comuque al momento penso di aver capito che nelle precedenti prove ho scaricato l'immagine per l'armhpf poi i pacchetti sono stati installati dal repo "Everything" quindi ho forse inconsapevolmente installato pacchetti che non erano solo server. Invece nelle prossime prove creerò il mio repo con solo pacchetti server.\\ Pertanto dopo aver scaricato con l'rsync solo i repo relativi la versione "server" costruisco la mia pagina web per scaricare in fase di installazione dal mio repo solo gli rpm server.\\ Creare quindi in /etc/httpd/conf.d/fedora_mirror.conf Alias /fedora /var/www/mirror/fed/os AddType application/octet-stream .rpm Options Indexes FollowSymLinks Order allow,deny Allow from all Header set Cache-Control "must-revalidate" ExpiresActive On ExpiresDefault "now" e inoltre modificare il file /etc/yum.repos.d/fedora.repo nei seguenti punti:\\ name=Fedora baseurl=http://stefanostrozzi.it/fedora/ commentare il metalink #metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch In questo modo si potrànno avere a disposizione tutti i pacchetti necessari. Ma c'è ancora da sistemare gli update che per il momento escludiamo.\\ La Raspberry pi effettua il boot dalla prima partizione di una SD card, necessariamente formattata con la FAT32. Late partizione sarò montata su /boot/ e conterrà il kernel, il bootloader di secondo livello, ecc.. Una dimensione di 128M è sufficiente.\\ Qui occorre creare tre partizioni:\\ una di \ (root) dimensione a piacere\\ una di \boot di circa 128M\\ e una di swap in base alla ram ad es la pi2 ha un gb di ram quindi si può fare di 2G\\ procedimento:\\ fdisk> Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (32-31422463, default 32): Last sector, +sectors or +size{K,M,G,T,P} (32-31422463, default 31422463): +128M Created a new partition 1 of type 'Linux' and of size 128 MiB. Cambiamo il tipo di partizione:\\ fdisk> Command (m for help): t Selected partition 1 Partition type (type L to list all types): b Changed type of partition 'Linux' to 'W95 FAT32'. per ottenere quindi:\\ fdisk> Command (m for help): p Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x930a4334 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 264191 262144 128M b W95 FAT32 e quindi la seconda partizione:\\ fdisk> Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (262177-31422463, default 262177): Last sector, +sectors or +size{K,M,G,T,P} (262177-31422463, default 31422463): +2G Created a new partition 2 of type 'Linux' and of size 2 GiB. Cambiamo il tipo di partizione:\\ fdisk> Command (m for help): t Selected partition 2 Partition type (type L to list all types): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris'. la partizione di root:\\ Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): p Partition number (3,4, default 3): First sector (4458496-234441647, default 4458496): Last sector, +sectors or +size{K,M,G,T,P} (4458496-234441647, default 234441647) : +10G Created a new partition 3 of type 'Linux' and of size 10 GiB. Lasciamo invariato il tipo di file system.\\ Command (m for help): p Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x930a4334 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 264191 262144 128M b W95 FAT32 /dev/sda2 264192 4458495 4194304 2G 82 Linux swap / Solaris /dev/sda3 4458496 25430015 20971520 10G 83 Linux Ora faccio la prova di aggiungere una partizione estesa e quindi le partizioni logiche per drbd gfs ecc.\\ Command (m for help): n Partition type p primary (3 primary, 0 extended, 1 free) e extended (container for logical partitions) Select (default e): e Selected partition 4 First sector (25430016-234441647, default 25430016): Last sector, +sectors or +size{K,M,G,T,P} (25430016-234441647, default 234441647): Created a new partition 4 of type 'Extended' and of size 99.7 GiB. Command (m for help): n All primary partitions are in use. Adding logical partition 5 First sector (25432064-234441647, default 25432064): Last sector, +sectors or +size{K,M,G,T,P} (25432064-234441647, default 234441647 ): +5G Created a new partition 5 of type 'Linux' and of size 5 GiB. Command (m for help): p Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x930a4334 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 264191 262144 128M b W95 FAT32 /dev/sda2 264192 4458495 4194304 2G 82 Linux swap / Solaris /dev/sda3 4458496 25430015 20971520 10G 83 Linux /dev/sda4 25430016 234441647 209011632 99.7G 5 Extended /dev/sda5 25432064 35917823 10485760 5G 83 Linux Formattiamo tutte e 4 le partizioni per ottenere l'UUID:\\ mkfs.vfat /dev/sda1 mkswap /dev/sda2 mkfs.ext4 /dev/sda3 mkfs.ext4 /dev/sda5 blkid |grep sda /dev/sda1: SEC_TYPE="msdos" UUID="C558-28C5" TYPE="vfat" PARTUUID="930a4334-01" /dev/sda2: UUID="2ea4625c-def5-48a8-ad25-9d0046d6f492" TYPE="swap" PARTUUID="930a4334-02" /dev/sda3: UUID="0f59b114-6db0-4d90-87e9-bece24926f98" TYPE="ext4" PARTUUID="930a4334-03" /dev/sda5: UUID="1515dea1-cfe1-4e35-93ab-45d852ab3182" TYPE="ext4" PARTUUID="930a4334-05" ====== trasferimento file su sdcard ====== posizionarsi nella directory contenente l'immagine Fedora-Server-armhfp-24-1.2-sda.raw #mkdir /tmp/img #losetup --partscan --find --show Fedora-Server-armhfp-23-10-sda.raw /dev/loop0 #mount -r /dev/loop0p3 /tmp/img/ #mkdir /tmp/rpi/ #mount /dev/sdb3 /tmp/rpi/ #mkdir /tmp/rpi/boot/ #mount /dev/sdb1 /tmp/rpi/boot/ #cp -rpv /tmp/img/* /tmp/rpi/ #sync #umount /tmp/img #losetup -d /dev/loop0 #blkid | grep mmcblk0 /dev/sdb1: SEC_TYPE="msdos" UUID="4745-6309" TYPE="vfat" /dev/sdb2: UUID="47a973f6-1d66-4c4b-a40d-01e2647dc9d0" TYPE="swap" /dev/sdb3: UUID="74ac8953-9f6b-416d-b8ea-005e9e1cf50f" TYPE="ext4" #vi /tmp/rpi/etc/fstab UUID=74ac8953-9f6b-416d-b8ea-005e9e1cf50f / ext4 defaults,noatime 0 0 #/dev/sdb3 dal pc che sto usando, ma sarà /dev/mmcblk0p3 UUID=4745-6309 /boot vfat defaults,noatime 0 0 #/dev/sdb1 UUID=47a973f6-1d66-4c4b-a40d-01e2647dc9d0 swap swap defaults,noatime 0 0 #/dev/sdb2 installare curl e scaricare il firmware da github #curl -L -o raspberry-firmware.zip https://github.com/raspberrypi/firmware/archive/master.zip #unzip raspberry-firmware.zip #cp -r firmware-master/boot/* /tmp/rpi/boot/ #cp -r firmware-master/modules/* /tmp/rpi/lib/modules/ #vi /tmp/rpi/boot/cmdline.txt dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait #umount /tmp/rpi/boot/ #umount /tmp/rpi/ #sync smontare la microSD e avviare il RPi\\ apparirà la seguente videata che guida l'utente alla configurazione del primo avvio: Initial setup of Fedora 24 (Server Edition) 1) [x] Language settings 2) [!] Timezone settings (English (United States)) (Timezone is not set.) 3) [x] Network Configuration 4) [!] Root Password (Wired (eth0) connected) (Password is not set.) 5) [!] User creation (No user will be created) Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]: La [x] sta ad indicare il valore settato e di default propone l'inglese, ma noi scegliamo l'italiano e il nostro timezone digitando '1' per entrare nel menù di configurazione della lingua\\ Please select language support to install:31 e poi ancora "1" per il sottotipo\\ se siamo soddifatti andiamo avanti altrimenti procediamo allo stesso modo per le altre opzioni\\ Da specificare che al numero 3 quando dice che la rete è configurata si intende che è stato assegnato un indirizzo dal DHCP. L'indirizzo verrà svelato al momento del primo login.\\ infine premiamo "c"\\ La cosa carina di questa versione server è la "Admin Console" di gestione web che viene indicata al momento del primo login\\ Viene specificato nel seguente modo l'url a cui collegarsi:\\ Admin Console: https://xxx.xxx.xxx.xxx:9090/ ====== preparazione storage ridondante DRBD ====== Ora sto facendo delle prove per vedere i vari pacchetti software a disposizione prima e dopo gli update:\\ ad esempio ora ci sarebbe da installare drbd che di base la Fedora 24 fornisce già pacchettizzato alla versione 8.9.6-2.fc24\\ Ma drbd richiede come dipendenza anche il perl che però allo stato attuale è disponibile la 5.55.5 rilascio 359 sul repo fedora (base) e 362 sul repo (update)\\ quindi se lascio attivo il repo update dnf installerà l'ultimo pacchetto disponibile sul repo updates.\\ Per prove questa volta decido di disabilitare gli update. e installiamo subito drbd per vedere mano a mano che vado avanti se ci sono dei problemi con gli aggiornamenti.\\ dnf info drbd Nome : drbd Arch : armv7hl Epoca : 0 Versione : 8.9.6 Rilascio : 2.fc24 Dim. : 20 k Repo : fedora Sommario : DRBD user-land tools and scripts URL : http://www.drbd.org/ Licenza : GPLv2+ Descrizione : DRBD refers to block devices designed as a building block to form : high availability (HA) clusters. This is done by mirroring a whole : block device via an assigned network. DRBD can be understood as : network based raid-1. : : This is a virtual package, installing the full user-land suite. installare drbd:\\ dnf install drbd Considerato che dobbiamo realizzare un cluster disabilitare all'avvio drbd poichè saraà pacemaker ad avviarlo quando necessario\\ chkconfig drbd off creare su ciascun disco una partizione della stessa dimensione da dedicare a drdb, senza formattarla.\\ effettuare solo le seguenti modifiche al file /etc/drbd.d/globalcommon.con \\ sezione global\\ usage-count yes; sezione common - handlers pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"; sezione common - startup wfc-timeout 60; degr-wfc-timeout 120; sezione common - net after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; creare le risorse secondo il seguente schema:\\ 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 --== Thank you for participating in the global usage survey ==-- The server's response is: you are the 389th user to install this version initializing activity log NOT initializing bitmap Writing meta data... New drbd meta data block successfully created. success ===== risorsa per mysql ===== drbd0\\ sul quale montare la directory /var/lib/mysql ===== risorsa per il web ===== Drbd1\\ sul quale montare la directory /var/www/html ===== risorsa per le mail ===== drbd2\\ sul quale montare la directory /var/vmail Prima di avviare il servizio assicuriamoci che le porte per il servizio drbd siano aperte (infatti con fedora il firewall è sempre attivo) usiamo il seguente comando per verificare i servizi attivi:\\ firewall-cmd --list-service cockpit dhcpv6-client mdns ssh Infatti manca il drbd, ma se volessimo provare ad aggiungerlo con:\\ firewall-cmd --add-service=drbd --permanent otteniamo un errore perchè drbd è stato disabilitato all'avvio del sistema, quindi andremo ad abilitare a mano a mano le porte che ci servono per le nostre risorse:\\ firewall-cmd --add-port=7788/tcp --permanent applicare con:\\ firewall-cmd --reload e verifichiamo con\\ firewall-cmd --list-port Ora possiamo avviare il servizio\\ service drbd start ora possiamo avviare la sincronizzazione tra i due dispositivi a blocchi con il seguente comando:\\ drbdadm -- --overwrite-data-of-peer primary r0 dove r0 è il nome della risorsa già definita.\\ Con questa versione di fedora non è disponibile il vecchio comando "service drbd status" che permette di controllare lo stato della sincronizzazione e di collegamento, quindi si usa il seguente comando:\\ cat /proc/drbd il cui output è simile al seguente:\\ version: 8.4.5 (api:1/proto:86-101) srcversion: D496E56BBEBA8B1339BB34A 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----- ns:774220 nr:0 dw:0 dr:774240 al:0 bm:0 lo:7 pe:22 ua:8 ap:0 ep:1 wo:f oos:3420604 [==>.................] sync'ed: 18.5% (3420604/4194140)K finish: 0:06:04 speed: 9,384 (7,972) K/sec Sembra che non sia necessario specificare l'associazione nome ip nel file hosts\\ Per essere certi di quello che abbiamo a disposizione usiamo il seguente comando che ci mostrerà l'elenco de dischi disponibili:\\ fdisk -l Tra questi dovrebbe esserci anche il nostro /dev/drbd0 e lo formatteremo in ext4 con il seguente comando:\\ mkfs.ext4 /dev/drbd0 ...mmhh non abbiamo parlato di partizioni... ho dei dubbi.\\ ====== directory cluster ====== Ora dobbiamo creare una directory nella quale montare il nostro dispositivo drbd clusterizzato. In questa directory verranno posizionati tutti quei file dei programmi e dei software che dovremo sempre rendere disponibili. Pertanto:\\ mkdir /cluster Vedremo tra poco come trasformare questa directory in risorsa da clusterizzare e quindi abbinare al nostro dispositivo drbd.\\ Prima però dobbiamo preparare i software più importanti cominciando dalla suite Corosync+Pacemaker.\\ ====== Installazione Pacemaker ====== Sto facendo delle prove senza i repo update, per curiosità, per vedere poi se aggiornando succede qualche casino. Il seguente comando installa automaticamente tutto quello di cui c'è bisogno quindi Corosync, pacemaker e pcsd. POi forse un giorno spiegherò a cosa server ciascun programma\\ dnf install pcs Potevo farlo con il precedente comando ma per studio lo faccio un po' per volta, ad installare il modulo drbd-pacemaker che è il resource agent che permette al cluster di gestire correttamente la risorsa drbd al nostro cluster in HA.\\ dnf install drbd-pacemaker Può essere utile capire a che punto sono i nostri servizi, se abilitati disabilitati, avviati, o non partiti o altro...\\ Può essere utile il seguente comando:\\ systemctl list-unit-files oppure:\\ systemctl -t service -a L'installazione di pacemaker ha creato un nuovo utente chiamato hacluster.Vedremo tra poco a cosa serve\\ Quindi avviamo il servizio pcsd:\\ systemctl start pcsd.service Credo che pcsd permetta di eseguire il comando pcs che di fatto crea il cluster, la comunicazione e gestisce tutte le risorse.\\ Ora dobbiamo mettere in comunicazione i due nodi pertanto il servizio pcsd deve essere attivo su entrambi.\\ Anche qui è necessario far aprire al firewall le porte di comunicazione per il sevizio ha. firewall-cmd --permanent --add-service=high-availability e applicare subito la regola con:\\ firewall-cmd --reload Sarebbe ancora più interessante vedere con uno scanner di porte quali sono le porte realmente aperte dello stack tcp-ip\\ Ad ogni modo ora dobbiamo lanciare un comando che permette ai nodi del cluster di RICONOSCERSI e SINCRONIZZARSI.\\ Verrà chiesto un nome utente e una password per poter accedere all'altro nodo e viceversa.\\ Per questo motivo è necessario impostare la password per l'utente "hacluster" (creato durante l'installazione su ciascun nodo) che sia la stessa su entrambi i nodi.\\ Quindi eseguiamo su tutti e due i nodi:\\ passwd hacluster ci verrà chiesto di digitare e confermare una nuova password.\\ Questo è un modo ma ce ne sono altri che permettono grazie allo stdin ecc... di fare tutto con un unico comando.\\ Non è finita in quanto ora che abbiamo messo i nodi in condizione di riconoscersi, dobbiamo anche permettere loro di sincronizzarsi attraverso la rete e poichè noi per comodità e praticità useremo i "nomi" dobbiamo impostare nel famoso file /etc/hosts di tutti e due i nodi l'abbinamento IP nome nodo.\\ vi /etc/hosts 192.168.1.xxx nodo1 192.168.1.xxy nodo2 ..(chiaramente questo è un esempio)\\ Ora possiamo procedere con il seguente comando da eseguire solo su un nodo:\\ pcs cluster auth nodo1 nodo2 verrà chiesta il nome utente (che sarà "hacluster") e la password (quella che abbiamo inserito pocanzi)\\ Se tutto è andato bene dovremmo avere una risposta tipo questa:\\ nodo1: Authorized nodo2: Authorized Ora possiamo creare il cluster vero e proprio dandogli un nome e associandogli i nodi potenziali (da lanciare solo su uno dei due nodi):\\ pcs cluster setup --name clstr strn1 strn2 Se tutto è andato bene vedremo una serie di informazioni come di seguito:\\ Destroying cluster on nodes: strn1, strn2... strn1: Stopping Cluster (pacemaker)... strn2: Stopping Cluster (pacemaker)... strn1: Successfully destroyed cluster strn2: Successfully destroyed cluster Sending cluster config files to the nodes... strn1: Succeeded strn2: Succeeded Synchronizing pcsd certificates on nodes strn1, strn2... strn2: Success strn1: Success Restarting pcsd on the nodes in order to reload the certificates... strn2: Success strn1: Success Possiamo ora avviare il cluster su entrambi i nodi:\\ pcs cluster start Altrimenti se lo eseguiamo solo su un nodo verrà avviato pacemaker sul nodo da cui viene lanciato il comando e questo comando appena eseguito avvia il servizio corosync e pacemaker considerando che il servizio pcsd era già avviato\\ Invece il seguente comando può essere lanciato comunque solo su un nodo ma avvia anche i servizi pacemaker e corosync anche sull'altro nodo:\\ pcs cluster start --all Poi procedere con la visualizzazione dello stato con:\\ pcs status oppure pcs cluster status entrambi i comandi restituiscono informazioni simili ma mi sembra che "pcs status" fornisca informazioni anche sullo stati di corosync pacemaker e pcsd\\ Infine bisogna ricordarsi poi di rendere avviabile al boot il pcsd:\\ systemctl enable pcsd.service Questo permette di avviare all'avvio il servizio pcsd ma non ancora il cluster (cosa che avviene quando si digita "pcs cluster start"\\ Per farlo partire al boot occorre anche abilitare pacemaker con:\\ systemctl enable pacemaker.service Pacemaker avvia anche il corosync.\\ Bella storia... sul secondo nodo faccio il reboot e non riesco più a riconnettermi, non pinga più. ho fatto il reboot senza spegnere il servizio cluster... centra qualcosa??? boh? da verificare.\\ Questa faccenda penso che sia legata all'hardware del disco rigido che fa schifo e continua a dare l'alimentazione al RPi e quindi in realta si spegne ma non fa il reboot...\\ Comunque dopo le ultime prove non l'ha più fatto e non ci sono problemi.\\ Andiamo avanti ancora con la preparazione di pacemaker aggiungendo alcuni settaggi di base:\\ pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore pcs property set default-resource-stickiness=INFINITY Se si verificano dei casini e bisogna rifare tutto conviene distruggere e rifare tutti i comandi... per ora ho dovuto fare così in un caso:\\ pcs cluster destroy all C'è un ultima cosa da fare e da sapere riguardo l'eventuale possibilità di visualizzare, rimuovere le constraint order o colocation:\\ pcs constraint show pcs constraint order remove hd_drbd0_ fs_maria pcs constraint colocation remove mysql_service01 fs_maria Se è andato tutto bene siamo pronti per inserire le risorse da gestire dentro al cluster.\\ ===== Risorsa indirizzo IP ===== Semplicemente:\\ pcs resource create clstrIP IPaddr2 ip=192.168.1.xxx cidr_netmask=24 se tutto è andato bene facciamo una verifica con crm_mon o pcs status:\\ Stack: corosync Current DC: strn2 (version 1.1.14-2.5a6cdd1.git.fc24-5a6cdd1) - partition with q uorum Last updated: Thu Sep 8 21:42:44 2016 Last change: Thu Sep 8 21:42:40 2016 by root via cibadmin on strn2 2 nodes and 3 resources configured Online: [ strn1 strn2 ] Master/Slave Set: hd_drbd0_m [hd_drbd0] Masters: [ strn2 ] Slaves: [ strn1 ] clstrIP (ocf::heartbeat:IPaddr2): Started strn1 Se notiamo bene però la risorsa master è su un nodo e il nostro IP sull'altro. Vedremo poi come far andare insieme le risorse. Per ora va bene così.\\ ===== Risorsa DRBD ===== Ora che il nostro cluster è funzionante dobbiamo cominciare a metterci dentro le risorse da gestire che ci occorrono.\\ Prima di tutto dobbiamo avere uno spazio dati nel quale mettere i file e i programmi che dobbiamo rendere disponibili, ad esempio il database, i file web e quant'altro.\\ direi quindi di cominciare a formattare il disco DRBD che abbiamo precedentemente preparato con il filesystem prescelto in base all'utilizzo, poi attraverso alcune operazioni il cluster renderà disponibile il filesystem in esso creato.\\ Vabbè, ora creiamo la risorsa disco da gestire, e lo facciamo attraverso gli strumenti pacemaker specifici per drbd considerato che si tratta di un disco drbd e non un disco normale.\\ A quanto pare ho trovato in un tutorial ufficiale : http://clusterlabs.org/doc/fr/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/_configure_the_cluster_for_the_drbd_device.html \\ altri comandi utili http://clusterlabs.org/doc/fr/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/_configure_the_cluster_for_the_drbd_device.html \\ Ok, ora ci dovremmo essere. Avevo fatto alcune prove anteponendo al comando di creazione risorsa "-f nomecluster", ma questo presupponeva che avvessi precedentemente digitato il comando "pcs cluster cib nomecluster". Significa che ogni azione che viene compiuta non è ancora reale, effettiva am viene memorizzata nal cib che poi dovrà essere messo online con il successivo comando "pcs cluster cib-push nomecluster" \\ ==== mysql ==== Quindi creiamo la risorsa drbd che verrà automaticamente tirata su da pacemaker ossia, se anche avremo il servizio drbd "non attivo" (nemmeno al boot) pacemaker si preoccuperà di avviarlo ponendo la risorsa nello stato in cui di deve trovare secondo le regole:\\ pcs resource create hd_drbd0 ocf:linbit:drbd drbd_resource=r0 op monitor interval=20s poi:\\ pcs resource master hd_drbd0_m hd_drbd0 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true Questo secondo comando completa il primo e stabilisce la caratteristica della risorsa creata ovvero che la risorsa viene clonata su tutti e due i nodi, ma solo uno può essere master.\\ Se per caso abbiamo la console aperta sull'altro nodo e abbiamo il "crm_mon" in esecuzione noteremo subito dopo il primo comando degli errori e ancora dopo il secondo comando. Questò perchè il cluster deve ancora capire dove stà il master. Allora facciamo un po di ordine o "pulizia" digitando:\\ pcs resource cleanup hd_drbd0 ==== web ==== Ok creiamo anche il secondo disco drbd per la risorsa web:\\ pcs resource create hd_drbd1 ocf:linbit:drbd drbd_resource=r1 op monitor interval=20s poi:\\ pcs resource master hd_drbd1_m hd_drbd1 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true ==== mail ==== E il terzo disco drbd per la risorsa mail:\\ pcs resource create hd_drbd2 ocf:linbit:drbd drbd_resource=r2 op monitor interval=20s poi:\\ pcs resource master hd_drbd2_m hd_drbd2 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true Ma non è detto, perchè quando ho eseguito la prima volta il comando nessuno dei due drbd era primario...\\ hd_drbd è il nome della risorsa creata\\ Ricordiamoci sempre che è necessario eseguire:\\ pcs resource cleanup hd_drbd o\\ pcs resource cleanup hd_drbd_x per vedere la risorsa funzionare altrimenti bisogna riavviare pacemaker.\\ ===== File System ===== ==== mysql ==== Ora dobbiamo inserire tra le risorse di pacemaker il files ystem che verrà montato sul dispositivo drbd:\\ pcs resource create fs_maria Filesystem device="/dev/drbd0" directory="/var/lib/mysql" fstype="ext4" ==== web ==== pcs resource create fs_web Filesystem device="/dev/drbd1" directory="/var/www" fstype="ext4" nelle prove mi sono sbagliato ho lasciato fs_cluster (me lo devo ricordare).\\ ==== mail ==== Qui prima di creare la risorsa filesystem è necessario fare alcune cose preliminari su ciascun nodo.\\ Pacemaker deve essere arrestato, postfix deve essere arrestato e drbd avviato manualmente.\\ 1)Portare la risorsa drbd primaria in un nodo\\ drbdadm primary r2 2)montare la risorsa sulla directory /srv:\\ mount /dev/drbd2 /srv/ 3)spostare la directory /var/spool/mail:\\ mv /var/spool/mail/ /srv/ 4)Creare un link nella vecchia posizione:\\ ln -s /srv/mail/ /var/spool/mail 5)Smontare la risorsa:\\ umount /srv oppure\\ umount /dev/drbd2 6)ridurre a secondario la risorsa drbd dal primo nodo e portare primario il secondo\\ 7)montare la risorsa:\\ mount /dev/drbd2 /srv 8)rimuovere la cartella /var/spool/mail:\\ rm -r /var/spool/mail 9)creare il link simbolico come fatto al punto 4:\\ ln -s /srv/mail/ /var/spool/mail Infine creiamo la risorsa file system:\\ pcs resource create fs_mail Filesystem device="/dev/drbd2" directory="/srv" fstype="ext4" ==== Raggruppiamo ordiniamo ==== questa è una versione\\ creiamo i gruppi:\\ pcs resource group add gr_maria fs_maria mysql_service01 poi ordiniamo la partenza:\\ pcs constraint order promote hd_drbd0_m then start gr_maria e ci dovrebbe essere differenza dal semplice "constraint order" nome risorsa then altrarisorsa da "constraint order promote" (then start) che si usa nei casi di risorse master slave quindi nel nostro caso.\\ Andando avanti\\ pcs resource group add gr_web fs_cluster web_server ip_clstr pcs constraint order promote hd_drbd1_m then start gr_web poi infine si ordina senza il promote i gruppi:\\ pcs constraint order gr_maria then gr_web ok così ci siamo! almeno per il momento.\\ ==== Raggruppiamo ==== questa è un'altra\\ In questo caso dobbiamo creare per forza una costrizione di collocazione, ossia dobbiamo fare in modo che la risorsa disco e la risorsa filesystem stiano sempre insieme dove il disco è master.\\ pcs constraint colocation add fs_cluster with hd_drbd0_m INFINITY with-rsc-role=Master raggruppiamo anche il disco per il web con il filesystem del web.\\ pcs constraint colocation add fs_web with hd_drbd1_m INFINITY with-rsc-role=Master ==== Ordiniamo ==== da notare il nome della risorsa drbd associata. vedere bene quale mettere.\\ Ora c'è da fare la costrizione all'ordine di partenza che non è stato possibile fare attraverso il raggruppamento (quando c'è una risorsa di tipo master-slave non la si può inserire in un gruppo).:\\ pcs constraint order promote hd_drbd0_m then start fs_maria anche per il web:\\ pcs constraint order promote hd_drbd1_m then start fs_web ==== Ordinamento ultima versione ==== pcs constraint order promote hd_drbd0_m then start hd_drbd2_m pcs constraint order show Ordering Constraints: promote hd_drbd0_m then start hd_drbd2_m (kind:Mandatory) pcs constraint order hd_drbd2_m then hd_drbd1_m pcs constraint order show Ordering Constraints: promote hd_drbd0_m then start hd_drbd2_m (kind:Mandatory) start hd_drbd2_m then start hd_drbd1_m (kind:Mandatory) pcs constraint order hd_drbd1_m then gr_maria pcs constraint order gr_maria then gr_mail pcs constraint order gr_mail then gr_web pcs constraint order show Ordering Constraints: promote hd_drbd0_m then start hd_drbd2_m (kind:Mandatory) start hd_drbd2_m then start hd_drbd1_m (kind:Mandatory) start hd_drbd1_m then start gr_maria (kind:Mandatory) start gr_maria then start gr_mail (kind:Mandatory) start gr_mail then start gr_web (kind:Mandatory) ===== Risorsa MariaDB ===== Installare su entrambi i nodi:\\ dnf install mariadb-server A questo punto occorre abilitare nel firewall il servizio, sembra che si aproprio questo il problema che ho avuto l'altra volta:\\ firewall-cmd --add-service=mariadb --permanent firewall-cmd --reload Disabilitare su entrambi i nodi:\\ systemctl disable mariadb.service Avviare solo sul nodo che ha la risorsa master montata:\\ systemctl start mariadb.service Eseguire solo sul nodo attivo (/cluster/mariadb è quella che ho scelto io ma può essere personalizzata:\\ mysql_install_db --datadir=/cluster/mariadb --user=mysql Per conoscenza metto a disposizione nel seguente file l'output del comando appena lanciato\\ Installing MariaDB/MySQL system tables in '/cluster/mariadb' ... 2016-09-03 23:22:17 1984978944 [Note] /usr/libexec/mysqld (mysqld 10.1.14-MariaDB) starting as process 25186 ... OK Filling help tables... 2016-09-03 23:22:34 1984536576 [Note] /usr/libexec/mysqld (mysqld 10.1.14-MariaDB) starting as process 25216 ... OK Creating OpenGIS required SP-s... 2016-09-03 23:22:37 1984221184 [Note] /usr/libexec/mysqld (mysqld 10.1.14-MariaDB) starting as process 25246 ... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER ! To do so, start the server, then issue the following commands: '/usr/bin/mysqladmin' -u root password 'new-password' '/usr/bin/mysqladmin' -u root -h strn1 password 'new-password' Alternatively you can run: '/usr/bin/mysql_secure_installation' which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the MariaDB Knowledgebase at http://mariadb.com/kb or the MySQL manual for more instructions. You can start the MariaDB daemon with: cd '/usr' ; /usr/bin/mysqld_safe --datadir='/cluster/mariadb' You can test the MariaDB daemon with mysql-test-run.pl cd '/usr/mysql-test' ; perl mysql-test-run.pl Please report any problems at http://mariadb.org/jira The latest information about MariaDB is available at http://mariadb.org/. You can find additional information about the MySQL part at: http://dev.mysql.com Support MariaDB development by buying support/new features from MariaDB Corporation Ab. You can contact us about this at sales@mariadb.com. Alternatively consider joining our community based development effort: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/ Sempre dal nodo attivo:\\ mysql_secure_installation Ora eseguo altri due comandi che non ho capito a cosa servono ma provo a seguire pari pari il tutorial(solo sul nodo attivo):\\ semanage fcontext -a -t mysqld_db_t "/mnt(/.*)?" restorecon -Rv /mnt Smontare la directory:\\ umount /cluster Arrestare il servizio sempre dal nodo attivo systemctl stop mariadb.service In più faccio le seguenti modifiche al file /etc/my.cnf (di tutti e due i nodi):\\ cat << EOL > /etc/my.cnf [mysqld] symbolic-links=0 bind_address = 0.0.0.0 datadir = /var/lib/mysql pid_file = /var/run/mariadb/mysqld.pid socket = /var/run/mariadb/mysqld.sock [mysqld_safe] bind_address = 0.0.0.0 datadir = /var/lib/mysql pid_file = /var/run/mariadb/mysqld.pid socket = /var/run/mariadb/mysqld.sock !includedir /etc/my.cnf.d EOL Quest'ultima cosa non mi convince... secondo me si è sbagliato il tipo del tutorial e provo a cambiare la "datadir" in /cluster/mariadb su entrambi i nodi.\\ Infatti la cosa giusta da fare è modificare non solo il file /etc/my.cnf ma anche /etc/my.cnf.d/mariadb.server-cnf e cambiare il percorso del "datadir" :\\ cat << EOL > /etc/my.cnf [mysqld] symbolic-links=0 bind_address = 0.0.0.0 datadir = /cluster/mariadb pid_file = /cluster/mariadb/mysqld.pid socket = /cluster/mariadb/mysqld.sock [mysqld_safe] bind_address = 0.0.0.0 datadir = /cluster/mariadb pid_file = /cluster/mariadb/mysqld.pid socket = /cluster/mariadb/mysqld.sock !includedir /etc/my.cnf.d EOL Modificare anche il file /etc/my.cnf.d/mariadb.server.cnf con gli stessi riferimenti alla directory condivisa /cluster/mariadb \\ Naturalmente bisogna montare correttamente la partizione prima di avviare il servizio mariadb.\\ Ma dobbiamo ancora fare delle prove.\\ In sostanza ho inserito in entrambi i my.cnf la corretta "datadir" e quando ho avviato il servizio sul secondo nodo ho avuto degli errori a quanto pare perchè non era mai stato eseguito il mysql_secure installation per poi impostare la password di root. Ma una volta attivato il secondo ed eseguito il mysql_secure_installation poi è partitto apparentemente tutto correttamente e ho fatto alcune prove di spostamento creando un database e ritrovandomelo sull'altro... proviamo.\\ Creiamo la risorsa per pacemaker:\\ pcs resource create mysql_service ocf:heartbeat:mysql binary="/usr/bin/mysqld_safe" config="/etc/my.cnf" datadir="/cluster/mariadb" pid="/cluster/mariadb/mysql.pid" socket="/cluster/mariadb/mysql.sock" additional_parameters="''bind-address=0.0.0.0" op start timeout=60s op stop timeout="60s" op monitor interval=20s timeout=30s Facciamo ordine:\\ pcs constraint colocation add mysql_service whit fs_cluster INFINITY pcs constraint order fs_cluster then mysql_service Purtroppo non va si blocca tutto a questo punto...\\ ===== Risorsa web ===== dopo aver avviato la risorsa disco web e verificato con:\\ df se abbiamo ottenuto qualcosa di simile:\\ File system 1K-blocchi Usati Disponib. Uso% Montato su /dev/root 10190136 2065892 7599956 22% / devtmpfs 469540 0 469540 0% /dev tmpfs 473872 55176 418696 12% /dev/shm tmpfs 473872 420 473452 1% /run tmpfs 473872 0 473872 0% /sys/fs/cgroup /dev/mmcblk0p1 130798 20452 110346 16% /boot tmpfs 94776 0 94776 0% /run/user/0 /dev/drbd0 4062748 119944 3926420 3% /var/lib/mysql /dev/drbd1 6061404 15680 5714780 1% /var/www possiamo avviare il servizio web e vedere se funziona o comunque in fase di prova ora provo a installare postfixadmin e vediamo se funge.\\ poi avvio manualmente l'apache e vediamo che succede...\\ systemctl start httpd.service Ok se va possiamo rifermare il servizio systemctl stop httpd.service Creare il seguente file su entrambi i nodi:\\ vi /etc/httpd/conf.d/status.conf SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 Nel precedente blocco c'è il permesso di vedere solo a 127.0.0.1 quindi la situazione dovrebbe essere sicura. se vogliamo farlo vedere fuori dall'host dobbiamo mettere allow from all.\\ Ma credo che questo lavoro si afatto solo per capire se e come sta funzionando il web server.\\ pcs resource create web_server ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=20s Ordiniamo:\\ pcs constraint colocation add web_server whit fs_web INFINITY poi:\\ pcs constraint order fs_web then web_server ==== Risorsa Mysql da abbandonare ==== Ora dobbiamo fare in modo che le directory di default per per il database siano sempre disponibili nel cluster.\\ ho trovato alcune istruzioni che metto di seguito per fare in modo che mysql lavori nel nuovo spazio di lavoro condiviso e sia attivo su un nodo o sull'altro grazie alle regole di pacemaker.\\ Stop MySQL using the following command:\\ sudo /etc/init.d/mysql stop Copy the existing data directory (default located in /var/lib/mysql) using the following command:\\ cp -R -p /var/lib/mysql /newpath edit the MySQL configuration file with the following command:\\ vi /etc/mysql/my.cnf Look for the entry for datadir, and change the path (which should be /var/lib/mysql) to the new data directory.\\ In the terminal, enter the command:\\ vi /etc/apparmor.d/usr.sbin.mysqld Look for lines beginning with /var/lib/mysql. Change /var/lib/mysql in the lines with the new path. Save and close the file.\\ Restart the AppArmor profiles with the command:\\ /etc/init.d/apparmor reload Restart MySQL with the command:\\ /etc/init.d/mysql restart ====== WEB ====== ===== postfixadmin ===== ora che il server web funziona ed anche il cluster. e' giunto il momento di installare e configurare i servizi web che useremo per la posta.\\ seguire porcedura dal sito http://blog.acmenet.ru/en/2014/11/25/mail-centos-en \\ ===== postfix ===== Attenzione!!!\\ seguire questo link per postfixadmin e valutare di condividere un pezzo di disco appostiamente per postfixadmin\\ http://studyhat.blogspot.it/2010/10/installing-postfix-admin-on-cent-os.html altrimenti seguire l'installazione del pacchetto scaricato già pronto per fedora, ma non è per arm in effetti... quindi sarebbe forse meglio seguire questa guida... bo? vediamo\\ inizio reale configurazione postfix:\\ dnf install postfix postfix-mysql vi /etc/postfix/main.cf modificare i seguenti valori: myhostname = mail.miodominio.com mydomain = miodominio.com myorigin = $mydomain inet_interfaces = all inet_protocols = ipv4 mynetworks_style = host mynetworks = $config_directory/mynetworks smtpd_banner = $myhostname ESMTP $mail_name Qui c'è da riportare tutti i file di configurazione di postfix attualmente funzionanti e presi da quel sito russo.\\ Le mappe hanno il seguente schema sicuro:\\ hosts = localhost dbname = postfix user = postfix password = Pa$Pxnrk00ps$ table = mailbox select_field = maildir where_field = username additional_conditions = AND active = '1' Intanto metto la procedura per la creazione dei certificati personalizzati e non quelli generici del sistema operativo:\\ Installare openssl\\ #apt-get install openssl\\ Creare una cartella per contenere i certificati, per esempio:\\ # mkdir /etc/postfix/certificati\\ poi spostarsi in questa cartella:\\ cd /etc/postfix/certificati\\ Lanciare questi comandi per la generazione dei certificati:\\ openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024\\ chmod 600 smtpd.key\\ openssl req -new -key smtpd.key -out smtpd.csr\\ openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt\\ openssl rsa -in smtpd.key -out smtpd.key.unencrypted\\ mv -f smtpd.key.unencrypted smtpd.key\\ openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650\\ Una volta terminato tutto creare la risorsa per il cluster pacemaker nel seguente modo:\\ pcs resource create srv_postfix ocf:heartbeat:postfix op monitor timeout="20s" interval="60s" e poi viene gestita nel mucchio nel modo opportuno ad es per il raggruppamento:\\ pcs resource group add gr_mail fs_mail srv_postfix ricordarsi anche di abilitare il servizio nel firewall:\\ firewall-cmd --add-service=smtp --permanent firewall-cmd --add-service=smtps --permanent firewall-cmd --reload ===== roundcubemail ===== ==== installazione pacchettizzata ==== Si fa l'installazione con dnf poi si crea subito il database:\\ mysql -u root -p CREATE DATABASE roundcubemail; GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password'; Poi andare all'installer: http://nomesito.es/roundcubemail/installer ==== installazione manuale ==== Con i sorgenti è più macchinoso, infatti la prima cosa da fare è installare a mano le dipendenze:\\ dnf install php-ldap php-pear php-pear-Auth-SASL php-pear-Mail-Mime php-pear-Net-IDNA2 php-pear-Net-LDAP2 php-pear-Net-Sieve php-pear-Net-SMTP php-pear-Net-Socket php-intl poi dopo aver scaricato e decompresso il pacchetto bisogna rendere scrivibili le directory temp e logs all'interno della directory appena scompattata.\\ E poi bisogna cambiare la proprietà da root:root a root:apache (credo...)\\ Il percorso può essere dove vogliamo. io l'ho messo nella /usr/share ch eè la stessa posizione dove lo metterebbe un'installazione pacchettizzata.\\ chown -R apache:apache /usr/share/roundcubemail oppure \\ chown -R root:apache /usr/share/roundcubemail e poi:\\ chmod 775 /usr/share/roundcubemail/temp chmod 775 /usr/share/roundcubemail/logs chmod 775 /usr/share/roundcubemail/config per consentire l'installazione\\ Di sicuro bisogna creare da zero il file /etc/httpd/conf.d/roundcubemail.conf :\\ # # Round Cube Webmail is a browser-based multilingual IMAP client # Alias /roundcubemail /usr/share/roundcubemail # Define who can access the Webmail # You can enlarge permissions once configured # Apache 2.4 # Require local # Require ip 192.168.1 Require all granted # 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 # Define who can access the installer # keep this secured once configured # Apache 2.4 Require local Require all granted # Apache 2.2 Order Deny,Allow # Deny from all Allow from all Allow from 127.0.0.1 Allow from ::1 # Those directories should not be viewed by Web clients. Order Allow,Deny Deny from all Order Allow,Deny Deny from all 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.\\ ora bisogna mettere in sicurezza impostando le protezioni come indicato nel sito di roundcube.\\ che dovrebbero essere tipo:\\ rm -rf /usr/share/roundcubemail/installer che elimina la cartella di installazione, ma c'è anche l'altro modo senza eliminare che va a commentare nel file /etc/httpd/conf.d/roundcubemail.conf tutta la parte relativa la directory installer\\ poi per il chown e il chmod devo chiedere a giovanni.\\ ===== DokuWiki ===== Si può installare con il repo fedora oppure installare dai sorgenti. Qua metto l'installazione dai sorgenti però con un download personalizzato che dokuwiki ci ha messo a disposizione.\\ Se si installa con il pacchetto viene messo nella solita cartella /usr/share io stavolta invece provo a metterla sotto /var/www/nomesito/ \\ Dopo avermesso il file scaricato nella suddetta cartella si decomprime:\\ tar -xzvf dokuwiki-f922c7a8d64f096e12dbefa469d2bb87.tgz entrare nella directory e cominciare a settare i permessi:\\ chown apache:apache data/ chown apache:apache data/tmp/ chown apache:apache lib/plugins chown apache:apache lib/tpl poi cambiare directory cd data chown apache:apache pages/ chown apache:apache attic/ chown apache:apache media/ chown apache:apache media_attic/ chown apache:apache meta/ chown apache:apache media_meta/ chown apache:apache cache/ chown apache:apache index/ chown apache:apache locks/ ritornare alla radici di dokuwiki\\ cd .. chown apache:apache conf Andare all'installer tenendo presente che se si fosse messo i file presenti all'interno della cartella dokuwiki sulla root del sito si potrebbe anche omettere nel seguente url la parola dokuwiki.\\ http://sito/dokuwiki/installer.php NOTA\\ ho provato anche a cambiare solo la proprietà del gruppo alle cartelle in modo tale da permettere la scrittura solo delle cartelle necessarie e la creazione di nuovi file ma non sui vecchi file.\\ quindi ho usato solo:\\ chgrp apache nomecartella\ ecc...\\ o comunque ho cambiato la proprietà solo a due cartelle data/ e conf/ ma non con l'opsione -R che cambia la proprietà a tutti i file ma solo ai nuovi file.\\ poi nella cartella conf/ ci sono alcuni file che devono essere scrivibili e quindi cambio la proprietà solo a quelli.\\ Nota importante per Dokuwiki è la scrittura del file personalizzato del virtualhost all'interno della cartella /etc/httpd/conf.d/ \\ Praticamente per risolvere il problema della sicurezza delle pagine e della directory del wiki ho aggiunto le seguenti riche all'interno del file di configurazione personalizzata del virtual host:\\ DocumentRoot "/var/www/risorsalibera/dokuwiki" ServerName www.risorsalibera.org ServerAlias risorsalibera.org # Other directives here # # Options FollowSymLinks # AllowOverride None # Options Indexes FollowSymLinks MultiViews AllowOverride none Order allow,deny allow from all Order allow,deny Deny from all Satisfy All Quindi per il resto posso anche lasciare la proprietà dei file e delle cartelle a root ma sono da rendere scrivibili ad apache le cartelle e i file indicati dall'installer e indicati sopra.\\ ===== Zoneminder ===== Ho trovato i repo specifici per fedora. Mi dovrei fare io il repo per questa guida onde evitare che li cambino... \\ wget http://zmrepo.zoneminder.com/f/24/armhfp/zmrepo-24-1.fc24.noarch.rpm ora però prima di installare bisognerebbe dare le priorità inserendo nel file fedora.repo la seguente dicitura\\ exclude=zoneminder* poi\\ dnf install --nogpgcheck zmrepo-24-1.fc24.noarch.rpm il seguente comando l'avevo eseguito ma bisogna capire il perchè\\ cp /etc/zm.conf.rpmsave /etc/zm/zm.conf e poi ci sono cose da vedere anche qui:\\ vi /usr/share/doc/zoneminder/README.Fedora e sicuramente c'è da eseguire questo:\\ mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql questo mi sembra di aver capito che è necessario:\\ dnf install mod_ssl c'è anche una modifica qui per il discorso del timezone vi /etc/php.ini da inserire la seguente riga all'inizio altrimenti zoneminder si incavola:\\ date.timezone = "Europe/Vatican" ====== APACHE ====== ===== Virtual Host ===== Per attivare i virtual host possono tornare utili alcune info prese da qui: https://httpd.apache.org/docs/2.4/vhosts/examples.html \\ e comunque il primo esperimento è stato fatto creando un nuovo file /etc/httpd/conf.d/nomesito.conf \\ DocumentRoot "/var/www/cartellasito" ServerName www.nomesito.it # Other directives here Ed è subito partito senza problemi.\\ ora si tratta di capire bene come impostare la sicurezza.\\ ===== sicurezza di apache ===== Ridurre il numero di informazioni esposte.\\ con il comando curl -I http://www.nomesito.it è possibile visualizzare diverse informazioni ma noi dobbiamo ridurle con le seguenti modifiche:\\ vi /etc/httpd/conf/httpd.conf #impostazioni di sicurezza######### ServerTokens Prod ServerSignature Off TraceEnable Off Header unset ETag FileETag None vi /etc/php.d/security.ini # impostazioni di sicurezza ############ expose_php=Off display_errors=Off track_errors = Off html_errors = Off ######################################## ====== primo aggiornamento del sistema ====== #dnf update Server per aggiornare tutti i pacchetti della fedora 24\\ tra questi c'è anche il kernel 4.6.ecc.. ma tra poco aggiornerò il kernel al più recente di raspberry e non a quello di fedora\\ comunque sia è una cosa che devo ancora capire.\\ Infatti verificato che dopo l'update il kernel è sempre quello di raspberry infatti in fase di installazione abbiamo copiato nella directory boot della roba a parte rispetto la distribuzione.\\ quindi\\ #dnf install binutils git ====== cluster pidora ====== con le ultime prove ho installato subito pcs che automaticamente ha installato pacemaker e quindi corosync\\ seguire la procedura per le impostazioni iniziali al primo avvio di Fedora Server per architettura arm\\ ===== impostazioni di rete ===== accertarsi di aver impostato ip statici\\ di seguito un esempiodi /etc/sysconfig/network-script/ifcfg-eth0\\ HWADDR=B8:27:EB:2B:BE:58 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=cd599730-cf12-3d71-821a-82b7a2b837c1 ONBOOT=yes AUTOCONNECT_PRIORITY=-999 IPADDR=192.168.1.118 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 verificare hostname\\ [root@n2 ~]# cat /etc/hostname n2 [root@n2 ~]# impostare ip su /etc/hosts aggiungendo gli ip statici impostati per ciascun nodo\\ 192.168.1.117 n1 192.168.1.118 n2 ===== installazione software ===== ==== DRBD ==== dnf install drbd drbd-utils preparare lo storage condiviso utilizzando le configurazioni note per drbd\\ teniamo presente però che drbd anche se abilitato con\\ systemctl enable drbd.service non si avvia al boot.\\ non so se è un bug o altro. fatto sta che se non fosse per pacemaker non si riesce a renderlo avviabile senza fare il login.\\ Infatti sarebbe possibile inserire drbd.service all'interno della directory /etc/systemd/user e farlo partire quando un utente effettua il login. ma lasciamo perdere non è questo il caso. importantissimo! aprire le porte sul firewall che in fedora 24 è funzionante "firewalld" rendendola permanente\\ firewall-cmd --add-port=7788/tcp --permanent rendere operativa immediatamente la regola\\ firewall-cmd --reload oppure farlo per i servizi:\\ firewall-cmd --add-service=drbd --permanent però non ho provato realmente con drbd\\ verificare i servizi abilitati o le porte abilitate\\ firewall-cmd --list-service o\\ firewall-cmd --list-port dopo aver sincronizzato i dispositivi drbd formattare i device:\\ mkfs.ext4 /dev/drbd0 ==== HTTPD ==== dnf install httpd ma su fedora 24 Server per arm dovrebbe già essere installato\\ accertarsi comunque che il firewall sia aperto o aprirlo\\ firewall-cmd --add-service=httpd firewall-cmd --reload ==== PACEMAKER ==== ora dovremmo essere pronti per configurare il cluster\\ quindi installiamo i software necessari:\\ dnf install pcs drbd-pacemaker questo dovrebbe installare anche corosync e pacemaker vero e proprio abilitarli all'avvio\\ systemctl enable pacemaker.service systemctl enable pcsd.service in un tutorial ho trovato anche questo da aggiungere:\\ ln -s '/usr/lib/systemd/system/pcsd.service' '/etc/systemd/system/multi-user.target.wants/pcsd.service' ma bisogna provare a non farlo...\\ aggiungere la solita regola per il firewall:\\ firewall-cmd --add-service=high-availability --permanent per la configurazione vera e propria si comincia assegnando la password all'utente speciale hacluster con:\\ passwd hacluster oppure\\ echo | passwd --stdin hacluster su entrambi i nodi\\ poi avviare pcsd\\ systemctl start pcsd.service autorizzare i nodi con:\\ pcs cluster auth node1 node2 a questo comando verrà chiesto di inserire il nome dell'utente speciale hacluster o lo troviamo già inserito e dobbiamo solo mettere la password.bo?\\ è sufficiente eseguirlo da un solo nodo.\\ sempre da un solo nodo creare il cluster:\\ pcs cluster setup --start --name webcluster centos05 centos07 pcs cluster setup --name webcluster webnode01 webnode02 pcs cluster setup --start --name apachecluster node1 node2 pcs cluster setup --name mysql_cluster pcmk01-cr pcmk02-cr quattro modi di fare la stessa cosa ovvero creare un cluster.\\ se non è già stato fatto nel comando unico precedente, avviare il cluster pcs cluster start --all un'altra cosa di cui non sono sicuro\\ pcs cluster enable --all penso per abilitare tutte le risorse.\\ verificarne lo stato\\ pcs cluster status o\\ pcs status sistemare lo stonith se non lo si attiva\\ pcs -f clust_cfg property set stonith-enabled=false o\\ pcs property set stonith-enabled=false il quorum\\ pcs property set no-quorum-policy=ignore e lo stickiness\\ pcs -f clust_cfg resource defaults resource-stickiness=200 procedere con la creazione delle risorse.\\ ===== appunti ===== 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: SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 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. #ccs -f /etc/cluster/cluster.conf --addnode n1str #ccs -f /etc/cluster/cluster.conf --addnode n2str #ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk #ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect n1str #ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect n2str #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 ---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] ---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