Konfigurálása szerverek és alkalmazások deploim szakács, cikkeket a programozási mkdev


DevOps tanácsadó, szakértő AWS, OpenStack, Puppet, Ansible, programozó Ruby and Go, CTO és alapítója mkdev.me.
Egy kicsit a Chef
Chef használt kiszolgáló konfigurálásához. Ezt használja kukbukov, amelyek leírják a kívánt állapot a szerver. A kukbukah van receptekkel, és az a meghatározás, a szerver állapotát. A Chef van egy részlege a chef-kiszolgáló és a szakács-kliens. A séf-szerver tárolja kukbuki és információt az összes szerverek (nodah), szakács-kliens külön csomópontokat. Minden csomópont egy run lista - a lista kukbukov és \ vagy előírásokhoz kell végezni ezen a csomóponton. Management chef-szerver csomópont, és van egy munkaállomás. Workstation nem más, mint egy fejlesztő számítógép.
Sok alkalmazás nyílt forráskódú közösség már írt kukbuki: konfigurálni postgresql, rubin, nginx, stb De deploya adott alkalmazás akkor is le kell írni a kukbuk, ahol a függőségek is, minden szükséges kukbuki.
Jellemzően a fejlesztő külön tároló, mely tárolja kukbuki, különböző beállítások és a kulcsokat, hogy csatlakozzon a szakács-kiszolgálót.
Így kell tennünk a következő:
- állítsa a szakács-szerver
- konfigurálja munkaállomás
- csatlakozzon a szakács-szerver valamilyen szerver
- összegyűjti szükséges Rails alkalmazások kukbuki
- írja meg kukbuk amely használni fogja a korábban letöltött alkalmazás kukbuki és deploit
Hosted Chef, digitális-óceán és a munkaállomás
Két lehetőség van a chef-kiszolgáló: telepítse a szerverre, vagy használhatja Enterprise Chef. Enterprise Chef a szakács-szerver hosting egy szép felület. És ami a legfontosabb - 5 csomópontok konfigurálható ingyen. Csak hogy mire van szükségünk.
A legolcsóbb VPS hosting, hogy találkoztam ezzel a digitális óceán, csak 5 $ havonta. Kiváló illeszkedés legalábbis ebben a kísérletben. De ne rohanjunk, hogy hozzon létre ott az első Dev fogjuk, hogy ez egy kicsit másképp.
Összesen: chef-szerver létrehozása, van, hogy akkor gyorsan csatlakozni egy új szerver egy digitális óceánon.
elhelyezés kukbuki
A Chef számos eszközöket, amelyek megkönnyítik a munkát kukbukami: könyvtáros-chef és berkshelf. Valamilyen oknál fogva úgy döntött, hogy a könyvtáros-szakács, bár, mint hogy berkshelf népszerűbb. Ide séfünk adattár set könyvtáros, inicializálás:
Ezután a legérdekesebb: meg kell találni a megfelelő kukbuki, és pont őket Cheffile'e. Sínek alkalmazások, szükségünk van egy minimális Postgresql nginx, és Ruby. És ő kukbuk felelős az alkalmazásokat, meg kell tenni egy külön mappába, például szakácskönyvek-dev. Hozzon létre egy új kukbuk lehet kés szakácskönyv létre sínek belüli parancsot. Ő lesz az ő szakácskönyvek mappában. de mi mozog a szakácskönyvek-dev.
Kés - egy olyan program irányításáért chef-szerver segítségével a munkaállomáson. Kukbuki lehetővé teszi, hogy feltölt, lista csomópont és még sok más.
Elmondjuk, miért: a szakácskönyvek mappába tárolunk kész használatra kukbuki, így folyamatosan tervezés ott kukbukov kissé helytelenül. Sőt, ha a kukbuk Ismeretlen Cheffile és futtassa újra a telepítőt kukbukov, akkor el kell távolítani a szakácskönyvek. Így sokkal több értelme megtartani kukbuki szakácskönyvek-dev és adja meg az elérési útvonalát a Cheffile. Amikor egy új verzió kukbuka kész, akkor megszabadulni a telepítés kukbukov amely másolatot egy új verzióját kukbuka szakácskönyvek.
Saját Cheffile végül így néz ki:
Kukbuk Rails deploya
Eddig a pontig az imént létrehozott környezetünket és kukbuki. Itt az ideje, hogy írjon valamit magukat. Azt már megállapítottuk kukbuk sínek-alkalmazást, akkor itt az ideje, hogy abból, amit ő. A legfontosabb ma az a mappa attribútumok, receptek és sablonokat.
A sablonokat a tárolt fájlokat a különböző sablonok, amelyeket használni fognak, amikor beállítja a csomópontokat. Például a database.yml minta, amit kell helyettesíteni az érték az adatbázis nevét, felhasználónevét és jelszavát tárol. Sablonként használt ERB, nincs meglepetés a Ruby programozó.
A receptek vannak tárolva receptek és elvégzi a munkát. Az alap recept áll erőforrás (chef erőforrások). Az erőforrás leírja a kívánt állapot a rendszer. Úgy hírlik, hogy sok kezdő felhasználó írásban Chef receptek, mint egy egyszerű kódot. Tény, hogy a recept kellene csak egy leírást, hogy hogyan kell a rendszert létrehozni. Ebből következik az elvet idempotencia forrásokat, amely szerint az újbóli elindítása a forrás nem változtathatja meg a rendszer állapotát, ha már megegyezett a várt állapotban.
Amellett, hogy a források recept, akkor csatlakozni más receptek, például más kukbukov. Minden beépített Chef erőforrás létezik részletes dokumentációt, így nyugodtan hivatkozni rá, ha nem ért valamit. Amikor először próbáltam a Chef pár évvel ezelőtt, a dokumentáció volt gondja. Most, szerencsére, ezek a problémák nincsenek jelen, bármilyen kérdésre tud válaszolni.
Tehát, először is azt kell tartalmaznia receptek rubin, nginx, postgresl, valamint egy recept az alapvető könyvtárak szükség, beleértve összeállítása rubin, nginx, postgresql. Nos, akkor érthető. Minden későbbi változtatások a fájl .cookbooks-dev / sínek-app / receptek / default.rb
Ezek a receptek végrehajtásra kerülnek, mielőtt elkezdi végezni a recept. A következő lépés az, hogy telepíteni rubin és nyalábelőállító:
Ruby_build_ruby erőforrás meghatározott kukbuke ruby_build. Mint látható, ez lehetővé teszi, hogy meghatározza a szükséges verzióját rubin és a különböző lehetőségek a telepítéshez. gem_package jön csomagban magát Chef és beállítja hem (meglepetés meglepetés). Nem biztos, hogy még mindig van olyan igény semmilyen magyarázatot, DSL Chef'a nagyon egyszerű és chelovekochitaemy.
Most állítsd nginx!
Itt először használja a forrás sablont. Az első helyen adja át a fájl nevét (elérési úttal). Ezután adja meg a sablont a mappát sablonokat használni, és azt is előírja, a fájl tulajdonos és a jogosultságok.
A sablonokat lehet továbbított változók körülbelül ugyanaz, mint amit csinálnak Rails alkalmazás vezérlők. Alatta egy példa az a változók átadására.
Közeledünk a lényege deploya alkalmazás. Most kell beállítani ssh kulcsokat a felhasználói telepíthető. Az elme, akkor kell használni ezeket az adatokat zsákok. amit nem fogok mondani, ebben a cikkben. Mint már korábban említettük, ezúttal szándékosan egyszerűsítése néhány dolgot, így a legfontosabb, hogy deploya dobtam egyenesen sablonok mappát.
Több szükségünk lesz egy kis shell script ssh kulcs alatti használatra deploya hogy nincs akadály, hogy húzza kódot saját tároló. script kódját veszünk Chef dokumentációt.
Nos, milyen klassz? Azt hiszem, ez egy fantasztikus módja annak, hogy a szerver beállítása. És a leginkább figyelemre méltó dolog: írtam a receptet egyszer és soha nem gondol rá. Ja, elfelejtettem, hogy hogyan kell nézni és ./cookbooks-dev/rails-app/attributes/default.rb ./cookbooks-dev/rails-app/templates/database.yml.erb.
Kukbuki terhelés, és hozzon létre a szerepet.
Mivel minden kukbuki készen állunk, csak akkor tudjuk feltölteni őket a szakács kiszolgáló:
A szakács úgynevezett szerepek. Minden egyszerű: az alkalmazás egy csomó szervert, vannak pontjai, amelyek csak a felelős az adatbázis, van egy teher balancer'y vannak csomópontok saját alkalmazásokat. Chef lehetővé teszi, hogy meghatározza a szerepeket, a főszerepben azonosítani receptek kell végezni nodah ezzel a szereppel és meg kell határozni azokat az attribútumokat, amelyek kifejezetten a csomópont ezt a szerepet. Itt csak egy szerep, ami elég arra következtetünk, hogy a színpad az írás kód:
Loading szerepet a szakács-kiszolgáló: kés szerepe fájlból szerepek / application.rb.
És most a legmenőbb: most egy csapat vagyunk, egy új kiszolgáló a digitális óceán, csatlakoztassa a szakács szerver, állítsa azt be minden, ami szükséges, hogy hozzanak létre és zadeploim alkalmazás. Ez olyan, mint Heroku, csak meredekebb, mert mi minden írott és tudjuk, hogyan működik ;-)
A regisztrációval a digitális óceánon. menj a Vezérlőpult, majd az API, új kulcsot generál API-t. Továbbá, hogy nem kell kéz a Vezérlőpult létrehozni kiszolgálók és amely automatizálja a folyamatot összekötő új csomópont a szakács-szerver, akkor használja a plug-késes digital_ocean:
Vannak hasonló plugin AWS, Rackspace és más cloud szolgáltatások, így általában nincs szükség, hogy betöltse csomópont is (ami mellesleg nem nehéz, de ez kényelmetlen).
Korábban létrehozott egy API kulcsot, a .chef / knife.rb:
Rendben, menjünk. Megjegyzés: a boostrap lehetőség, neki köszönhetően az újonnan létrehozott szerver lesz azonnal dolgozni a szakács-kiszolgálót.
Mi folyik itt:
- Segítségével egy API kulcsot a digitális óceán, akkor egy új kiszolgáló
- Megyünk vissza ssh, és állítsa be a szervert, hogy működjön együtt a szakács szerver
- Visszük az egészet a recept szerepel a kérelem
Ahhoz, hogy indítsa újra a receptet akkor használja a következő parancsot:
Ez ugyanaz, hogy menjen a szerver SSH-n keresztül, és futás chef-kliens.
Arra a következtetésre jut, használja Chef deploya sínek alkalmazások kissé bonyolultabb, mint Kapisztrán, de egy kis erőfeszítés kapunk egy teljesen automatizált folyamat szerver beállításokat nulláról egy működő alkalmazás. Írásbeli kukbuki lehet használni bármilyen kérelmek száma. Eltölteni egy kis időt beérünk a fejlesztői eszközök kemény most már szuper-fegyver. És ez jó.
Többet a témáról
Végül úgy döntöttem, hogy képezzük magunkat?
Ezután indítsa el az ingyenes útmutató a világ a webes fejlesztés. Belül egy csomó tippet és anyagok az önálló tanuláshoz.
hogy a könyv
