ݺߣ

ݺߣShare a Scribd company logo
Devbox
Wirtualne środowisko pracy.
Devbox
Maszyna wirtualna skonfigurowana do pracy developerskiej nad
wybranymi projektami.
Co zawiera
wszystkie zależności wymagane dla projektów
zainstalowane i skonfigurowane projekty (każdy na oddzielnym
virtualenvie)
dodatkowe narzędzia wspomagające pracę (virtualenvwrapper,
pluginy hg ...)
Jakie narzędzia wykorzystujemy
Vagrant
Puppet
VirtualBox
Po co?
ułatwienie i skrócenie czasu budowania projektów
budowanie na bazowym systemie o znanym stanie
Dlaczego buildout to za mało?
Devbox jest w pełni skonfigurowanym systemem, na którym można
rozpocząć development zaraz po zbudowaniu.
Devbox - podsumowanie
Środowisko wirtualne przeznaczone do developmentu projektów.
VagrantNarzędzie do tworzenia środowiska developerskiego. Wirtualne
środowisko jest budowane poprzez skopiowanie obrazu bazowego oraz
jego skonfigurowaniu.
Wrapper dla oprogramowania wirtualizującego tj. VirtualBox,
VMware.
Vagrantfile
VAGRANTFILE_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:virtualboxdo|vb|
vb.name="my_devbox"
vb.memory=512
end
config.vm.provision"shell",path:"script.sh"
end
Podstawowe polecenia
vagrant up
vagrant ssh
vagrant status
vagrant reload
vagrant provision
Workflow - budowanie
środowiska
1. Instalacja VirtualBoxa i Vagranta
2. Dodanie bazowego obrazu:
3. Pobranie i ewentualna edycja konfiguracji
4. vagrant up- tutaj rozpoczyna się budowanie naszego
środowiska pracy
vagrantboxaddprecise32http://files.vagrantup.com/precise32.box
Workflow - praca
1. 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
Dlaczego montujemy z guesta na hosta?
[+] Szybkość działania aplikacji
[-] Szybkość wyszukiwania tekstu po całym projekcie
Workflow - nowy projekt
1. 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'
]
autoryzacja CVS - kopiowanie pliku .cvspass poprzez provisionera
“file”
autoryzacja HG - forwardowanie agenta ssh
zmiana 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_keysn#{data}nEOF"
s.privileged=false
end
Vagrant - podsumowanie
Wrapper na VritualBoxa ułatwiający pracę ze środowiskiem
wirtualnym.
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 tylko
tam, gdzie stan się różni od stanu w konfiguracji.
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)
Puppet Master i Agent
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ów
instalacja i konfiguracja projektów ("ręcznie" i buildout)
Puppet - podsumowanie
Narzędzie konfigurujące system operacyjny.
Co się dzieje po vagrant up?
1. Vagrant
uruchomienie bazowej maszyny wirtualnej z odpowiednią
konfiguracją
podmiana publicznego klucza ssh na maszynie
skopiowanie .cvspass
uruchomienie puppet agenta na maszynie wirtualnej
2. Puppet
instalacja wymaganych i przydatnych paktietów oraz ich
konfiguracja
pobranie zależności binarnych dla projektów
budowanie i konfiguracja projektów
Devbox - zalety
oszczędność czasu przy budowaniu projektów (nowy pracownik,
pad dysku, reinstalacja systemu)
brak błędów po stronie użytkownika przy budowaniu projektu
chciałbym używać systemu X, ale projekt na nim nie działa
łatwa aktualizacja o nowe komponenty (projekty, pakiety, skrypty)

More Related Content

Devbox - wirtualne środowisko pracy