Devbox - wirtualne środowisko pracy

23
Devbox Wirtualne środowisko pracy.

Transcript of Devbox - wirtualne środowisko pracy

Page 1: Devbox - wirtualne środowisko pracy

DevboxWirtualne środowisko pracy.

Page 2: Devbox - wirtualne środowisko pracy

DevboxMaszyna wirtualna skonfigurowana do pracy developerskiej nad

wybranymi projektami.

Page 3: Devbox - wirtualne środowisko pracy

Co zawierawszystkie zależności wymagane dla projektówzainstalowane i skonfigurowane projekty (każdy na oddzielnymvirtualenvie)dodatkowe narzędzia wspomagające pracę (virtualenvwrapper,pluginy hg ...)

Page 4: Devbox - wirtualne środowisko pracy

Jakie narzędzia wykorzystujemyVagrantPuppetVirtualBox

Page 5: Devbox - wirtualne środowisko pracy

Po co?ułatwienie i skrócenie czasu budowania projektówbudowanie na bazowym systemie o znanym stanie

Page 6: Devbox - wirtualne środowisko pracy

Dlaczego buildout to za mało?Devbox jest w pełni skonfigurowanym systemem, na którym można

rozpocząć development zaraz po zbudowaniu.

Page 7: Devbox - wirtualne środowisko pracy

Devbox - podsumowanieŚrodowisko wirtualne przeznaczone do developmentu projektów.

Page 8: Devbox - wirtualne środowisko pracy

VagrantNarzędzie do tworzenia środowiska developerskiego. Wirtualne

środowisko jest budowane poprzez skopiowanie obrazu bazowego orazjego skonfigurowaniu.

Wrapper dla oprogramowania wirtualizującego tj. VirtualBox,VMware.

Page 9: Devbox - wirtualne środowisko pracy

VagrantfileVAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "base" config.vm.network "private_network", ip: "192.168.50.4"

config.vm.provider :virtualbox do |vb| vb.name = "my_devbox" vb.memory = 512 end

config.vm.provision "shell", path: "script.sh"end

Page 10: Devbox - wirtualne środowisko pracy

Podstawowe poleceniavagrant upvagrant sshvagrant statusvagrant reloadvagrant provision

Page 11: Devbox - wirtualne środowisko pracy

Workflow - budowanieśrodowiska

1. Instalacja VirtualBoxa i Vagranta2. Dodanie bazowego obrazu:

3. Pobranie i ewentualna edycja konfiguracji4. vagrant up - tutaj rozpoczyna się budowanie naszego

środowiska pracy

vagrant box add precise32 http://files.vagrantup.com/precise32.box

Page 12: Devbox - wirtualne środowisko pracy

Workflow - praca1. vagrant up - jeżeli wcześniej obraz był już zbudowany, tutaj

jest tylko uruchamiany (headless)2. Podmontowanie katalogu ze źródłami projektu (nfs, sshfs)3. vagrant ssh

Page 13: Devbox - wirtualne środowisko pracy

Dlaczego montujemy z guesta na hosta?[+] Szybkość działania aplikacji[-] Szybkość wyszukiwania tekstu po całym projekcie

Page 14: Devbox - wirtualne środowisko pracy

Workflow - nowy projekt1. odkomentowanie nazwy projektu z Vagrantfile

2. vagrant provision

PROJECTS_WHITELIST = [ 'ikd2', 'igooper2', # 'junior', # 'kids', # 'ifc', # 'vw_ufo', # 'cf_bo', # 'cf_fo', # 'bo_leasing', # 'vwl_fo_client', # 'fo_leasing']

Page 15: Devbox - wirtualne środowisko pracy

autoryzacja CVS - kopiowanie pliku .cvspass poprzez provisionera“file”autoryzacja HG - forwardowanie agenta sshzmiana autoryzowanego klucza ssh na devboksie

config.ssh.private_key_path = [ PRIVATE_SSH_KEY_PATH, File.expand_path('~/.vagrant.d/insecure_private_key'),]

data = File.read(PUBLIC_SSH_KEY_PATH)config.vm.provision "shell" do |s| s.inline = "cat <<'EOF' > /home/vagrant/.ssh/authorized_keys \n#{data}\nEOF" s.privileged = falseend

Page 16: Devbox - wirtualne środowisko pracy

Vagrant - podsumowanieWrapper na VritualBoxa ułatwiający pracę ze środowiskiem

wirtualnym.

Page 17: Devbox - wirtualne środowisko pracy

PuppetPuppet jest tzw. menadżerem konfiguracji serwerów. Konfiguruje

maszynę docelową na podstawie manifestów.Manifesty przedstawiają stan końcowy w jakim mają znaleźć się dane

zasoby.Instrukcje puppetowe są idempotentne - przy kolejnych

konfiguracjach maszyny, Puppet wprowadzi zmiany w systemie tylkotam, gdzie stan się różni od stanu w konfiguracji.

Page 18: Devbox - wirtualne środowisko pracy

Dlaczego Puppet?wspierany przez Vagranta (wybór pomiędzy puppet, chef, shell,ansible)dobra dokumentacja i duża społecznośćmożliwość konfiguracji master - agent (deployment) oraz apply(development)

Page 19: Devbox - wirtualne środowisko pracy

Puppet Master i Agent

Page 20: Devbox - wirtualne środowisko pracy

Puppet - co w nim robimy?instalowanie pakietów (apt-get, pip) oraz ich konfiguracja (np. HG,apache, reviewboard ...)pobieranie wymaganych plików binarnych dla projektówinstalacja i konfiguracja projektów ("ręcznie" i buildout)

Page 21: Devbox - wirtualne środowisko pracy

Puppet - podsumowanieNarzędzie konfigurujące system operacyjny.

Page 22: Devbox - wirtualne środowisko pracy

Co się dzieje po vagrant up?1. Vagrant

uruchomienie bazowej maszyny wirtualnej z odpowiedniąkonfiguracjąpodmiana publicznego klucza ssh na maszynieskopiowanie .cvspassuruchomienie puppet agenta na maszynie wirtualnej

2. Puppetinstalacja wymaganych i przydatnych paktietów oraz ichkonfiguracjapobranie zależności binarnych dla projektówbudowanie i konfiguracja projektów

Page 23: Devbox - wirtualne środowisko pracy

Devbox - zaletyoszczędność czasu przy budowaniu projektów (nowy pracownik,pad dysku, reinstalacja systemu)brak błędów po stronie użytkownika przy budowaniu projektuchciałbym używać systemu X, ale projekt na nim nie działałatwa aktualizacja o nowe komponenty (projekty, pakiety, skrypty)