2. 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
4. 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.
5. 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.
6. 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
7. Plik Vagrant Vagrant::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