2016-03-23 12 views
0

Ruby on Rails geliştirme (VirtualBox kullanarak) için yeni bir Vagrant kutusu hazırlıyorum ve Vagrant hazırlama sürecinin bir parçası olarak RVM + ruby ​​2.3.0'ı eklemek istiyorum.Vagrant ve Puppet ile RVM Nasıl Yüklenir

Benim Vagrantfile:

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure(2) do |config| 
    config.vm.box = "ubuntu/trusty64" 

    config.vm.network "forwarded_port", guest: 3000, host: 3000 

    config.vm.provision :puppet do |puppet| 
    puppet.manifests_path = "puppet/manifests" 
    puppet.module_path = "puppet/modules" 
    puppet.manifest_file = "development.pp" 
    end 

end 

Ve kukla/manifestolar/development.pp:

class requirements { 
    group { "puppet": ensure => "present", } 
    exec { "apt-update": 
    command => "/usr/bin/apt-get -y update" 
    } 

    package { 
    ["mysql-client", "mysql-server", "libmysqlclient-dev"]: 
     ensure => installed, require => Exec['apt-update'] 
    } 
} 

include requirements 

Bu sadece şu anda mysql yükler. RVM + eklemek istiyorum varsayılan ruby ​​+ (örneğin 2.3.0).

puppet module install maestrodev-rvm 

I: Ben çalıştırmayı denediğinizde, çünkü https://forge.puppetlabs.com/maestrodev/rvm

Ben kukla yüklü olmayan: Bu kukla modülü kullanan http://blog.csanchez.org/2014/01/14/installing-rvm-and-multiple-ruby-versions-with-puppet/

:

Orada

bu kılavuzdur "-bash: kukla: komut bulunamadı".

Kukla belgelerini incelediğinizde, bir Kukla istemci/sunucusunu kurmak/kurmak oldukça karmaşık görünüyor. Bu sadece RVM kukla modülünü kullanmak için fazla mesai gibi görünüyor. Ayrıca, takımdaki tasarımcılar bu süreci kullanacaklar, bu yüzden mümkün olduğunca basit olması gerekiyor.

Herhangi bir yardım büyük memnuniyetle karşılanacaktır. aksi takdirde hüküm mysql ve diğer mümkün olmaz, kukla VM yüklü -

cevap

2

Ben kukla

Evet, do

yüklü yok.

Muhtemelen VM'de çalıştırılması gerektiğinde, ana makinenizden puppet module install maestrodev-rvm komutunu kullanabilirsiniz.

İnsanların sanal makinede modüle nasıl sahip olduklarının farklı yolları vardır (kütüphaneci, bazılarının tümü modül/klasördeki tüm indirmeler ...), tüm gerekli modülleri yükleyecek bir kabuk sağlama oluşturmaktır. install-puppet-modules.sh Ben sürümüne bir noktaya yapmak ister

#!/bin/bash 

mkdir -p /etc/puppet/modules; 

if [ ! -d /etc/puppet/modules/maestrodev/rvm ]; then 
    puppet module install maestrodev-rvm --version xxx 
fi 

gibi bir şey olacak - senin vagrantfile olarak

config.vm.provision "shell", path: "puppet/script/install-puppet-modules.sh" 

bu satırda, kukla karşılığı öncesi olduğundan emin olun eklemek Yani, forge içindeki modülün yeni bir sürümü varsa, kırılabilir, en azından bu xxx sürümünün test edildiğini biliyorum. Yani

şimdi size puppet/manifests/development.pp dosyada RVM ve yakut yüklemek böylece class { 'rvm': } eklemek mümkün ve konum