Hello,
Try the attached on top of your Vagrantfile.
Vagrant includes his own ruby and some gems, I did copy this from
celluloid/cpucount, and tested on OSX.
then, on the config block you can do something like this:
config.vm.provider "virtualbox" do |v|
# Give VM 25% of system cpu cores
if @cores
v.customize ["modifyvm", :id, "--cpus", @cores/4.to_i ]
end
end
On Fri, Sep 26, 2014 at 3:12 AM, blong <[email protected]> wrote:
> I'm new to Ruby, so pardon my ignorance, but is there a way to load
> rubygems and require additional libraries? For example, let's say I wanted
> to assign %25 of the CPU cores to Vagrant. I need something that's
> platform independent, I was thinking something like this:
>
> require 'rubygems'
> require 'facter'
> Facter.loadfacts
>
> config.vm.provider "virtualbox" do |v|
> # Give VM 25% of system cpu cores
> v.customize ["modifyvm", :id, "--cpus", [((Facter.processorcount) /
> 4).to_i, 1].max ]
> end
>
> Any thoughts on how I can achieve this?
>
> Thanks,
> blong
>
> On Thursday, March 20, 2014 6:28:39 PM UTC-4, Alvaro Miranda Aguilera
> wrote:
>>
>> in one Vagrantfile I found on github,. they use this.
>>
>> if RUBY_PLATFORM.include? 'linux'
>> b.vm.network :bridged, :bridge => "eth0"
>> elseif RUBY_PLATFORM.include? 'darwin'
>> b.vm.network :bridged, :bridge => "en1: Wi-Fi (AirPort)"
>> end
>>
>>
>> I assume, you can check if there is a in/windows or something.
>>
>> Alvaro.
>>
>>
>> On Fri, Mar 21, 2014 at 9:50 AM, Luis Mayorga <[email protected]>
>> wrote:
>>
>>> This worked!!!
>>>
>>> if Gem.win_platform?
>>>
>>>
>>> Thanks
>>>
>>>
>>> On Thu, Mar 20, 2014 at 4:32 PM, Jeremy Voorhis <[email protected]>
>>> wrote:
>>>
>>>> The Vagrantfile is just a Ruby file that gets evaluated within a
>>>> special context that implements the Vagrant DSL. You can definitely execute
>>>> arbitrary Ruby code to specialize your VM.
>>>>
>>>>
>>>> On Thu, Mar 20, 2014 at 1:25 PM, Luis Mayorga <[email protected]>
>>>> wrote:
>>>>
>>>>> I need to detect which platform is running vagrant. (We have vagrant
>>>>> windows/mac users) and need to setup some initial variable values for some
>>>>> of the configuration parameters.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Vagrant" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Jeremy Voorhis
>>>>
>>>> --
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "Vagrant" group.
>>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>>> topic/vagrant-up/lhd9_WfySXo/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Vagrant" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Vagrant" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'rbconfig'
case RbConfig::CONFIG['host_os'][/^[A-Za-z]+/]
when 'darwin'
@cores = Integer(`/usr/sbin/sysctl hw.ncpu`[/\d+/])
when 'linux'
@cores = if File.exists?("/sys/devices/system/cpu/present")
File.read("/sys/devices/system/cpu/present").split('-').last.to_i+1
else
Dir["/sys/devices/system/cpu/cpu*"].select { |n| n=~/cpu\d+/ }.count
end
when 'mingw', 'mswin'
@cores = Integer(ENV["NUMBER_OF_PROCESSORS"][/\d+/])
else
@cores = nil
end
puts @cores
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"