10
Vagrant Leszek Smentek

Vagrant - RuPy Tuesday

Embed Size (px)

Citation preview

Page 1: Vagrant - RuPy Tuesday

Vagrant

Leszek Smentek

Page 2: Vagrant - RuPy Tuesday

Vagrant w kilku słowach

Vagrant jest narzędziem do zarządzania i konfiguracji wirtualnych środowisk. Opiera się o znane i sprawdzone technologie. Nie jest rozwiązanie dedykowanym konkretnemu zastosowaniu czy językowi dzięki czemu może być stosowane w wielu dziedzinach.

Główne zalety:

- szybkość tworzenia nowych wyspecjalizowanych środowisk

- łatwość i prostota tworzenia nowych konfiguracji

- przenośność

- duża ilość domyślnych rozwiązań na których można oprzeć własne konfiguracje

- możliwość rozbudowy o własne mechanizmy

Page 3: Vagrant - RuPy Tuesday

Wykorzystywane technologie

- VirtualBox

- Ruby

- Chef

- Puppet

- SSH

Page 4: Vagrant - RuPy Tuesday

Struktura projektu

- Sercem środowiska jest pojedynczy plik Vagrant, który zawiera informacje niezbędne do instalacji i konfiguracji wirtualnego środowiska.

- Plik jest w formacie tekstowym i zawiera kod języka Ruby.

- Niewielki rozmiar pozwala na dołączenie do repozytorium, co daje możliwość przechowywania dedykowanego środowiska dla każdego projektu razem ze źródłami.

Page 5: Vagrant - RuPy Tuesday

Gdzie można zastosować wirtualne środowisko ?

- Teoretycznie wirtualne środowisko można wykorzystać w procesie tworzenia dowolnego typu aplikacji. Takie rozwiązanie daje pewność tego, że gotowy produkt zachowa się w sposób identyczny jak podczas produkcji .

- Praktycznie środowisko wirtualne opłaca się stosować wszędzie tam gdzie istnieje konieczność stosowania rozwiązań opartych konfiguracji serwera, który będzie hostem dla gotowej aplikacji.

Page 6: Vagrant - RuPy Tuesday

Przykłady

Prosty przykład konfiguracji:

Instalacja narzędzi:

$ gem install vagrant

$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

$ vagrant init

Inicjalizacja środowiska:

$ vagrant up

Logowanie do wirtualnej maszyny:

$ vagrant ssh

Zakończenie pracy ze środowiskiem:

$ vagrant down

Page 7: Vagrant - RuPy Tuesday

Plik VagrantVagrant::Config.run do |config|

config.vm.box = "lucid32"

# Enable and configure the chef solo provisioner

config.vm.provision :chef_solo do |chef|

# We're going to download our cookbooks from the web

# chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz"

chef.cookbooks_path = "cookbooks"

chef.add_recipe "apache2"

chef.add_recipe "postgresql"

chef.add_recipe "rails"

chef.add_recipe "passenger_apache2::mod_rails"

# Tell chef what recipe to run. In this case, the `vagrant_main` recipe

# does all the magic.

chef.add_recipe("vagrant_main")

end

end

Page 8: Vagrant - RuPy Tuesday

Przydatne linki

- VirtualBox:

http://www.virtualbox.org/

- Vagrant:

http://vagrantup.com/

- Chef:

http://www.opscode.com/chef/

- Puppet:

http://www.puppetlabs.com/puppet/introduction/

Page 9: Vagrant - RuPy Tuesday

Pytania

Page 10: Vagrant - RuPy Tuesday

Dziękuję za uwagę