web-dev-qa-db-ja.com

vagrantを使用してデスクトップ環境で仮想マシンを実行する

私の会社の開発環境は、VirtualBoxで実行される仮想マシンに基づいています。さらに一歩進んで、Vagrantの機能を使用して、マシンの説明をテキストファイルに保存し、そのテキストファイルに基づいてそのマシンを「レイズ」できるようにします。これをパペットと組み合わせることで、VMにインストールされているソフトウェアのバージョンが異なるという問題を解決できます。

ただし、Vagrantはホスト上での開発に非常に焦点を当てているようで、マシンをバックグラウンドで動作させます。マシン内に開発環境を用意する必要があるため、完全なGUIが必要になるため、「vagrant up」と入力すると、完全なデスクトップ環境(XFCE、KDE ​​...)のマシンが表示されます。

これまでのところ、Xubuntuディストリビューションから「ベース」ボックスを作成できました。しかし、「vagrant up」と入力すると、デスクトップが表示され、適切にログインできますが、Vagrantは「Waiting for machine for boot。これには数分かかることがあります...」というメッセージでフリーズします。しばらくすると、Vagrantはタイムアウトによりクラッシュします。そのため、共有フォルダーは作成されず、パッケージプロビジョニングツール-puppet-も実行されません。

Vagrantを使用して完全なGUIで仮想マシンを作成する方法

139
PRiera

私はこれを基本的に3つのステップで動作させました。 askubuntu.comからのアドバイスは私にとってはうまくいきませんでしたので、この単純化されたバージョンを試してください:

  1. 基本的なUbuntuイメージが機能するようにします。それとvagrant sshを起動できるはずです。
  2. 次に、VirtualBoxディスプレイを有効にします。デフォルトではオフになっています。 VMを停止し、Vagrantfile:のこれらの行のコメントを解除します。
     config.vm.provider:virtualbox do | vb | 
     vb.gui = true 
     end
  3. VMを起動し、新しい表示ウィンドウを確認します。ここで、xfce4をインストールして起動するだけです。 vagrant sshおよび:を使用します
     sudo apt-get install xfce4 
     Sudo startxfce4&
    

これで、xfce4セッションに到達するはずです。

更新:より良い体験のために、これらの改善をお勧めします:

  1. RootとしてGUIを起動しないでください。本当にvagrantユーザーのままにしたいのです。これを行うには、誰でもGUIを起動できるようにする必要があります。Sudo vim /etc/X11/Xwrapper.configを編集して、allowed_users=anybodyに編集します。
  2. 次に、VirtualBoxゲストツールをインストールしますbefore GUIを起動します。これにより、健全な画面解像度、統合されたマウスなどが得られます。
     $ Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 
     $ Sudo VBoxClient-all
  3. ここでのみ、$ startxfce4&を使用して、vagrantユーザーとしてGUIを起動する必要があります。

更新2:今日これを試してみましたが、VBoxClient-allスクリプトが常にインストールされているわけではありません。欠落している場合は、同等のものに置き換えることができます。

Sudo VBoxClient --clipboard 
 Sudo VBoxClient --draganddrop 
 Sudo VBoxClient --display 
 Sudo VBoxClient --checkhostversion 
 Sudo VBoxClient --seamless
140
Air

以下は、Vagrantfileの形式のAirの優れた回答です。

Vagrant.configure(2) do |config|
  # Ubuntu 15.10
  config.vm.box = "ubuntu/wily64"

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true
  end

  # Install xfce and virtualbox additions
  config.vm.provision "Shell", inline: "Sudo apt-get update"
  config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
  # Permit anyone to start the GUI
  config.vm.provision "Shell", inline: "Sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"
end

Vmを開始するには

vagrant up

ユーザー名:vagrant、パスワード:vagrantを使用して、virtualbox GUIのログインプロンプトでログインします。

Xfceを開始

startx
70
Nik

私の2セント

  • バグを回避するために、最新のvagrant(1.3.3今)+ VirtualBox(4.2.18)を実行していることを確認してください。

  • シェルスクリプトまたはインラインコマンドを使用して、デスクトップ環境または軽量ウィンドウマネージャーをインストールできます。

    たとえば、 vagrantbox.es からUbuntu 12.04正確なベースボックスの上にLXDEをインストールします

Vagrant.configure("2") do |config|
  # ... other configuration

  config.vm.provision "Shell" do |s|
    s.inline = "apt-get install lubuntu-desktop -y"
  end
end
  • 独自のVagrantベースボックスを構築する場合は、 ベースボックス パッケージ化の指示に従うか、packer(またはveewee)などのツールを検討してビルドを自動化してください。
10
Terry Wang

私はubuntuデスクトップイメージを使用していますが、仮想ボックスプロバイダーを使用してWindows上の2つのモニターでうまく動作します。

Vagrant.configure(2) do |config|
  config.vm.box = "box-cutter/ubuntu1404-desktop"

  config.ssh.forward_agent = true

  config.vm.network "forwarded_port", guest: 8080, Host: 8080
  config.vm.network "forwarded_port", guest: 3000, Host: 3000


  config.vm.synced_folder "../../git", "/home/vagrant/git"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
    vb.customize ["modifyvm", :id, "--monitorcount", "2"]
    vb.memory = "2048"
  end
end
6
Andrzej Rehmann

Packer を使用して、開発者が使用するVirtualBoxイメージを作成することも検討できます。

開発者がそれぞれVMのビルドと実行に使用するVagrantfileを共有するのではなく、VMイメージの作成に使用されるパッカーテンプレート(json)を用意します。開発者は、イメージをダウンロードまたはコピーして、VBで直接ローカルで実行します。自分でビルドする必要はありません。

公開共有されているVagrantベースボックスの多くは、Packerで作成されています。

5
Kief

これは、Ubuntu 18.04 LTS/bionic向けのわずかに適合したVagrantfileです- AirNik の回答と この投稿 は、VirtualBoxを使用するときにディスクサイズを増やす方法を説明しています(デフォルト= 10GB)。

VMには、LightDMログイン画面が含まれています。

更新:この例から GitHub repo を作成し、フロントエンド用の多くのソフトウェアパッケージを追加しました+バックエンド開発。

# Optional - enlarge disk:
#vagrant plugin install vagrant-disksize
vagrant up
vagrant reload
# After reboot, the VM screen should show the LightDM login screen.
# Log in as user "vagrant", password "vagrant".
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/bionic64"
  # Optional - enlarge disk (will also convert the format from VMDK to VDI):
  #config.disksize.size = "50GB"

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true
  end

  # https://askubuntu.com/questions/1067929/on-18-04-package-virtualbox-guest-utils-does-not-exist
  config.vm.provision "Shell", inline: "Sudo apt-add-repository multiverse && Sudo apt-get update"

  # Install xfce and virtualbox additions.
  # (Not sure if these packages could be helpful as well: virtualbox-guest-utils-hwe virtualbox-guest-x11-hwe)
  config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
  # Permit anyone to start the GUI
  config.vm.provision "Shell", inline: "Sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"

  # Optional: Use LightDM login screen (-> not required to run "startx")
  config.vm.provision "Shell", inline: "Sudo apt-get install -y lightdm lightdm-gtk-greeter"
  # Optional: Install a more feature-rich applications menu
  config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4-whiskermenu-plugin"
end
3
mh8020

https://askubuntu.com/questions/300799/does-ubuntu-12-04-lts-32-bit-have-graphic-user-interface/300805#300805

デスクトップをインストールした後、グラフィカル環境で直接起動できるGDMもインストールする必要があります。また、構成する必要があります。

おそらくこれを追加しますか?

Vagrant::Config.run do |config|
    config.vm.provision :Shell, :inline => "Sudo apt-get install gdm"
    config.vm.provision :Shell, :inline => "Sudo dpkg-reconfigure gdm"
end
2
Anthony Roberts

上記のbillmalarkyのコメントに加えて、Fedora 20では、xfceを開始する前に以下が必要でした。

  • VirtualBox-guest.rpmをインストールします(rpmfusionリポジトリから入手可能)
  • yumグループは、インストール 'graphical_environment'をマークします
  • yum groupinstall "Xfce"
  • yum install xorg-x11-drivers

コードは次のとおりです。

config.vm.provision "Shell", inline: <<-Shell        
    #Install Virtual Box guest additions from rpmfusion repos
    cd /vagrant
    yum install -y rpmfusion-free-release-20.noarch.rpm 
    yum install -y rpmfusion-nonfree-release-20.noarch.rpm
    yum update -y
    yum install -y VirtualBox-guest

    #Add XFCE desktop to Fedora server
    yum groups mark install 'graphical_environment'
    yum groupinstall -y "Xfce"
    yum install -y xorg-x11-drivers   
Shell
0
Izak Marais

@Airによるxfce4ソリューションのように。一度成功したが、今日はubuntu16.04で失敗しました。私はこのエラーを受け取りました:

xrdb can't open display 1

しかし、幸いなことに、私はこの作品を見つけました:

startx
0
scil

HTTP 404を回避するために、Nikの回答に少しパッチを適用しました。

Vagrant.configure(2) do |config|
  # Ubuntu 15.10
  config.vm.box = "bento/ubuntu-18.04"

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true
  end

  # Install xfce and virtualbox additions
  config.vm.provision "Shell", inline: "Sudo apt-get update"
  config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
  # Permit anyone to start the GUI
  config.vm.provision "Shell", inline: "Sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"
end
0