2016-03-23 127 views
0

我爲Ruby on Rails開發(使用VirtualBox)提供了一個新的Vagrant框,並且希望將RVM + ruby​​ 2.3.0作爲Vagrant配置過程的一部分添加。如何通過Vagrant和Puppet安裝RVM

我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 

僞軍/艙單/ 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 

這只是目前安裝的MySQL。我想添加RVM +安裝一個默認的ruby(例如2.3.0)。

有了這個指南: http://blog.csanchez.org/2014/01/14/installing-rvm-and-multiple-ruby-versions-with-puppet/

使用這個木偶模塊: https://forge.puppetlabs.com/maestrodev/rvm

我沒有安裝傀儡,因爲當我嘗試運行:

puppet module install maestrodev-rvm 

我得到「-bash:puppet:command not found」。

通過Puppet文檔查看,安裝/設置Puppet客戶端/服務器似乎相當複雜。這似乎只是爲了使用RVM puppet模塊。此外,團隊中的設計師將使用這個過程,因此它需要儘可能簡單。

任何幫助將不勝感激。

回答

2

我沒有木偶安裝

是的,你做的 - 木偶安裝在你的虛擬機,否則你就無法提供MySQL和其他。

您可能需要在主機上運行命令puppet module install maestrodev-rvm,而這需要在虛擬機上運行。

有不同的方式人們如何對VM模塊設置(庫,一些下載的所有模塊/文件夾...)我要做的就是創建一個shell配置,這將安裝所有必要的模塊。 在你vagrantfile添加

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

確保此行是你的傀儡撥備前 - 在install-puppet-modules.sh會像

#!/bin/bash 

mkdir -p /etc/puppet/modules; 

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

我想做出點版本所以如果在僞造中有一個新版本的模塊它可能會中斷,至少我知道版本xxx已經過測試。

所以,現在你可以添加class { 'rvm': }等安裝RVM和紅寶石在puppet/manifests/development.pp文件