View
2.046
Download
0
Category
Preview:
Citation preview
Vagrant
Leszek Smentek
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
Wykorzystywane technologie
- VirtualBox
- Ruby
- Chef
- Puppet
- SSH
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.
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.
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
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
Przydatne linki
- VirtualBox:
http://www.virtualbox.org/
- Vagrant:
http://vagrantup.com/
- Chef:
http://www.opscode.com/chef/
- Puppet:
http://www.puppetlabs.com/puppet/introduction/
Pytania
Dziękuję za uwagę
Recommended