Hogyan konfigurálhatom a konzult termelési környezetben az Ubuntu 14.04-en
Feladva 2014. augusztus 15-én 2 verzió
Bevezetés
A Consul egy elosztott, rendkívül elérhető, adatközpont-tudatos, szolgáltatás-felderítő és konfigurációs rendszer. Használható szolgáltatások és csomópontok bemutatására egy rugalmas és hatékony felületen, amely lehetővé teszi az ügyfelek számára, hogy mindig naprakész képet kapjanak arról az infrastruktúráról, amelynek részei.
A Consul számos különféle szolgáltatást kínál, amelyek következetes és elérhető információk nyújtására szolgálnak az infrastruktúrájáról. Ez magában foglalja a szolgáltatás- és csomópont-felderítési mechanizmusokat, a címkézési rendszert, az állapotfelméréseket, a konszenzuson alapuló választási rutinokat, az egész rendszerre kiterjedő kulcs/érték tárolást és még sok mást. A szervezeten belüli konzul kihasználásával könnyen fejlett szintű tudatosságot tud felépíteni alkalmazásaiban és szolgáltatásaiban.
Utolsó útmutatónkban bemutattuk a konzul néhány funkcióját. Ebben az útmutatóban megkezdjük a gyártásra kész konzuli konfiguráció létrehozását, amely felhasználható az infrastruktúra szolgáltatáskeresésének megvalósításához.
Előfeltételek és célok
Ebben a sorozatban olyan szerverek rendszerét fogjuk felállítani, amelyek képesek lesznek egymással kommunikálni, és karbantartani a szolgáltatási információkat, a kulcs/érték tároló készleteket és az ügyfélgépek egyéb részleteit. Az első lépések a rendszergyártás előkészítése felé ebben az útmutatóban kerülnek, amikor telepítjük a szoftvert és automatizáljuk a konfigurációnkat.
A konzul dokumentációja azt javasolja, hogy legyen 3 vagy 5 konzul szerverek minden adatközpontban fut, hogy elkerülje az adatvesztést szerverhiba esetén. A konzul szerverek az a komponens, amely a nehéz emelést végzi. Tárolnak információkat a szolgáltatásokról és kulcs/érték információkat. Páratlan számú szerverre van szükség a patthelyzet elkerülése érdekében a választások során.
A konzuli szervereken kívül más gépek is működhetnek konzuli ügynökök. A konzuli ügynökök nagyon könnyűek és egyszerűen továbbítják a kéréseket a szerverekre. Ezek biztosítják a szerverek szigetelésének módszerét, és magukra az ügynökökre hárítják a szerverek címeinek ismeretét.
A biztonsági mechanizmusok egy részének későbbi útmutatóban történő megvalósításához az összes gépünket egyetlen tartományon belül kell megneveznünk. Ez azért van, hogy később helyettesítő SSL tanúsítványt állíthassunk ki.
Gépeink részletei itt találhatók:
server1.example.com | 192.0.2.1 | bootstrap konzul szerver |
server2.example.com | 192.0.2.2 | konzul szerver |
server3.example.com | 192.0.2.3 | konzul szerver |
agent1.example.com | 192.0.2.50 | konzuli ügyfél |
Ehhez a bemutatóhoz 64 bites Ubuntu 14.04 szervereket fogunk használni, de minden modern Linux szervernek ugyanolyan jól kell működnie. Amikor a konfigurálás befejeződött, rendelkeznie kell egy olyan rendszerrel, amely lehetővé teszi a szolgáltatások, ellenőrzések és csomópontok egyszerű hozzáadását.
Jelentkezzen be gépeire root felhasználóként, hogy elvégezze az ebben az útmutatóban szereplő lépéseket.
A Consul letöltése és telepítése
Ha még nem telepítette a konzult a konzul útmutató kezdeti bevezetésébe, akkor ezt most meg kell tennie. A konzult rendszerszintű alkalmazásként telepítjük a konfigurált négy gép mindegyikére.
Mielőtt belenéznénk a konzuli alkalmazásba, ki kell csomagolnunk a csomagolást a futtatható fájl kibontásához. Frissítse a helyi rendszercsomag gyorsítótárát, majd telepítse a csomagot az apt használatával:
Most folytathatjuk a konzul program beszerzését. A konzul projekt oldala letöltési linkeket tartalmaz a Windows, OS X és Linux bináris csomagokhoz.
Lépjen a fenti oldalra, és kattintson a jobb gombbal az operációs rendszerre és az architektúrára, amely a szervereit ábrázolja. Ebben az útmutatóban, mivel 64 bites szervereket használunk, a „linux” alatt az „amd64” linket fogjuk használni. Válassza a "link másolása" lehetőséget, vagy bármi hasonló lehetőséget, amelyet a böngésző ad.
Termináljában lépjen az/usr/local/bin könyvtárba, ahol megtartjuk a futtatható fájlt. Írja be a wget és egy szóközt, majd illessze be a webhelyről másolt URL-t:
Most kibonthatjuk a bináris csomagot a korábban telepített unzip paranccsal. Ezután eltávolíthatjuk a tömörített fájlt:
Most már minden kiszolgálón elérhetőnek kell lennie a consul paranccsal.
Hozza létre a szükséges könyvtárat és rendszerstruktúrát
Könnyen kipróbálhatjuk a konzult strukturálatlanul a konzul parancs használatával. Ez lehetővé teszi bizonyos funkciók kipróbálását. Ezt az utolsó útmutatóban tettük meg, hogy megismerkedjünk a szoftverrel.
Megpróbálunk azonban megbízhatóbb és könnyebben kezelhető rendszert felállítani, ezért létrehozunk egy struktúrát ennek a működésnek a megvalósításához. Hajtsa végre a következő lépéseket minden számítógépén (kiszolgálók és kliensek).
Az első dolog, amire ügyelnünk kell, a feladatunkra jellemző felhasználó létrehozása. Ez a felhasználói jogok szétválasztásának szokásos esete, ezért konzuli folyamatainkat egy dedikált felhasználóval fogjuk futtatni.
Készítse el most a felhasználót a következő beírásával:
Az összes kérést kihagyhatja (érdemes beállítania egy jelszót. Ellenkező esetben panaszt fog tenni), ha szeretné.
Ezután létrehozzuk a konfigurációs hierarchiát, amely tartalmazza a különböző konfigurációkat, amelyeket a szolgáltatás elindításának függvényében fogunk használni. Ennek megkönnyítése érdekében létrehozunk egy szülő consul.d könyvtárat az/etc config struktúrában, és ebbe az összes rendszerbe beletesszük a bootstrap, a kiszolgáló és az ügyfél nevű alkönyvtárakat:
Ezekbe később bele tudjuk tenni a konfigurációinkat. Valamennyi kiszolgáló valószínűleg legfeljebb két ilyen könyvtárat fog használni, de minden egységen létrehozzuk a konzisztencia struktúráját.
Létre kell hoznunk egy helyet, ahol a konzul tartós adatokat tárolhat az újraindítás között. Erre a célra létrehozunk egy könyvtárat a/var/consul címen, és megadjuk a konzul felhasználónak, hogy kezelni tudja az adatokat:
Ha ez a szerkezet a helyén van, akkor képesnek kell lennünk a konfigurációs fájlok elkészítésének megkezdésére.
A Bootstrap konfiguráció létrehozása
Az első konfiguráció, amelyet létre kell hoznunk, a fürt indítása. Ez nem túl gyakori esemény, mivel csak a fürt kezdeti létrehozásához szükséges. Azonban létrehozzuk a konfigurációs fájlt, hogy gyorsan újrakezdhessük azt az esetet, ha a fürt teljesen leáll.
Ezt a konfigurációs fájlt csak az egyik konzuli kiszolgálóra helyezheti, vagy mindegyikre, hogy több lehetőséget biztosítson a rendszerindításhoz. Ezt a bemutatót csak az 1. szerverre tesszük.
A konfigurációs fájlok egyszerű JSON-ban vannak tárolva, így könnyen kezelhetők. Hozza létre az első fájlt a bootstrap alkönyvtárban:
Ebben a fájlban azzal kezdhetjük, hogy megadjuk, hogy ennek a konfigurációnak a használatakor a konzulnak szerverként kell indulnia bootstrap módban:
Meg kell adnunk azt az adatközpontot is, ahol a fürtünk élni fog. Ez bármilyen név lehet, amely segít a fürt fizikai helyének azonosításában. A konzul ismeri az adatközpontot, és ezek a jelölések segítenek a különböző fürtök adatközpont szerinti rendezésében.
Átadhatjuk a/var/consul könyvtárban létrehozott adatkönyvtárban is. A konzul ezt használja a fürt állapotára vonatkozó információk tárolására:
Ezután szeretnénk végrehajtani némi titkosítást a konzul által használt suttogó protokollban. Ezt a funkciót egy megosztott titkos rendszer segítségével építi be. A titoknak egy 16 bites alap-64 kódolású karakterláncnak kell lenniük. Az értéknek megfelelő érték eléréséhez ideiglenesen kilépünk a fájlból.
A terminálban a consul paranccsal létrehozhatunk egy szükséges hosszúságú és kódolású kulcsot. Típus:
Másolja a létrehozott értéket, és nyissa meg újra a konfigurációs fájlt:
Használja a másolt karakterláncot a titkosítási paraméter értékeként:
Végül hozzáadunk néhány további információt a naplószint megadásához és annak jelzéséhez, hogy a syslog-ot használni kívánja a naplózáshoz:
Mikor elkészült, mentse és zárja be a fájlt.
A szokásos kiszolgáló-konfiguráció létrehozása
Most, hogy a bootstrap konfigurációnk elkészült, felhasználhatjuk általános szerverkonfigurációnk alapjául. A kiszolgáló konfigurációját a fürt indításakor használjuk.
Először másolja a bootstrap fájlt a server1 szerverről a gép kiszolgáló alkönyvtárába szerkesztés céljából:
Nyissa meg a fájlt a szükséges módosítások elvégzéséhez:
Az indításhoz ki kell kapcsolnunk a bootstrap jelzőt, mivel ez a konfiguráció nem bootstrap konfigurációkra vonatkozik.
Az egyetlen dolog, amelyet módosítanunk kell a kiszolgáló konfigurációjánál, az a másik szerver IP-címeinek megadása, amelyekhez ennek a csomópontnak meg kell próbálkoznia az induláskor. Ez gondoskodik az automatikus csatlakozásról, hogy ne kelljen kézzel csatlakoznunk a fürthöz a kiszolgálónk indítása után:
A titkosítási paraméternek a rendszer összes résztvevőjének meg kell egyeznie, ezért a fájl másolása már gondoskodott rólunk. Ezt tartsa szem előtt az új konfigurációk létrehozásakor.
Ha elkészült, mentse a fájlt.
Másolja át ennek a konfigurációs fájlnak a tartalmát a többi gépre, amelyek konzuli szerverként fognak működni. Helyezze őket egy fájlba az /etc/consul.d/server/config.json címen, ugyanúgy, mint az első gazdagépen.
Az egyetlen érték, amelyet módosítania kell a többi gazdagépen, az az IP-cím, amelyhez megpróbál csatlakozni. Győződjön meg arról, hogy a saját IP helyett megpróbál csatlakozni az első kiszolgálóhoz. Például a példánkban szereplő második szervernek egy ilyen fájlja van:
Ha elkészült, mentse és zárja be a létrehozott fájlokat.
Az ügyfélkonfiguráció létrehozása
A szerverkonfigurációink teljesek. Arra koncentrálhatunk, hogy megfelelő konfigurációval üzembe helyezzük az ügyfélgépünket.
Nyisson meg egy konfigurációs fájlt az ügyfélgép kliens alkönyvtárában:
Ismét egy korábbi konfigurációt fogunk használni az új konfiguráció alapjául. Másolja az egyik kiszolgálófájl tartalmát ebbe a fájlba.
Kezdjük azzal, hogy eltávolítjuk a bootstrap paraméter minden említését, mivel ez csak a szerver konfigurációira vonatkozik, és a szerver paraméterét hamisra változtatjuk.
Ezután hozzáadunk egy paramétert, amely meghatározza a webes felhasználói felület könyvtárának helyét. Egy kicsit megszerezzük az ehhez szükséges fájlokat. A tartózkodási helyük a következő:/home/consul/dist .
Végül a start_join paramétert úgy szeretnénk beállítani, hogy az összes szerverünket felsorolja:
Mikor elkészült, mentse és zárja be a fájlt.
A webes felhasználói felület fájlok letöltése
Most, hogy az ügyfelet a webes felhasználói felület kiszolgálására konfiguráltuk, be kell szereznünk a tényleges fájlokat, amelyek lehetővé teszik ezt.
A konzul webhelyén kattintson a jobb gombbal a konzul webes felhasználói felületére mutató linkre, és válassza a „Link link másolása” vagy bármilyen hasonló lehetőséget.
Az ügyfélen a su használatával váljon konzuli felhasználóvá. Fel fogjuk állítani a webkönyvtárat a konzul felhasználó saját könyvtárában.
Írja be a wget parancsot, majd egy szóközt, és illessze be a webes felhasználói felület letöltéséhez másolt linket. Az írás idején ez így fog kinézni:
Csomagolja ki a letöltött fájlt, és távolítsa el a zip fájlt:
Ez létrehozza a dist nevű könyvtárat a saját könyvtárában. Ez az a könyvtár, amelyre a webes felhasználói felület paraméterét mutattuk a konfigurációs fájlban.
Mielőtt folytatnánk, lépjen ki a konzul felhasználói munkamenetéből, hogy visszatérjen a gyökér munkamenethez:
Hozzon létre egy Upstart szkriptet
Mostantól megvan a konfigurációs fájlunk. Ezután összpontosíthatunk egy upstart szkript létrehozására, hogy a konzul példányaink automatikusan elinduljanak az indításkor, és bármilyen probléma esetén újrainduljanak.
Mivel a fürt bootstrapelésével nem kell gyakran foglalkoznunk (legtöbbször maga a klaszter is fennmarad, és előfordulhat, hogy egyetlen csomópontot kell újraindítani és újra csatlakozni a fürthöz), nem fogjuk figyelembe venni a bootstrap-ot az upstart szkriptben. Hamarosan megmutatjuk, hogyan lehet manuálisan befejezni ezt a folyamatot.
Az indító szkriptünk hasonló lesz a szervereinken és az ügyfélen is. Az egyik konzuli kiszolgálón hozzon létre egy fájlt az/etc/init könyvtárban a konzuli konfiguráció megőrzéséhez:
A fájl tartalmát átmásoljuk a többi szerverre, majd kliens konfigurációnk alapjául is felhasználjuk. Ezen a fájlon belül az első ügyintézés a folyamat leírásának elkészítése. Szervereinken a következőket fogjuk használni:
Ezután meghatározzuk azokat a feltételeket, amelyek mellett a folyamat elindul. Ehhez a szolgáltatáshoz azt akarjuk, hogy a szolgáltatás a helyi fájlrendszer csatlakoztatásakor és a nyilvános hálózati felület futásakor kezdődjön.
Azt is meg akarjuk határozni, hogy mikor álljon le a folyamat. A szokásos Linux futási szintek használatával megmondhatjuk neki, hogy állítsa le a folyamatot, ha éppen nem a szokásos üzemmódban van (állítsa le a folyamatot a szerver leállításakor vagy újraindításakor):
Mondhatjuk az init rendszernek, hogy indítsa újra a folyamatot, ha az váratlanul meghal. Meg szeretnénk adni azt a felhasználót és csoportot is, amely alatt a folyamatnak futnia kell. Ne feledje, hogy a folyamat elkülönítésére hoztuk létre a konzul felhasználót és csoportot:
Végül meg kell adnunk a tényleges futtatni kívánt parancsot. Ez egyszerűen az ügynök módban futtatott konzul parancs lesz. A kiszolgáló konfigurációs specifikációkat argumentumként tartalmazó könyvtárban adjuk át a parancsnak:
Ha elkészült, mentse a fájlt.
Másolja át a fájl tartalmát az /etc/init/consul.conf nevű fájlba minden szerverén és az ügyfélen is.
A kliensen csak kicsit módosítanunk kell a fájlt. Meg kell változtatnunk a leírást, hogy hivatkozzunk arra a tényre, hogy ez egy kliens gép. Meg kell változtatnunk azt a konfigurációs könyvtárat is, amelyet a tényleges konzul parancs átad.
A végfájlnak ilyennek kell kinéznie:
Mikor elkészült, mentse és zárja be a fájlt.
A fürt elindítása
Most már minden megvan a helyén ahhoz, hogy a konzul klaszter gyorsan működésbe lépjen. A folyamat viszonylag egyszerű.
Azon a kiszolgálón, amely tartalmazza a bootstrap konfigurációs fájlt (esetünkben a server1-et), használja a su billentyűt, hogy röviden áttérjen a konzul felhasználójára. Ezután hívhatjuk a consul-t és átadhatjuk a bootstrap könyvtárban argumentumként:
A szolgáltatásnak be kell indulnia, és el kell foglalnia a terminál ablakát. Indítópult módban ez a kiszolgáló önállóan választja meg vezetőnek, megalapozva ezzel a fürt kialakítását.
A többi konzuli kiszolgálón gyökérként indítsa el az imént létrehozott konzuli szolgáltatást az upstart szkript segítségével, beírva:
Ezek a kiszolgálók csatlakoznak a rendszerindító szerverhez, befejezve a fürtöt. Ezen a ponton három kiszolgálónk van, amelyek közül kettő normálisan működik, és az egyik bootstrap módban van, vagyis végrehajtó döntéseket hozhat a többi szerverrel való konzultáció nélkül.
Nem ezt akarjuk. Mindegyik szervert egyenlő feltételekkel akarjuk elérni. Most, hogy a fürt létrejött, leállíthatjuk a bootstrapped konzulpéldányt, majd normál szerverként újra beléphetünk a fürtbe.
Ehhez nyomja meg a CTRL-C gombot a rendszerindító szerver terminálján:
Most lépjen vissza a root munkamenetbe, és indítsa el a konzuli szolgáltatást, mint a többi szerverrel:
Ez azt eredményezi, hogy a korábban bootstrapolt kiszolgáló nem emelt jogosultságokkal csatlakozik a fürthöz, és végső állapotba hozza a fürtöt.
Most, hogy a fürt teljes mértékben működik, az ügyfélgépek csatlakozhatnak. Az ügyfélgépen hajtsa végre ugyanazt az eljárást, mint a root:
Az ügyfél kliensként csatlakozik a fürthöz. A fürt tagjait (kiszolgálókat és klienseket) úgy tekintheti meg, hogy bármelyik gépen konzult kér a tagjaitól:
Csatlakozás a webes felhasználói felülethez
Konfiguráltuk kliens gépünket egy webes felület tárolására a fürtön. Ezt azonban a helyi felületen szolgálják ki, vagyis nem elérhető számunkra a gép nyilvános felületét használva.
A webes felhasználói felülethez való hozzáférés érdekében létrehozunk egy SSH alagutat az ügyfélgéphez, amely az UI fájlokat tárolja. A konzul a HTTP interfészt szolgálja a 8500-as porton. A 8500-as helyi portunkat alagútba juttatjuk az ügyfélgép 8500-as portjához. Írja be a helyi számítógépre:
Ez csatlakozik a távoli géphez, alagutat hoz létre a helyi portunk és a távoli port között, majd háttérbe szorítja a kapcsolatot.
A helyi webböngészőben most a következőket írja be:
Ez megadja az alapértelmezett webes felhasználói felület oldalt:
Ezzel a felülettel ellenőrizheti szervereinek állapotát, és áttekintést kaphat a szolgáltatásairól és az infrastruktúráról.
Ha befejezte a webes felhasználói felület használatát, bezárhatja az SSH alagutat. Keresse meg a folyamat pid számát a ps parancs és a grep segítségével az átirányított portszám megkereséséhez:
A fenti kimenet kiemelt száma (azon a vonalon, amely az általunk használt alagútparancsot tartalmazza) a keresett pid szám. Ezután átadhatjuk ezt a kill parancsnak az alagút bezárásához:
Következtetés
Mostantól stabil módon kell kezelnie konzuli tagjait. A konzul fürt gyorsan és egyszerűen indítható és indítható. További csomópontok gyorsan konfigurálhatók a meglévő szerverek konfigurációs fájljainak (consul config és upstart script) másolásával.
Bár a konzuli környezetünket most úgy állítottuk be, hogy lehetővé tegyük szolgáltatásaink egyszerű kezelését, a kommunikációnkat még nem biztosítottuk teljes mértékben. A következő útmutatóban arra összpontosítunk, hogyan állítsuk be az SSL tanúsítvány érvényesítését a tagok RPC kommunikációjának titkosítása és érvényesítése érdekében.
- A csicsóka liszt hatása a metán és széndioxid és
- Metabolikus hőtermelés - áttekintés a ScienceDirect témákról
- A 2-metilhopanoidok előállításához szükséges metiláz azonosítása és annak következményei
- Hogyan lehet végigjárni a pályát, hogy egészséges legyen a hasi zsír
- A garnélarák jó a fogyáshoz, hogy fogyjon, anélkül, hogy feladná a jó dolgokat