使用 Vagrant 命令行为 CentOS 7 配置 Gnome 桌面

Configure Gnome Desktop for CentOS 7 Using Command Line for Vagrant

我正在为很多人设置一个沙盒环境,所以我需要一切都自动化。我想要一个 GUI 桌面,以便于交互。

我正在使用 CentOS 7、VirtualBox 和 Vagrant。我已经了解了 gnome 的大部分内容,但它仍然让我通过 GUI 接受用户许可协议。我还想配置 gnome 以关闭屏幕保护程序,因为我一直无法弄清楚一旦屏幕保护程序启动后如何回到环境,除非是重新启动,这是非常激烈的。

我的问题:

  1. 如何通过 Vagrant 或 script/command 行配置以接受 GUI 的用户许可协议?

  2. 如何通过script/command行配置关闭屏保?

  3. 在哪里可以找到有关可以通过 script/command 行设置哪些其他配置的信息?

我当前的 Vagrant 文件包含以下内容:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "centos/7"

  config.vm.provider "virtualbox" do |vb|
     vb.gui = true  
     vb.memory = "2048"
     vb.cpus = 2
     vb.customize ["modifyvm", :id, "--vram", "128"]
     vb.customize ["modifyvm", :id, "--accelerate3d", "on"]
     vb.customize ["modifyvm", :id, "--graphicscontroller", "vboxvga"]
  end

  config.vm.provision "shell", inline: <<-SHELL
     sudo yum -y groupinstall "GNOME Desktop"
     sudo systemctl set-default graphical.target
     sudo systemctl start graphical.target
     SHELL
end

我认为您不能自动接受许可证,因为它真的会在您第一次启动时启动。我的猜测是你创建你的盒子,触发接受许可并重新打包盒子,一个你重新打包的盒子你可以将这个盒子重新分发给你的团队,他们将不必再次接受这个许可。

关于屏保部分,我觉得你可以做类似的事情

  config.vm.provision "shell", :privileged => true, inline: <<-SHELL
     yum -y groupinstall "GNOME Desktop"
     systemctl set-default graphical.target
     gsettings set org.gnome.desktop.screensaver lock-enabled false
     gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
     systemctl start graphical.target
     SHELL

有关选项列表,您可以参考 Gnome dev doc 或手册页 man gsettings