私の会社の開発環境は、VirtualBoxで実行される仮想マシンに基づいています。さらに一歩進んで、Vagrantの機能を使用して、マシンの説明をテキストファイルに保存し、そのテキストファイルに基づいてそのマシンを「レイズ」できるようにします。これをパペットと組み合わせることで、VMにインストールされているソフトウェアのバージョンが異なるという問題を解決できます。
ただし、Vagrantはホスト上での開発に非常に焦点を当てているようで、マシンをバックグラウンドで動作させます。マシン内に開発環境を用意する必要があるため、完全なGUIが必要になるため、「vagrant up」と入力すると、完全なデスクトップ環境(XFCE、KDE ...)のマシンが表示されます。
これまでのところ、Xubuntuディストリビューションから「ベース」ボックスを作成できました。しかし、「vagrant up」と入力すると、デスクトップが表示され、適切にログインできますが、Vagrantは「Waiting for machine for boot。これには数分かかることがあります...」というメッセージでフリーズします。しばらくすると、Vagrantはタイムアウトによりクラッシュします。そのため、共有フォルダーは作成されず、パッケージプロビジョニングツール-puppet-も実行されません。
Vagrantを使用して完全なGUIで仮想マシンを作成する方法
私はこれを基本的に3つのステップで動作させました。 askubuntu.com
からのアドバイスは私にとってはうまくいきませんでしたので、この単純化されたバージョンを試してください:
vagrant ssh
を起動できるはずです。Vagrantfile
:のこれらの行のコメントを解除します。config.vm.provider:virtualbox do | vb | vb.gui = true end
xfce4
をインストールして起動するだけです。 vagrant ssh
および:を使用しますsudo apt-get install xfce4 Sudo startxfce4&
これで、xfce4
セッションに到達するはずです。
更新:より良い体験のために、これらの改善をお勧めします:
vagrant
ユーザーのままにしたいのです。これを行うには、誰でもGUIを起動できるようにする必要があります。Sudo vim /etc/X11/Xwrapper.config
を編集して、allowed_users=anybody
に編集します。$ Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 $ Sudo VBoxClient-all
$ startxfce4&
を使用して、vagrant
ユーザーとしてGUIを起動する必要があります。更新2:今日これを試してみましたが、VBoxClient-all
スクリプトが常にインストールされているわけではありません。欠落している場合は、同等のものに置き換えることができます。
Sudo VBoxClient --clipboard Sudo VBoxClient --draganddrop Sudo VBoxClient --display Sudo VBoxClient --checkhostversion Sudo VBoxClient --seamless
以下は、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
私の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
私は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
Packer を使用して、開発者が使用するVirtualBoxイメージを作成することも検討できます。
開発者がそれぞれVMのビルドと実行に使用するVagrantfileを共有するのではなく、VMイメージの作成に使用されるパッカーテンプレート(json)を用意します。開発者は、イメージをダウンロードまたはコピーして、VBで直接ローカルで実行します。自分でビルドする必要はありません。
公開共有されているVagrantベースボックスの多くは、Packerで作成されています。
これは、Ubuntu 18.04 LTS/bionic向けのわずかに適合したVagrantfileです- Air と Nik の回答と この投稿 は、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
デスクトップをインストールした後、グラフィカル環境で直接起動できる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
上記のbillmalarkyのコメントに加えて、Fedora 20では、xfceを開始する前に以下が必要でした。
コードは次のとおりです。
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
@Airによるxfce4
ソリューションのように。一度成功したが、今日はubuntu16.04で失敗しました。私はこのエラーを受け取りました:
xrdb can't open display 1
しかし、幸いなことに、私はこの作品を見つけました:
startx
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