2016-04-20 1 views
1

У меня есть виртуальная машина с бродягой, работающей на локальном компьютере, но я должен разместить ее на сервере компании, которая предоставила мне доступ к виртуальной машине. Я могу получить доступ к этой виртуальной машине благодаря SSH, но как перевести мою локальную виртуальную виртуальную машину?Как экспортировать мою бродячую локальную виртуальную машину в виртуальную машину, которая находится на моем сервере компании?

Я работаю над окнами и ВМ находятся на Ubuntu

Благодаря

Vagrant файл:

# -*- mode: ruby -*- 
    # vi: set ft=ruby : 
    require "./source.rb" 

    ROOT_PATH = File.dirname(__FILE__) 

VAGRANTFILE_API_VERSION = "2" 

def configure_extra(config) 
end 

def configure(config) 
    config.vm.box = "trusty64" 
    config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box" 

    # Disable automatic box update checking. If you disable this, then 
    # boxes will only be checked for updates when the user runs 
    # `vagrant box outdated`. This is not recommended. 
    # config.vm.box_check_update = false 

    # Create a forwarded port mapping which allows access to a specific port 
    # within the machine from a port on the host machine. In the example below, 
    # accessing "localhost:8080" will access port 80 on the guest machine. 
    config.vm.network :forwarded_port, host: 8000, guest: 8000 
    config.vm.network :forwarded_port, host: 9001, guest: 9001 

    # Create a private network, which allows host-only access to the machine 
    # using a specific IP. 
    # config.vm.network "private_network", ip: "192.168.33.10" 

    # Create a public network, which generally matched to bridged network. 
    # Bridged networks make the machine appear as another physical device on 
    # your network. 
    # config.vm.network "public_network" 

    # If true, then any SSH connections made will enable agent forwarding. 
    # Default value: false 
    config.ssh.forward_agent = true 

    # Share an additional folder to the guest VM. The first argument is 
    # the path on the host to the actual folder. The second argument is 
    # the path on the guest to mount the folder. And the optional third 
    # argument is a set of non-required options. 
    config.vm.synced_folder "./data", "/home/vagrant/data" 

    # Provider-specific configuration so you can fine-tune various 
    # backing providers for Vagrant. These expose provider-specific options. 
    config.vm.provider "virtualbox" do |vb| 
    # Boot with headless mode 
    vb.gui = false 

    host = RbConfig::CONFIG['host_os'] 

    # Giving a quarter of system memory to VM and access to all available cpu cores 
    if host =~ /darwin/ 
     cpus = `sysctl -n hw.ncpu`.to_i 
     # sysctl returns Bytes, converting to MB... 
     mem = `sysctl -n hw.memsize`.to_i/1024/1024/4 
    elsif host =~ /linux/ 
     cpus = `nproc`.to_i 
     # meminfo returns KB, converting to MB... 
     mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i/1024/4 
    else 
     # hardcoding values for windows... 
     cpus = 2 
     mem = 1024 
    end 

    vb.customize ["modifyvm", :id, "--memory", mem] 
    vb.customize ["modifyvm", :id, "--cpus", cpus] 
    end 

    # Provisioning 
    config.vm.provision "shell" do |shell| 
    vagrant_shell_scripts_configure(
     shell, 
     File.join(ROOT_PATH, "scripts"), 
     "provision.sh", 
     {} 
    ) 
    end 
end 

# Look for a Vagrantfile.local to load 
local_vagrantfile = "#{__FILE__}.local" 
if File.exists?(local_vagrantfile) 
    eval File.read(local_vagrantfile) 
end 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    configure config 
    configure_extra config 
end 

ответ

0

сама Vagrant подготовить виртуальную машину локально (сеть, КН и т.д., и поэтому on), но это уже настроено на виртуальной машине, предоставленной вашей компанией. Обычно я выполняю скрипты (например, sh) непосредственно во внешней (или реальной) виртуальной машине. Вы также можете установить некоторый инструмент обеспечения (кукольный например) в виртуальной машине и запустить скрипты, включенные в ваш Vagrantfile. Если вы можете опубликовать Vagrantfile здесь, это очень поможет.

+0

спасибо, Так что я должен импортировать свой vagranFile на настоящую виртуальную машину? – glemoulant

+0

Я не уверен, что понимаю, мой проект находится в таежно-бродяжном файле моей локальной виртуальной машины. Как вы думаете, это будет работать, чтобы импортировать этот файл + бродячий файл на виртуальную виртуальную машину? – glemoulant

+0

Нет, Vagrantfile используется для создания локальной виртуальной машины в VirtualBox. Как я уже говорил, вам нужно выполнить непосредственно команды оболочки во внешней виртуальной виртуальной машине. Это ключевая часть в файле Vagranfile -> File.join (ROOT_PATH, «скрипты»), «provision.sh», который, я полагаю, включает в себя шаги по установке тайги. Скопируйте файл scripts/provision.sh на новую виртуальную машину и выполните ее (возможно, она нуждается в предварительной настройке) –