Jak nastavit místní prostředí Linux s Vagrantem

Původně zveřejněno na DigitalShore.io 12. května 2016

Jako vývojáři a inženýři se často zaměřujeme na minimalizmus a modularitu. To platí i pro samotný kód, který píšeme a využíváme k vytvoření naší práce. Minimalismus a modularita však mohou být často přehlíženy, pokud jde o naše stroje pro místní vývoj. Postupem času mohou všechny různé programy, závislosti a nástroje potřebné k dokončení naší práce rychle narůstat a spirály se rozpadnout; protichůdné verze stejných nástrojů nebo programů a nekonečné aktualizace operačního systému se mohou stát skutečnými pracemi, které se obejdou, když přijde čas na prosté dokončení naší práce - v rozporu se samotnými dvěma principy, o které bychom se měli vždy usilovat.

V tomto příspěvku nabízím úvodní část do světa virtuálních strojů a to, jak mohou výrazně zlepšit váš vývojový pracovní postup a zároveň zmírnit většinu výše uvedených problémů. Použitím virtuálních strojů otevřete cesty k prozkoumávání nových technologií a technik s minimálním rizikem pro váš vývojový stroj - to vše při dodržení minimalistické a modulární myšlenkové školy.

Proč používat virtuální stroje?

To je otázka, se kterou jsem se několik měsíců potýkal. A je to opravdu skvělá otázka. Abych začal formulovat odpověď, rozhodl jsem se provést inventář všeho, co je na mém počítači Mac nainstalované:

  • Xcode (váží přibližně 10 GB po instalaci)
  • Nástroje příkazového řádku Xcode
  • Git (verze OS X; obvykle pozadu a zastaralý)
  • Ruby (verze OS X; obvykle za a zastaralá)
  • Několik ruby ​​drahokamů
  • Apache (verze OS X; pozadu, zastaralé a jinak konfigurované)
  • PHP (verze OS X; obvykle pozadu a zastaralé)
  • Node.js
  • NPM a několik globálně nainstalovaných modulů
  • Heroku Toolbelt
  • MongoDB a možná jakákoli jiná databáze, kterou budu potřebovat

Na první pohled uvidíte, jak nezvládnutelné mohou výše uvedené postupem času narůstat, zejména s každoroční kadencí OS X společnosti Apple. Nezapomeňte také, že OS X sám o sobě je zajímavou distribucí Unixu a věci nejsou vždy tak, jak se zdají při kopání pod kapotou. Programy, jazyky a nástroje se zde chovají poněkud jinak než ve srovnání s jejich tradičními protějšky v Linuxu, což vám přináší riziko neúmyslného zmatku v celém systému.

Určitě musí existovat lepší řešení, aby se toto všechno stalo mnohem lépe zvládnutelným, modulárním a bezpečnějším.

Homebrew… možná?

Homebrew však může pomoci s výše uvedeným dilematem - můžete říct. A z větší části to platí. Pokud však skutečně hledáte modulární přístup, který nebude zasahovat do místního počítače a bude dosti pískovaný, virtuální sázka bude vaše nejlepší sázka. Virtuální stroj bude navíc lépe vyhovovat produkčnímu prostředí více než hostitelský počítač.

Začínáme s VirtualBoxem

Začnu svou cestu s VirtualBoxem a pracuji na poměrně ručním procesu, který zahrnuje stažení obrazu disku Ubuntu Server 14.04 LTS a procházení kryptickými výzvami k instalaci Ubuntu.

Po zhruba 10 minutách stažených a instalačních výzev jsem spuštěn a v počítači Mac pracuji s kopií systému Ubuntu Linux.

Nyní, pokud chci vytvořit další VM, vše, co budu muset udělat, je opakovat tento proces. Každý. Singl. Čas.

Počkejte, tento proces je naprosto na hovno!

Počkejte chvilku, časový limit. Tento proces je opravdu na hovno! Jistě, je to druh modulární. Druh minimalismu. Ale pokud chci vytvořit další virtuální stroj, budu muset celý ten proces znovu sedět. A znovu. A znovu.

S výše uvedeným mám dvě rukojeti. Za prvé, není to moc SUCHÉ. A za druhé, v tomto dnešním dni a věku okamžitého uspokojení, kdo na světě chce sedět skrz kryptickou instalační obrazovku systému Linux, přes virtuální stroj, pokaždé, když chceme vytvořit nové prostředí Linuxu? Kde je moje auto-magické řešení, které pro mě nastavuje tolik virtuálních strojů Linux, kolik chci?

No, stejně jako unášený vagabond, právě tam přichází Vagrant.

Zadejte Vagrant

Vagrant je nástroj pro vytváření kompletních vývojových prostředí. Díky snadno použitelnému pracovnímu postupu a zaměření na automatizaci snižuje společnost Vagrant čas potřebný pro nastavení vývojového prostředí, zvyšuje paritu vývoje / výroby a činí „práce na mém stroji“ výmluvou minulosti.

Základní myšlenkou kolem Vagrantu je vytvoření adresáře na místním počítači, který slouží jako „domov“ pro speciální Vagrantfile (tento konkrétní soubor nemá příponu). Vagrantfile je Ruby a přijímá řadu parametrů, které vám pomohou nakonfigurovat a zajistit Vagrantboxu pro rychlé, okamžité uspokojení, na které jsme všichni v 21. století zvyklí.

Stojí za zmínku, že Vagrant jedná přímo s VirtualBoxem, ale spolupracuje také s jinými virtualizačními programy. Pro mě je více než pravděpodobné, že se držím VirtualBoxu, protože je zdarma. A zdarma je v mé knize obecně dobré.

Počínaje VirtualBoxem a Vagrantem

Poté, co jsem si přesně uvědomil, jak se může stát manuální, zdlouhavý a prostý časově náročný přístup pouze k VirtualBoxu, jsem se rozhodl strávit nějaký čas učením se podrobností o Vagrantovi a jak může výrazně pomoci při celkové tvorbě virtuálních strojů, jejich zajišťování a správě. proces.

Rozhodl jsem se, že mým prvním bodem při vytváření virtuálního počítače spravovaného Vagrantem bude vytvoření zařízení, které zrcadlí mé současné produkční prostředí pro jeden z mých blogů.

Níže je uveden obecný postup, který jsem přijal poté, co jsem se seznámil se základy a provedl několik pokusů a chyb. Postupujte podle těchto kroků, upravte všechny potřebné informace specifické pro vaše individuální potřeby a měli byste být s Vagrantem v provozu přibližně za 10 minut nebo méně!

  1. Nainstalujte VirtualBox
  2. Nainstalujte Vagrant
  3. Vytvořte místní adresář pro Vagrant
  4. Vytvořte soubor Vagrantfile v nově vytvořeném adresáři
  5. Spusťte vagrant a proveďte si virtuální stroj

Poznámka: Níže uvedené kroky jsou nastíněny, jako by se vzorový soubor Vagrant obsažený v tomto příspěvku používal jako celek - to znamená, že všechny pokyny a konstanty souborů, na které se v tomto souboru odkazuje, budou také uvedeny v pokynech. Prosím, vyměňte podle potřeby.

1. Nainstalujte VirtualBox

Chcete-li uchopit nejnovější verzi VirtualBoxu, přejděte na stránku ke stažení a vyberte verzi vhodnou pro váš operační systém. Stáhněte a nainstalujte podle pokynů jako u jakéhokoli jiného programu. A zatímco můj článek se zaměřuje hlavně na mé zkušenosti s tímto pracovním postupem v systému OS X, stejné zásady a koncepty by se měly vztahovat i na Windows. Po instalaci se zaměřme na Vagrant.

Poznámka: od psaní byl nainstalován VirtualBox 5.0.20.

2. Nainstalujte Vagrant

Nyní, když je VirtualBox nainstalován, zaměřme se na instalaci aplikace Vagrant do vašeho počítače. Znovu přejděte na stránku ke stažení a uchopte verzi vhodnou pro váš operační systém. Stejně jako výše, stahujte a instalujte podle pokynů stejně jako jakýkoli jiný program.

Poznámka: od psaní byl nainstalován software Vagrant 1.8.1.

3. Vytvořte místní adresář pro Vagrant

Tento krok se týká osobních preferencí, kde si chcete zachovat a spravovat Vagrantfile, a také vám nabízí několik kreativních možností ohledně toho, jak a kde chcete synchronizovat soubory a složky mezi hostitelským a hostujícím počítačem.

Osobně zjišťuji, že uchovávání adresářů pro každou instanci Vagrant v mém místním domovském adresáři je snadno zapamatovatelné a snadno spravovatelné.

Například jsem v domovském adresáři vytvořil adresář s názvem „new-vm“. Toto je přesně stejná hodnota pro konstantu VM_NAME nalezenou ve vzorku Vagrantfile v kroku 4. Potom jsem přidal Vagrantfile specifický pro tento VM v tomto adresáři pro zajištění.

Stručně řečeno, v Terminálu jsem provedl následující příkazy:

cd ~ / && mkdir new-vm
cd new-vm && touch Vagrantfile

První příkaz se změní na můj domovský adresář a poté vytvoří v adresáři Home adresář „new-vm“. Druhý příkaz se změní na nově vytvořený adresář a poté vytvoří v tomto novém adresáři soubor Vagrantfile.

4. Aktualizujte svůj Vagrantfile

Postupováním podle pokynů z kroku 3 byste nyní měli mít jedinečný adresář a Vagrantfile pro váš virtuální stroj v domovském adresáři na počítači Mac. Například nyní mám:

~ / new-vm / Vagrantfile

Nyní je čas zkontrolovat ukázkový soubor Vagrantfile níže a provést příslušné úpravy podle vašich konkrétních potřeb.

Ukázka Vagrantfile

Dalším krokem je přidání některých pokynů do Vagrantfile, které Vagrant provede během procesu přidělování virtuálních strojů. Abychom vám pomohli tento proces urychlit a nastavit několik typických výchozích položek, níže je ukázka Vagrantfile, která vás připraví s vývojovým prostředím Ubuntu Linux s Node.js a Git. Tento soubor funguje prostřednictvím:

  1. Nastavení několika konstant kolem operačního systému Linux, adresářů, uživatelů a vytváření sítí mezi počítači host / host
  2. Poskytování virtuálního počítače pomocí VirtualBoxu s 1 CPU, 512 MB paměti a 40 GB úložného prostoru
  3. Instalace nejnovějších Git, Node 6.x, nejnovějších npm a aktualizace Ubuntu

Vzorek:

# kódování: utf-8
# - * - režim: rubín - * -
# vi: set ft = ruby:
# Box / OS
VAGRANT_BOX = 'ubuntu / trusty64'
# Nezapomenutelné jméno pro váš
VM_NAME = 'new-vm'
# VM User - ve výchozím nastavení 'vagrant'
VM_USER = 'vagrant'
# Uživatelské jméno v počítači Mac
MAC_USER = 'John'
# Hostitelská složka pro synchronizaci
HOST_PATH = '/ Users /' + MAC_USER + '/' + VM_NAME
# Kam synchronizovat hosta - 'vagrant' je výchozí uživatelské jméno
GUEST_PATH = '/ home /' + VM_USER + '/' + VM_NAME
# # VM Port - odškrtněte tuto možnost, abyste místo DHCP používali NAT
# VM_PORT = 8080
Vagrant.configure (2) do | config |
  # Vagrant box od Hashicorp
  config.vm.box = VAGRANT_BOX
  
  # Skutečný název stroje
  config.vm.hostname = VM_NAME
  # Nastavit název VM ve Virtualboxu
  config.vm.provider "virtualbox" do | v |
    v.name = VM_NAME
    v.memory = 2048
  konec
  #DHCP - komentujte, pokud chcete místo toho použít NAT
  config.vm.network "private_network", zadejte: "dhcp"
  # # Přeposílání portů - odškrtněte, abyste místo DHCP používali NAT
  # config.vm.network "forwarded_port", host: 80, hostitel: VM_PORT
  # Složka synchronizace
  config.vm.synced_folder HOST_PATH, GUEST_PATH
  # Zakázat výchozí složku Vagrant, použít jedinečnou cestu pro každý projekt
  config.vm.synced_folder '.', '/ home /' + VM_USER + '', disabled: true
  # Nainstalujte Git, Node.js 6.x.x, Poslední npm
  config.vm.provision "shell", inline: << - SHELL
    aktualizace apt-get
    apt-get install -y git
    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    apt-get install -y nodejs
    apt-get install -y build-essential
    instalace npm -g npm
    aktualizace apt-get
    apt-get upgrade -y
    apt-get autoremove -y
  SHELL
konec

Nyní, když jste zkontrolovali tento ukázkový soubor Vagrantfile, můžete zvolit dvě cesty, kterými můžete pokračovat:

A. Vylaďte výše uvedený vzorek pro vaše potřeby

Proveďte jakékoli potřebné úpravy (například úpravy cest k souborům, uživatelské jméno, jméno VM atd.) A vložte obsah do místního souboru Vagrantfile. Až budete hotovi, pokračujte krokem 5.

B. Místo toho použijte výchozí vagrantfile

Pokud se vám nelíbí výše uvedený vzorek a chcete se rozhodnout pro výchozí Vagrantfile poskytovaný Vagrantem, můžete jednoduše odstranit soubor, který jsme vytvořili v kroku 3, a vytvořit nový soubor, který obsahuje holé minimum, a poskytnout tak virtuální stroj Vagrant:

cd ~ / new-vm
rm -r Vagrantfile
tulácký začátek

5. „vagrant up“ a poskytování virtuálního počítače

S Vagrantfile na místě, je čas poskytnout svůj virtuální stroj!

Otevřete terminál a zadejte následující příkazy:

cd ~ / new-vm
tulák nahoru

Během tohoto procesu Vagrant stáhne ubuntu / trusty64 přímo z Atlasu Hashicorp a poté poskytne virtuální stroj, jak je uvedeno ve Vagrantfile. V závislosti na připojení k internetu a rychlosti počítače by dokončení celého procesu mělo trvat přibližně 3 až 5 minut. Jakmile je virtuální stroj poskytnut, můžete se přihlásit k virtuálnímu počítači pomocí následujícího příkazu:

tulák ssh

Tento příkaz se postará o přímé připojení k vašemu VM pomocí SSH. Zpracovává uživatelské jméno a heslo - ve výchozím nastavení jsou oba tuláci / tuláci.

Výše uvedené „vagrant up“ a „vagrant ssh“ budou více než pravděpodobné dva de facto příkazy, které budete používat pro inicializaci a přístup k vašemu VM. Níže uvádíme několik užitečných příkazů, které se vám hodí:

Zapnutí a vypnutí virtuálního počítače

Někdy musíme zapnout, vypnout, pozastavit nebo zničit naše virtuální počítače spravované Vagrantem, zejména po restartování nebo testování nových funkcí atd.

Chcete-li zapnout VM, přejděte do adresáře pomocí Vagrantfile:

tulák nahoru

Chcete-li pozastavit VM, přejděte do adresáře s Vagrantfile:

vagrant pozastavit

Chcete-li VM vypnout, přejděte do adresáře pomocí Vagrantfile:

tulák se zastavil

Chcete-li zničit VM, přejděte do adresáře s Vagrantfile:

tulák zničit

Toto je jen několik okamžitých základních příkazů, které se chcete naučit při používání aplikace Vagrant. Podrobnější manuál naleznete v dokumentech od společnosti Vagrant.

Další kroky

Už jste to dokázali! Nyní, když jste schopni bez námahy vytvářet virtuální počítače pomocí aplikace Vagrant a můžete snadno SSH přímo do svého vlastního virtuálního počítače se systémem Ubuntu 14.04, obloha je limit! Pokračujte a používejte tento VM stejně jako jakýkoli jiný Linuxový virtuální počítač prostřednictvím poskytovatele, jako je Digital Ocean nebo jiných, kteří nabízejí služby VPS.

Nejlepší ze všeho je, že nyní můžete vytvořit tolik virtuálních počítačů, kolik je váš systém schopen běžet - otevíráte protipovodňové brány pro růst a průzkum pomocí nově přijatého modulárního a minimálního přístupu!

Pokračujte v kódování!

Užijte si to, co jste si přečetli?

Určitě se vám líbí a sdílí níže, nebo si dokonce koupíte kávu buy!

John Foderaro je fanatik JavaScript umístěný v New Jersey.