Ucarp: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:IT_infrastruktuuri_teenused]]
=UCARP/CARP=
=LDAP Authentication MediaWikile=
Autor: Marek Must<br> 07.12.2012
Autor: Marek Must<br> 07.12.2012
Rühm: AK21
Rühm: AK21
Line 6: Line 6:


==Sissejuhatus==
==Sissejuhatus==
Carp (inglise k. "Common Address Redundancy Protocol") on protokoll, mis lubab samadel serveritel samas subnetis jagada ühte IP aadressi.
MediaWiki on võimalik panna LDAP või ActiveDirectory-ga ühendusse, et kasutajanimi ja parool tuleks sealt.


Ucarp on tarkvara, mis võimaldab sul vähemalt 2 serveri olemasolul jagada neile 1 virtuaalne IP aadress, mille tulemusega saadakse kluster.
Ucarp ei ole väga peen lahendus ja sellega tuleb alati arvestada.


===Ucarpi tugevus===
  * Lihtsus (ülesse seadmine käib lihtsalt)
  * Väike serveri ressursside kasutamine
  * Pole vaja lisa võrgu otsasid (alati on kena, kuid see on täiesti teine teema)
  * Krüptograafiliselt signeeritud teated. (Ucarpil on seadistatud parool, öeldes lihtsalt)
  * Suudab töödata koos mitme operatsiooni süsteemiga (inglise k. interoperability )


===Tööpühimõte===
==install==
Tuleb alla laadia: http://www.mediawiki.org/wiki/Extension:LDAP_Authentication
Sealt saab plugina, mis tuleks panna mediawiki extensions kataloogi.


Ucrap töötab lihtsalt:
1.) Kui "Server 1" on üleval, siis sellele on määratud virtuaalne IP aadress.
2.) Kui "Server 1" on maas ja "Server 2" on primaarne (inglise k. primary), siis on määratud "Server2"-le virtuaalne IP aadress, eeldades, et "Server 2" töötab.
===Ucarpi Nõrkus===
  * Ainult IP põhine kluster
  * Seadeid, teenuseid üle ei kanta, kui "Server 2" saab peamiseks serveriks.
Tsiteerides targemaid: ucarp on võrreldes keepalived või heartbeat tarkvaraga tagasihoidlikemate omadustega, kuid mõnel juhul võib just see ollagi eeliseks
==UCARP install==
Install käib lihtsalt:
<pre>
apt-get install ucarp
</pre>
Selle pannakse programmid peale. mitte unustada, et tarkvara tuleb installida mõlemale serverile!!
==Eel Seadistamine==
* 1.) Teil on installeeritud 2 serverit, kas siis virtuaalsed või mitte.
* 2.) Ubuntu tavaline install on täiesti piisav.
* 3.) Vmware või Virtualboxi installi kasutades on elu natukene lihtsam (seda kasutan ka siin hetkel)
Kasutates  Ubuntu kiir installi ja lasite alguses IP anda endale DHCP-l, milleks minu juhul on: 192.168.101.138
Seda saab vaadata:
<PRE>
ifconfig
</PRE>
Tulemüüri(inglise k. Gateway) saamine on natuke keerulisem, sest DHCP-ga seda ei ole võimalik päris "tavaliselt" ( ifconfig) näha.
Tulemüüri nägemiseks on olemas mitu võimalust, kuid mulle meeldib kasutada traceroutei. Tava installis seda paketti peal ei ole ja seega tuleks see paigaldada


<PRE>
<PRE>
apt-get install traceroute
#kataloogipuu/extensions/LdapAuthentication
</PRE>
</PRE>


Kasutades traceroutei saame:
Mingeid muudatusi extensionis tegema ei pea.
 
<pre>
traceroute www.neti.ee
</pre>
 
ja esimene tulemus annab meile juba teada, meie DHCP aadressi:
 
<pre>
root@ubuntu:~# traceroute www.neti.ee
traceroute to www.neti.ee (195.50.209.245), 30 hops max, 60 byte packets
1  192.168.101.2 (192.168.101.2)  0.139 ms  0.103 ms  0.076 ms^C
</pre>
 
Pärast esimest rida võib traceroutei programmist CTRL-C välja minna, pole põhjust edasi oodata. Info olemas.
 
Meie IP ja tulemüür peaksid nägema välja hetkel sellised:
 
<pre>
IP: 192.168.101.138
GW: 192.168.110.2
</pre>
 
 
Teie praegune olukord peaks olema midagi sellist:
 
Server 1
 
Kasutame käsku ifconfig
 
<pre>
ifconfig
</pre>
 
<pre>
eth0      Link encap:Ethernet  HWaddr 00:0c:29:6f:d7:c4
          inet addr:192.168.101.138  Bcast:192.168.101.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe6f:d7c4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8377 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5937 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9556394 (9.5 MB)  TX bytes:426352 (426.3 KB)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 
 
 
</pre>
 
 
Server 2
 
Kas siin kasutame sama käsku, mis eelmise server juures:
 
<pre>
 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:99:51:66
          inet addr:192.168.101.140  Bcast:192.168.101.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe99:5166/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7586 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4140 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9481944 (9.4 MB)  TX bytes:253201 (253.2 KB)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:112 (112.0 B)  TX bytes:112 (112.0 B)
 
</pre>
 
==Ucarp Seadistammine==
 
==Server 1==
<pre> vim /etc/network/interfaces </pre>
 
Peaks avanema selline pilt:
 
<pre>
 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet dhcp
 
</pre>
 
Nüüd siis muudame selle ümber:
 
<pre>
 
root@ubuntu:~# vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
 
# The primary network interface
auto eth0
iface eth0 inet static
        ################################
        # standard network configuration
        ################################
        address 192.168.101.138  # meie IP, mis panime alguses
        netmask 255.255.255.0    # netmask, selle saab ifconfig käsuga
        gateway 192.168.101.2    # traceroute aitas siin
        network 192.168.101.0    # natuke tuletamist..
        broadcast 192.168.101.255 #samuti ifconfig aitab
 
        ################################
        # ucarp configuration  #########
        ################################
        # vid : The ID of the virtual server [1-255]
        ucarp-vid 1
        # vip : Virtuaalne IP aadress
        ucarp-vip 192.168.101.139
        # password : Mõlemal pool sama!!!!
        ucarp-password secret
        # advskew : Advertisement skew [1-255] # tähendab maakeels seda, et me ei reklaamime ennast koguaeg.
 
        ucarp-advskew 1
        # advbase
        ucarp-advbase 1
       
        #advskew ja advbase on asjad millega kontrollitakse kui tihedalt brodcastitakse.
       
        # Kontroll, kas oleme peamine server?
        ucarp-master yes
 
 
 
# CARP võrgu addressi kirjutame siia lihtsalt
iface eth0:ucarp inet static
        address 192.168.101.139
        netmask 255.255.255.0
 
</pre>
 
Kindlasti tuleb teha võrgule restart, et kõik seaded võetakse kasutusse.
 
<pre>
/etc/init.d/networking restart
</pre>
 
Nüüd on võrgu seaded serveri poolt omaks võetud (juhul kui ei tekkkinud vigu).
 
Nüüd kasutame meile juba tuttavat käsku ifconfig, et vaadata, kas kõik on hästi.
 
<pre>
ifconfig
</pre>
 
Peaks nägema välja midagi sellist:
 
<pre>
eth0      Link encap:Ethernet  HWaddr 00:0c:29:6f:d7:c4
          inet addr:192.168.101.138  Bcast:192.168.101.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe6f:d7c4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1195 errors:0 dropped:0 overruns:0 frame:0
          TX packets:287 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:88166 (88.1 KB)  TX bytes:29985 (29.9 KB)
 
eth0:ucarp Link encap:Ethernet  HWaddr 00:0c:29:6f:d7:c4
          inet addr:192.168.101.139  Bcast:192.168.101.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2712 (2.7 KB)  TX bytes:2712 (2.7 KB)
</pre>
 
See annab meile selguse, et Server1s on Ucarp kasutuses!
 
==Server 2==
 
Nüüd tuleks teha samasugune muutus ka server 2s.
Olles laisad, siis saame nüüd kopeerida selle ka teise serverisse, pärast teeme muudatused:
Paar asja on siin väga tähtsad:
 
1.) ucarp-advskew 100 # tähendab maakeeles seda, et me ei reklaami ennast nii tihedalt.
2.) ucarp-master no # Server ka ei ole master!
3.) IP address peab olema ikka selle serveri oma (192.168.101.140). Muud asjad samad
4.) virtuaalsed IP-d peaksid olema need, mis eelmisel serveril.
 
<pre>
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
        ################################
        # standard network configuration
        ################################
        address 192.168.101.140
        netmask 255.255.255.0
        gateway 192.168.101.2
        network 192.168.101.0
        broadcast 192.168.101.255
 
        ################################
        # ucarp configuration
        ################################
        # vid : The ID of the virtual server [1-255]
        ucarp-vid 1
        # vip : Virtuaalne IP aadress
        ucarp-vip 192.168.101.139
        # password : A password used to encrypt Carp communications
        ucarp-password secret
        # advskew : Advertisement skew [1-255]
        ucarp-advskew 100
        # advbase : Interval in seconds that advertisements will occur
        ucarp-advbase 1
        # master : nüüd me enam ei ole master. Seega määrame ära "no"
        ucarp-master no
 
# The carp network interface, on top of eth1
iface eth0:ucarp inet static
        address 192.168.101.139
        netmask 255.255.255.0
 
</pre>
 
Nüüd kui vastavad muudatused on sees, siis teeme ka võrgule restarti
 
<pre>
/etc/init.d/networking restart
</pre>
 
 
Kui märkasid, siis tegelikult midagi ei juhtunud, kuna oleme mitte masterid!
Kõik peaks nägema välja nagu endine:
 
<pre>
eth0      Link encap:Ethernet  HWaddr 00:0c:29:99:51:66
          inet addr:192.168.101.140  Bcast:192.168.101.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe99:5166/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:213 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:17498 (17.4 KB)  TX bytes:12669 (12.6 KB)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1380 (1.3 KB)  TX bytes:1380 (1.3 KB)
 
 
</pre>
 
==UCARP testimine==
 
Nüüd on mõlemad serverid paigas ja töötavad Ucarp on mõlemale installitud, kuid hetkel me ikka ei tea, kas Ucarp tegelikult ka töötab.
 
Kerge test võiks olla selline, et paneme serveri kinni, millel hetkel on ucarp aktiveeritud, minu puhul
 
<pre>
 
shutdown -h now
 
</pre>
 
Nüüd peaksid nägema Server2s (minu puhul) ucarpi aktiveeritult.
 
<pre>
ifconfig
</pre>
 
Vastus:
 
<pre>
eth0      Link encap:Ethernet  HWaddr 00:0c:29:99:51:66
          inet addr:192.168.101.140  Bcast:192.168.101.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe99:5166/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1270 errors:0 dropped:0 overruns:0 frame:0
          TX packets:929 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:94480 (94.4 KB)  TX bytes:113861 (113.8 KB)
 
eth0:ucarp Link encap:Ethernet  HWaddr 00:0c:29:99:51:66
          inet addr:192.168.101.139  Bcast:192.168.101.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:482 errors:0 dropped:0 overruns:0 frame:0
          TX packets:482 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:38580 (38.5 KB)  TX bytes:38580 (38.5 KB)
 
 
</pre>
 
 
Annab meile jällegi kindlustunde, et tõesti server1 annab oma asjad üle server2le, kui server1-ga peaks midagi juhtuma.
 
==UCARP ja Apache koos==
 
Idee on lihtne. Installime mõlemale serverile apache serveri ja hoiame neid süngis linuxi vahenditega.
Selleks võib olla rsync või ka tavaline copy cronis :) Hetkel kasutame rsynci.
 
Installime apachei ja rsynci:
 
Server1:
<pre>
apt-get install apache2 rsync
</pre>
 
Server2:
<pre>
apt-get install apache2 rsync
</pre>
 
Nüüd on meil 2 serverit, millel on Rsync ja apache2 installitud
Apache2 hoiab oma asju:
 
<pre>
/etc/apache2
</pre>
 
Siis tuleks meil kindlasti sünkida seda kataloogi ja samuti ei tohi ära unustada ka kataloogi, kus meie apache asub
Näiteks:
 
<pre>
/var/www/
</pre>
 
Nüüd paneme oma rsynci tööle, soovitavalt Crontabi. Meil tekkib probleem, et oleks vaja pärast apache2 konfiguratsioonide muutmist ka apache2 uuesti "reloadida". Selleks kasutame skripti. Hetkel siin kasutamiseks kirjutasin lihtsa skripti, mida saab endale vastavalt kergelt parandada.
 
<pre>
touch /root/apache_rsync.sh
</pre>
 
Anname käivitamise õigused, et pärast ei unustaks:
 
<pre>
chmod 755 apache_rsync.sh
</pre>
 
Nüüd, skript ise. Eeldus on see, et mõlemal pool on SSH lubatud!
 
<pre>
vim /root/apache_rsync.sh
</pre>
 
<pre>
 
#!/bin/sh
#rsync ise
rsync -avz -e ssh root@192.168.101.138:/home/apache2 /home/apache2/
rsync -avz -e ssh root@192.168.101.138:/var/www/html /var/www/html
 
#p2rast asjade yle kopeerimist tuleb teha reaload et teisel pool ikka asjad t66taks.
/etc/init.d/apache2 reload
 
</pre>
 
See nüüd croni server2-le
 
<pre>
vim /etc/crontab
</pre>
 
Lisage selline rida. Sellega hakatakse rsyncika hoidma servereid sünkroonis. Tehakse iga 15 minuti järgi. Number 15 võib muuta oma äranägemise järgi.
 
<pre>
*/15 * * * * root /root/apache_rsync.sh
</pre>


==Kokkuvõtteks==
==Seadistamine==
Võiks öelda, et viimane skript on väga väike ja võiks kõvasti paremaks teha.
Näiteks: email saatmise sisse panna, sest hetkel me ei tea, millal server1 on põhiline ja millal server2 on põhiline.
Hetkel teeme eelduse , et server1 sai fataalse errori ja on katki ja pärast selle korda tegemist on see jälle põhiline.


==Kasutatud kirjandus==
Nüüd avame LocalSettings.php faili, kus paneme extesnsioni käima.
* http://valeriytroshin.blogspot.com/2011/08/carp-failover-redundancy-in-ubuntu-1104.html
* http://laurentbel.com/2012/04/12/simple-apache-failover-cluster-on-ubuntu-with-config-synchronization/
* http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#ucarp_kasutamine
* http://www.freebsd.org/doc/handbook/carp.html
* http://laurentbel.com/2012/04/04/simple-failover-cluster-on-ubuntu-using-carp/
* http://en.wikipedia.org/wiki/Common_Address_Redundancy_Protocol
* http://blog.ijun.org/2009/11/high-availability-with-freebsd-and-carp.html
* http://www.howtoforge.com/how-to-configure-a-pfsense-2.0-cluster-using-carp
* http://kuutorvaja.eenet.ee/wiki/K%C3%B5rgk%C3%A4ideldavus_UCARP_abil#Paigaldamine_ja_seadistamine_RHEL.2C_CentOS_ja_Fedora_kasutajatele
* http://www.pureftpd.org/project/ucarp

Revision as of 10:57, 2 June 2014

LDAP Authentication MediaWikile

Autor: Marek Must
07.12.2012 Rühm: AK21 Esitamise kuupäev:

Sissejuhatus

MediaWiki on võimalik panna LDAP või ActiveDirectory-ga ühendusse, et kasutajanimi ja parool tuleks sealt.


install

Tuleb alla laadia: http://www.mediawiki.org/wiki/Extension:LDAP_Authentication Sealt saab plugina, mis tuleks panna mediawiki extensions kataloogi.


#kataloogipuu/extensions/LdapAuthentication

Mingeid muudatusi extensionis tegema ei pea.

Seadistamine

Nüüd avame LocalSettings.php faili, kus paneme extesnsioni käima.