流浪汉-如何检测Windows主机RAM和CPU

Men*_*tor 4 virtualbox vagrant vagrantfile vagrant-windows

我希望我的vagrantfile根据主机规格自动设置CPU和RAM。

我发现以下代码段:

 config.vm.provider "virtualbox" do |v|
      host = RbConfig::CONFIG['host_os']
      # Give VM 1/4 system memory & access to all cpu cores on the host
      if host =~ /darwin/
        cpus = `sysctl -n hw.ncpu`.to_i
        # sysctl returns Bytes and we need to convert to MB
        mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
      elsif host =~ /linux/
        cpus = `nproc`.to_i
        # meminfo shows KB and we need to convert to MB
        mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
      else # sorry Windows folks, I can't help you
        cpus = 2
        mem = 1024
      end

      v.customize ["modifyvm", :id, "--memory", mem]
      v.customize ["modifyvm", :id, "--cpus", cpus]
end
Run Code Online (Sandbox Code Playgroud)

但是,它不使用Windows(而是将默认值设置为2和1024)。

有人知道如何执行此操作吗?

Men*_*tor 5

我设法弄清楚了它,并将其集成到Git仓库中

代码:

cpus = `wmic cpu get NumberOfCores`.split("\n")[2].to_i
mem = `wmic OS get TotalVisibleMemorySize`.split("\n")[2].to_i / 1024 /4
Run Code Online (Sandbox Code Playgroud)