🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

Ninghao Playbook:自动化配置本地的 Drupal 开发环境

Ninghao Playbook(宁皓剧本),是用 Ansible 写的一个自动化配置 Drupal 本地开发环境的剧本,它需要结合 Vagrant 使用。它可以自动配置虚拟机,安装好 Drupal 所需要的运行环境(nginx,php-fpm,mariadb ... ),还有 Drupal 本身,以及一些常用的模块(views,token,features,module_filter ... )。

playbook

操作摘要

1. 创建项目
   cd ~/desktop
   git clone https://github.com/ninghao/playbook.git ninghao_drupal

2. 编辑配置文件
   cd ninghao_drupal/playbooks
   cp -R config_default config

3. 启动虚拟机
   vagrant up

4. 连接到 master 机器

   Mac 用户可以:
   vagrant ssh master

   Windows 用户需要先查看连接到 master 的信息:
   vagrant ssh-config

   然后把相关信息输入到 Putty 里面,默认连接使用的用户是 vagrant,密码也是 vagrant 。

5. 生成 ssh 公钥与密钥
 
   在 Master 机器上:
   ssh-keygen
   ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.130
   ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.131
   ansible-playbook -l local /vagrant/playbooks/local.yml
   ansible-playbook -l dev /vagrant/playbooks/dev.yml

6. 编辑本机的 hosts 文件

   在你的电脑上:
   Mac:打开 /etc/hosts ,Windows:打开 C:\Windows\System32\Drivers\etc ,添加下面的内容:
   # Local
   192.168.33.130 dp.ninghao.local
   192.168.33.130 phpmyadmin.ninghao.local

   # Dev
   192.168.33.131 dp.ninghao.dev
   192.168.33.131 phpmyadmin.ninghao.dev

7. 打开浏览器测试

 Ninghao Playbook 都做了什么

主要就两件事:配置 Drupal 运行环境,还有安装 Drupal。目前只支持 Drupal 7 。Ninghao Playbook 用的 box(ninghao/playbook-64) 是基于 CentOS 7 做的,你也可以使用其它的 CentOS 的 box(比如 chef/centos-7.0) ,Vagrant 会按照 Ninghao Playbook 自动去配置 box 。

启动以后,你会得到三台虚拟机, Master(控制), Local(本地),还有 Dev(开发)。Master 用来控制 Local 还有 Dev,主要是在它上面执行 Ninghao Playbook 来自动配置 Local 与 Dev 。启动以后,在 Master 上面已经安装好了 Ansible 。

运行 Drupal 我定义两台虚拟机,Local 与 Dev。这样做是为了模拟 Drupal 开发用到的本地环境与开发环境。比如怎么样把在本地所做的修改,同步到开发环境上,怎么样把开发环境上的数据库同步到本地。

环境

环境可以理解成是网站运行的不同的地方,首先你需要一个 local(本地)环境,你的开发都是在本地进行的,团队的其它成员都有自己的本地开发环境。开发到一定程度以后,可以把代码推送到 Dev(开发)或者 Staging (工作)环境上去运行,你的团队成员,也可以把它们的工作推送到这个开发环境上,一般这个开发环境是在远程。然后你需要再把开发的东西推送到 Production (生产)环境上,也就是网站正式运行的环境。

为了简单点,Ninghao Playbook 在本地同时搭建了两个环境,一个是 Local ,一个是 Dev。你可以分别控制它们。

Box

Box 是 Vagrant 管理的虚拟机镜像,Ninghao Playbook 里面用到了 ninghao/playbook-64 这个 Box ,是基于 CentOS 7 做的一个 Box,默认这个 Box 里面已经安装好了运行 Drupal 需要的一些东西,nginx,php-fpm,mariadb,drush 等等。这些东西都是由 Ninghao Playbook 控制的,也就是你可以自己去修改配置文件,去改变 Box 里的东西,比如去安装新的 php 扩展,新的服务,去改变 Drupal 的设置等等。

你可以在百度云盘上下载到 ninghao/playbook-64 这个 Box:http://pan.baidu.com/s/1qWmc18S

默认

Drupal:config/*/drupal.yml

  • 管理员:admin
  • 管理员密码:admin
  • 数据库名:drupal
  • 数据库用户:drupal
  • 数据库密码:drupal

MariaDB:config/*/mariadb.yml

root 用户的默认密码:root

准备

  • 一台 64 位架构的电脑。不管是 mac 还是 pc ,只要是 64 位架构就行。内存可以大一些,硬盘最好是固态的 。建议您至少有一台这样的电脑,没有的话,可以跟老婆或者老妈商量商量,用来学习是个不错的理由 :)
  • 在本地安装 Vagrant。我们要用 Vagrant 去管理虚拟机,因为 Drupal 要运行在这些 Linux 系统的虚拟机上。
  • 在本地安装 Git 。Git 用来做版本控制,你可以用它来跟踪宁皓剧本的变化。

用法

1. 克隆一份 Ninghao Playbook

把 Ninghao Playbook 仓库克隆到本地一份。先进入到你想存储 Drupal 项目的地方,我想把要开发的项目放到桌面上。

cd ~/desktop
git clone https://github.com/ninghao/playbook.git ninghao_drupal

上面的命令,会在我的用户主目录下面的 desktop(桌面) 目录里,克隆了一份 Ninghao Playbook,放到了 ninghao_drupal 这个目录的下面。

2. 创建配置文件

用文本编辑器打开 ninghao_drupal 。然后复制一下 config_default 这个目录,命名为 config ,再根据自己的需求去编辑 config 目录下面的一些配置文件,比如 Drupal 要使用的数据库的名字,管理员的用户名,密码之类的。注意 config 目录下面应该有两个目录,一个是 dev,一个是 local ,分别表示在不同的环境下的不同的配置。

3. 启动

进入到你的项目所在的目录,然后执行:

vagrant up

上面的命令,会自动到 Atlas 去下载 ninghao/playbook-64 这个 box ,放到自己的电脑上,为当前项目导入并使用这个 box 。启动以后,你会得到三台主机 master,local 还有 dev,你可以分别 ssh 连接到它们。

4. 配置

连接到 master

启动以后,先登录到 master 这台主机上,Mac 用户可以这样:

vagrant ssh master

Windows 用户要使用 Putty 工具 ssh 连接到虚拟机,你可以先查看一下 ssh 连接的信息:

vagrant ssh-config

会返回:

Host master
  HostName 127.0.0.1
  User vagrant
  Port 2222

上面是你用 Putty 连接到 master 上的 ssh 信息,我这里,HostName 主机名是 127.0.0.1 ,User 是 vagrant,注意 Port 端口号是 2222,你要用的端口号很可能跟这个不一样。

生成 ssh 密钥与公钥

连接到 master 上以后,先去生成 ssh 的密钥与公钥,然后你要把生成的公钥放到 local 跟 dev 这两台机器上,这样你在 master 上就可以不需要密码,直接 ssh 连接到 local 与 dev 了,下面是具体的方法:

在 master 主机上,执行:

ssh-keygen

一路回车,上面的命令会生成密钥与公钥,这些文件默认的位置是在:~/.ssh ,文件名是:id_rsa 还有 id_rsa.pub。你要把 id_rsa.pub 这个文件里的内容放到 local 与 dev 上去,可以这样做:

ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.130

会提示你输入密码,默认是 vagrant。上面的命令,会把 id_rsa.pub 里的内容,复制到 192.168.33.130 上的 vagrant 这个用户的 .ssh 目录下面的,authorized_keys 这个文件里。现在,你就可以直接在 master 上,ssh 连接到 192.168.33.130(local)上了,不需要输入密码。

用同样的方法,再去处理一下 dev 这个机器:

ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.131

执行 Ninghao Playbook

现在,你就可以在 master 机器上,执行 Ninghao Playbook,去配置 local 还有 dev 这两台机器了。配置 local,可以这样:

ansible-playbook -l local /vagrant/playbooks/local.yml

配置 dev,执行:

ansible-playbook -l dev /vagrant/playbooks/dev.yml

完成以后,会在 local 与 dev 这两台机器上都安装好 Drupal 所需要的环境,还有 Drupal 本身。

5. 配置主机名

默认 local 环境使用的主机名是 dp.ninghao.local,IP 地址是 192.168.33.130,dev 环境使用的主机名是 dp.ninghao.dev ,IP 地址是 192.168.33.131。你需要手工配置一下自己电脑上的 hosts 文件,这是一个文本文件,你可以用文件编辑器打开并编辑它,然后添加下面内容:

# Local
192.168.33.130 dp.ninghao.local
192.168.33.130 phpmyadmin.ninghao.local

# Dev
192.168.33.131 dp.ninghao.dev
192.168.33.131 phpmyadmin.ninghao.dev

Windows:C:\Windows\System32\Drivers\etc ,Mac:/etc/hosts

6. 测试

一切正常的话,你现在应该可以通过 dp.ninghao.local 打开 Local 环境的 Drupal ,用 dp.ninghao.dev 可以访问 Dev 环境的 Drupal 。

7. 连接

Mac 用户可以使用 vagrant ssh 命令可以连接到主机,Windows 用户应该要用到 Putty 这个小工具。Mac 用户可以这样连接到 local 主机:

vagrant ssh local

要连接到 dev 主机,可以这样:

vagrant ssh dev

Windows 用户使用 Putty 的时候,你要知道 ssh 的 IP 地址(127.0.0.1),端口号(每台主机的 ssh 端口号是不同的),还有用户(默认是 vagrant)跟密码(默认也是 vagrant),可以这样查看这些信息:

vagrant ssh-config

根据返回的信息,去配置使用 Putty ,连接到不同的主机( master,local 或者 dev )。

目录结构

启动并且都配置好以后,你的项目的目录结构看起来会像下面这样:

.
├── .gitignore
├── Vagrantfile
├── app
│   └── local
│   └── dev
└── playbooks
    ├── config
    │   ├── dev
    │   └── local
    ├── config_default
    │   ├── dev
    │   └── local
    ├── files
    │   └── repo
    │   └── shell
    ├── roles
    │   ├── drupal
    │   │   └── tasks
    │   ├── drupal_contrib
    │   │   └── tasks
    │   ├── init
    │   │   └── tasks
    │   ├── mariadb
    │   │   └── tasks
    │   ├── nginx
    │   │   └── tasks
    │   ├── php-fpm
    │   │   └── tasks
    │   ├── phpmyadmin
    │   │   └── tasks
    │   └── tool
    │       └── tasks
    └── templates
        ├── drupal
        └── nginx
  • .gitignore:这个文件的作用是告诉 Git 要忽略跟踪的文件都有哪些。
  • Vagrantfile:Vagrant 要用到的配置文件。
  • app:这里面是在不同环境下安装好的 Drupal ,还有一些其它的应用,比如 phpMyAdmin。local 里面是本地环境下的应用,dev 目录里面是开发环境下的应用。
  • playbooks:这里是写好的剧本。就是配置服务器用的代码。
    • config:配置文件,就是一些变量,你可以修改这些配置文件里的对应的变量的值。
    • config_default:默认的配置文件。
    • files:要复制到服务器上的一些文件。复制到哪里,是在 playbook 里面指定的。
    • roles:把配置按照功能,分成不同的 role ,每个 role 都有自己的功能。
      • drupal:配置与安装 Drupal 用的。
      • drupal_contrib:配置安装并启用一些 Drupal 常用的模块。
      • init:一些初始化的配置。
      • mariadb:配置数据库。
      • nginx:配置 Web 服务器。
      • php-fpm:配置 php 。
      • phpmyadmin:配置安装 phpMyAdmin。
      • tool:配置安装一些常用的工具。
    • templates:这里也是一些要复制到服务器上的文件,只不过,这些文件里面,可以设置变量。这些变量的值,是在 config 目录下面设置的。

问题

第一次 vagrant up 的时候,下载 box 太慢了

你可以先把 box 文件下载到本地,然后在本地手工去添加这个 box ,再去执行 vagrant up 的时候,Vagrant 会直接使用你添加到本地的 box 。百度云盘:http://pan.baidu.com/s/1qWmc18S

下载 ninghao_playbook_64.box 这个 box ,然后手工添加它,比如下载之后这个 box 文件在 downloads 目录下面,这个 box 文件的名字是 ninghao_playbook_64.box ,手工添加它可以这样:

vagrant box add ninghao/playbook-64 ~/downloads/ninghao_playbook_64.box

完成以后,用 vagrant box list  查看一下可用的 box,你会看到刚才添加的 ninghao/playbook-64 ,这样再用 vagrant up 启动的时候,就不需要去下载这个 box 了,会直接在本地导入它。

Drupal

评论

出套Ansible教程吧:)

嘿嘿,先看看。用到的时候再说。

请问一下,手工添加box时,到底把box添加到playbook-64还是有很多文件的playbooks文件夹里面啊

你手工添加的 box,会保存在一个特定的地方,当你用这个 box 创建项目的时候,会从这个特定的地方把这个 box 复制一份,再放到一个特定的地方。也就是你手工添加的这个 box,是可以重复使用的。添加完以后,你就可以把下载的 .box 文件删除掉了。

A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,
get an ID of a target machine from `vagrant global-status` to run
this command on. A final option is to change to a directory with a
Vagrantfile and to try again.
在ninghao_drupal目录下运行vagrant up时总是出现这个问题,运行vagrant box list也显示的有list,我应该vagrant init一下吗

不需要 init ,直接 vagrant up 就行。当你使用 git clone http://github.com/ninghao/playbook ninghao_drupal 的时候,在 ninghao_drupal 这个目录的下面,已经包含了我事先定义好的 Vagrantfile 。

我知道我的问题了,我在执行vagrant box add ninghao/playbook-64 ~/downloads/ninghao_playbook_64.box的时候把box添加到了我指定的另一个路径里面。而皓哥写的配置文件则是在ninghao/playbook-64里面寻找

厉害,以后遇到问题,到社区(http://talk.ninghao.net)来一起讨论吧 :)

我的mac是470不清楚要哪个型号的固态硬盘。但我们内存只有8G!

8G 足够用。

在windows下,Ansible能安装吗?

不能。不过这个 Playbook 不要求你在 Windows 上安装 Ansible ,我用了另一种方法,就是创建了一台 master 虚拟机,在这台虚拟机上安装好了 ansible,你可以在 master 上去用 Ninghao Playbook 配置另外两台机器,local 与 dev 。

我按照你给的操作,没有成功,出现下面信息:(请问原因)
F:\GitHub\projects\ninghao_drupal>vagrant up
Bringing machine 'master' up with 'virtualbox' provider...
Bringing machine 'local' up with 'virtualbox' provider...
Bringing machine 'dev' up with 'virtualbox' provider...
==> master: Importing base box 'ninghao/playbook-64'...
==> master: Matching MAC address for NAT networking...
==> master: Checking if box 'ninghao/playbook-64' is up to date...

我看到出错的地方,是在启动 master 的时候,执行 playbooks/files/shell/master.sh 出现了错误,我看原因好像是这个文件里面有中文字符,你可以自己手工编辑一下这个文件,去掉里面的中文注释。然后,你再重新启动一下 master ,加上 --provisition ,像这样: vagrant up master --provision 。

首先谢谢你的用心帮助指导!!
去掉中文注释后vagrant up --provision,自动先后安装启动了master、local、dev,vagrant up命令顺利完成结束。
浏览http://192.168.33.130http://192.168.33.131都打开同样的网页Welcome to nginx on Fedora!,而不是drupal的网站,请问是这样吗?如何得到drupal网站?如何用master配置local、dev?期盼指导!谢谢!!

嘿嘿,别客气。你可以在这篇文章里的 - 操作摘要 里面的第 4 个步骤开始做。

我在本博客看到了在master中配置local、dev的方法,不过在执行ansible-playbook -l local /vagrant/playbooks/local.yml命令时出现了ERROR: file could not read: /vagrant/playbooks/config/local/drupal.yml错误信息,求助中...... F:\GitHub\projects\ninghao_drupal>vagrant ssh master Last login: Fri Mar 6 08:44:32 2015 from 10.0.2.2 [vagrant@master ~]$ ansible-playbook -l local /vagrant/playbooks/local.yml ERROR: file could not read: /vagrant/playbooks/config/local/drupal.yml

但是,cat /vagrant/playbooks/local.yml 命令能正常读取显示,求助中......
[vagrant@master ~]$ cat /vagrant/playbooks/local.yml
---

- name: NINGHAO PLAYBOOK | by ninghao.net
hosts: all
sudo: true

# 自定义变量

vars:
Repo:
epel: epel-release-7-5.noarch.rpm
ius: ius-release-1.0-13.ius.centos7.noarch.rpm

原来是漏做了将config_default文件夹复制一份命名为config,补做之后,再继续就OK了。
现在终于浏览http://dp.ninghao.locahttp://phpmyadmin.ninghao.localhttp://dp.ninghao.devhttp://phpmyadmin.ninghao.dev了,看到了drupal网站和数据库管理网站,几经周折终于完成了本博客的内容。要不是王皓老师的回复解决学习中的问题,我可能放弃学习了,谢谢王老师!

嘿嘿。别客气 。你也可以分别去执行任务,每个任务角色都打上了标签(tag),比如你想执行一下 drupal 这个任务角色,可以这样:ansible-playbook -l local /vagrant/playbooks/local.yml --tags drupal

我在本博客看到了在master中配置local、dev的方法,不过在执行ansible-playbook -l local /vagrant/playbooks/local.yml命令时出现了ERROR: file could not read: /vagrant/playbooks/config/local/drupal.yml错误信息,求助中......

F:\GitHub\projects\ninghao_drupal>vagrant ssh master
Last login: Fri Mar 6 08:44:32 2015 from 10.0.2.2
[vagrant@master ~]$ ansible-playbook -l local /vagrant/playbooks/local.yml
ERROR: file could not read: /vagrant/playbooks/config/local/drupal.yml

您确定有这个文件吗:/vagrant/playbooks/config/local/drupal.yml ,你需要把 playbooks 目录下的 config_default 这个目录复制一份,并且命名为 config 。

正是这个原因,王老师判断得真准确!
原来是漏做了将config_default文件夹复制一份命名为config,补做之后,再继续就OK了。 现在终于浏览http://dp.ninghao.locahttp://phpmyadmin.ninghao.localhttp://dp.ninghao.devhttp://phpmyadmin.ninghao.dev了,看到了drupal网站和数据库管理网站,几经周折终于完成了本博客的内容。要不是王皓老师的回复解决学习中的问题,我可能放弃学习了,谢谢王老师!

太给力了

ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.130

到这一步动不了了;

ping了一下IP 不通是怎么回事??

ping 不通 IP 是不正常的,您先确定虚拟机的私有 IP 地址已经配置好了。配置 IP 地址是在 Vagrantfile 里面。找到 Private Network 相关的选项。

vagrant up 之前是否需要vagrant init?这个重要么?

vagrantfile 里面的IP配置是有的;但是似乎没有生效

local.vm.network "private_network", ip: "192.168.33.130" 这是没有问题的撒 而且git clone下来 vagrantfile 应该不会有问题吧

问题解决了,不知道为什么虚拟机里面多出好几张显卡,设置一下VirtualBox的网络配置就可以了;换一下显卡就OK了

哦,学习了。我也是第一次听说显卡也会有影响,非常感谢 :)

打错字了,是网卡;不过还是有新的问题;
三个虚拟机可以互通,同时也能访问互联网了;但是主机却不能ping通三个虚拟机!很奇怪!现在master,local,dev都有两个网络配置文件分别是:enp0s3、enp0s8;为什么会生成两个?
同时还出现的一个问题是,cp -R config_defult config以后;ansible-playbook -l local /vagrant/playbooks/local.yml 依然显示找不到文件;有点奇怪;重试了很多遍,都没办法额

这篇博客可能会有点过时,我得找时间再复写一下。您先这样做,可以先了解一下 Vagrant 本身,一上来就弄三台虚拟机可能会有点晕,先创建一个空白的项目,初始化一台虚拟机,了解它的共享目录,网络的一些配置,网络可以是公有网络,就是在你的小型局域网里的设备都可以相互访问到你的虚拟机。网络也可以是私有网络,也就是只有你的主机与虚拟机之间可以相互访问。

虚拟机的操作没有那样复杂,初始化,配置,启动,就这么简单。不需要太多的操作。不过要注意虚拟机使用的 box,不同的 box 都有不同的特性,比如官方现在提供的 CentOS 7 这个 box ,它就不包含 Virtualbox Guest ,所以你是不能配置共享目录的,共享目录里的东西只有在你启动虚拟机的时候才会同步一次。Virtualbox 的共享目录的性能特别差,我们需要找一些其它的方法,比如使用 NFS 类似的共享目录。或者就直接在虚拟机的内部去创建项目,然后用某种远程编辑的方法去编辑项目。要长期保存项目,可以为项目创建一个远程仓库。

终于全部搞定了。关于ansible命令不起作用,是因为我一开始没有去修改vagrantfile里面同步目录的路径;而我又没有将playbook git到桌面;所以不能用;再说网络问题;创建私有网络以后,自己电脑上会多出一个网卡;我电脑上那个hostonly网卡,原先设置的IP是192.168.142.1;是因为我之前学习vagrant的时候创建的IP;使用playbook创建以后;虽然又重新生成了一个网卡;但是我电脑的hostonly读取的只有之前的那个IP;所以网络不通;现在搞明白了;谢谢王老师的指导;

master: /vagrant => C:/Users/Administrator/Desktop/ninghao_drupal ;已经显示了这样的,说明虚拟机上的vagrant目录已经和本地同步了啊!但是虚拟机上的vagrant目录依然是空的!vagrant up,vagrant reload都无效;既然vagrantfile默认未指定同步文件夹;那与虚拟机上同步的目录应该是“ninghao_drupal”;我把项目放在d盘;初次安装以后,它也是这样提示的;我在桌面创建项目,它也是这样显示的;我看这个文件有人成功过了;但是我最后还得手动指定所有绝对路径了;在vagrantfile里面添加了master.vm.synced_folder "C:/Users/Administrator/desktop/ninghao_drupal", "/vagrant" ;结果还是让我很失望

主机上的vagrant文件夹是空的?

我觉得我快搞定了,但总是这样那样的;哎~~

仔细读了一遍相关信息,发现有提示box与虚拟机环境不匹配???
VirtualBox! In most cases this is fine, but in rare cases it can
prevent things such as shared folders from working properly. If you see
shared folder errors, please make sure the guest additions within the
virtual machine match the version of VirtualBox you have installed on
your host and reload your VM.

谢谢王老师的提醒!我的看法是,我目前只想一心一意学习drupal;学习跟drupal相关的命令行工具;而服务器、虚拟机、等等只不过是帮我配置一个基础环境而已;我是一个初学者,我希望我学习drupal的热情和精力都断送在这搭建基础环境的困局中;所以我再学习vagrant或ansible相关的东西有点囫囵吞枣;而ninghaoplaybook就可以直接给我一个平稳的基础环境;所以我问题才多,谢谢王老师的耐心;

[vagrant@master ~]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe20:5d4b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:20:5d:4b txqueuelen 1000 (Ethernet)
RX packets 951 bytes 93658 (91.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 744 bytes 111198 (108.5 KiB)

[vagrant@master ~]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe20:5d4b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:20:5d:4b txqueuelen 1000 (Ethernet)
RX packets 951 bytes 93658 (91.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 744 bytes 111198 (108.5 KiB)

建议以后的的教程可以把制作教程时候的各软件的版本号都能放在那里!感觉这样会有点益处!

如果你是Windows用户,安装virtualBox不是使用命令行工具;那么你在执行此篇文章所有操作时,不要试图使用virtualBox的客户端软件操作你创建的虚拟机;不然虚拟系统中的很多设置会被客户端改变;就会不断出现问题;请全部使用命令行工具执行;

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点