mediacurrent / mis_vagrant
一个用于本地Drupal开发的虚拟机,使用Vagrant + Ansible构建
- dev-master
- 6.0.3
- 6.0.2.1
- 6.0.2
- 6.0.0
- 5.2.0.1
- 5.2.0
- 5.1.1
- 5.1.0.2
- 5.1.0.1
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0.1
- 5.0.0
- 4.9.2
- 4.9.1
- 4.9.0.2
- 4.9.0.1
- 4.9.0
- 4.7.0.1
- 4.7.0
- 4.6.0
- 4.5.0
- 4.4.5
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.1
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.0
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- dev-feature/MCT-399--mis-vagrant-480
- dev-feature/MCT-329--var-www-docroot
- dev-feature/MCT-39
- dev-feature/chris/mct-248--add-build-directory-to-git-ignore
This package is auto-updated.
Last update: 2024-09-16 00:58:49 UTC
README
设置本地Vagrant环境
Mediacurrent本地Vagrant基于DrupalVM的工作。
从这里下载并安装VirtualBox (>= 5.x)。要在终端检查是否已安装,请使用以下命令
vboxmanage -v
这将返回您的版本号。最近测试且可正常工作的版本是5.1.12*。
从这里下载并安装Vagrant (>= 2.0.4)。要检查您可能拥有的版本,您可以在终端中打开并使用以下命令
vagrant --version
安装Vagrant::Hostsupdater插件
此插件将自动更新您的机器上的/etc/hosts,这样就不必手动映射IP地址。您只需安装一次。vagrant plugin install vagrant-hostsupdater
要验证是否安装了插件,您可以运行
vagrant plugin list
如果您有该插件,您将在返回的列表中看到它。
将vagrant ssh密钥添加到您的.ssh目录
通常这已经安装好了。这将允许您无需密码即可SSH进入您的vagrant机器。如果您已经有这个文件,则命令将返回一个通知,表明文件存在。这是正常的。
ln -s ~/.vagrant.d/insecure_private_key ~/.ssh/vagrant_insecure_private_key
chmod 600 ~/.ssh/vagrant_insecure_private_key
以下命令将为您的默认.ssh文件夹添加一个符号链接。chmod命令将更改权限为适当的权限。要验证此操作是否成功,请运行以下命令
ls -lah ~/.ssh/vagrant_insecure_private_key
输出应如下所示
ls -lah ~/.ssh/vagrant_insecure_private_key
lrwxr-xr-x 1 username staff 47B Mar 8 2014 /Users/username/.ssh/vagrant_insecure_private_key -> /Users/username/.vagrant.d/insecure_private_key
通过编辑[home]/.ssh/config并添加以下行将mcdev顶级域名添加到您的ssh配置中:注意:这只需做一次。您可能已经在您的 ~/.ssh/config文件中有了这个。
Host *.mcdev
ForwardAgent yes
IdentityFile ~/.ssh/vagrant_insecure_private_key
User vagrant
这将允许您从机器上的任何位置SSH进入任何Vagrant机器。
将这些仓库克隆到您选择的目录中。注意:这将是在您的机器上网站所在的位置。下面的URL将是您特定项目的vagrant的URL。
git clone git@bitbucket.org:mediacurrent/mis_vagrant_example.git
初始化子模块以获取mis_example代码库。这些命令将检索构建网站所需的任何额外代码,包括核心Drupal文件的git仓库(通常位于单独的Bitbucket位置)。
cd mis_vagrant_example
git submodule init && git submodule update --remote
git submodule foreach git checkout develop
示例代码库(git@bitbucket.org:mediacurrent/mis_example.git)已安装到"mis_example"目录。
从mis_vagrant_example
目录启动虚拟机
vagrant up
您可能需要输入sudo密码以进行NFS挂载
此时,您应该有一个工作的vagrant,但不是一个工作的网站。要获得一个工作的网站,您需要安装一个站点配置文件,或者从服务器使用数据库备份进行安装。由于每个项目都不同,请参考您的项目特定仓库或Confluence空间以获取有关网站和数据库安装的详细信息。
全局Vagrant助手
使用标准MC vagrant,您将获得以下列出的一些附加工具的访问权限。
生成登录链接
登录链接可以通过Drush生成。为此,您需要导航到Drupal所在位置的docroot,并使用项目提供的Drush别名(@example.mcdev)。ULI命令将返回一个您可以用于在浏览器中登录网站的URL。
cd path/to/docroot
drush @example.mcdev uli
或vagrant ssh
cd /home/vagrant/docroot/sites/example.mcdev
drush uli
从vagrant服务器退出(通常ctrl-d可以很好地工作)
运行编码标准测试。
注意 除非模块位于“sites/all/modules/custom”目录中,否则不会运行测试。
Drupal 7
vagrant ssh -c "/vagrant/tests/code-sniffer.sh /home/vagrant/docroot"
Drupal 8
vagrant ssh -c "/vagrant/tests/code-sniffer.sh /home/vagrant/docroot/web"
运行安全审查测试。
(仅限Drupal 7)
vagrant ssh -c "/vagrant/tests/security-review.sh example.mcdev /home/vagrant/docroot"
运行可访问性测试。
vagrant ssh -c "/vagrant/tests/pa11y/pa11y-review.sh example.mcdev"
运行BDD系统测试。
vagrant ssh -c "/vagrant/tests/behat/behat-run.sh http://example.mcdev"
- 要运行单个测试或进行进一步配置,请参阅tests/behat/README.md
文档
Drupal VM 是一个基于Ansible构建的Drupal虚拟机。
Drupal VM使构建Drupal开发环境变得快速简单,并让开发者了解在虚拟机或Docker容器(而不是老旧的MAMP/WAMP开发)上开发Drupal的奇妙世界。
您可以使用以下两种方式使用Drupal VM
- 使用Vagrant和VirtualBox。
- 使用Docker。
本README的其余部分假设您正在使用Vagrant和VirtualBox(这是目前使用Drupal VM最灵活和最广泛使用的方法)。如果您想使用Docker与Drupal VM一起使用,请阅读Drupal VM Docker文档。
Drupal VM在Ubuntu 18.04(默认)Linux虚拟机上安装以下内容
- Apache(或Nginx)
- PHP(可配置版本)
- MySQL(或MariaDB,或PostgreSQL)
- Drupal 7、8或9
- 可选
- Drupal Console
- Drush
- Varnish
- Apache Solr
- Elasticsearch
- Node.js
- Selenium,用于通过Behat测试您的网站
- Ruby
- Memcached
- Redis
- SQLite
- Blackfire、XHProf或Tideways,用于分析您的代码
- XDebug,用于调试您的代码
- Adminer,用于直接访问数据库
- Pimp my Log,用于轻松查看日志文件
- MailHog,用于捕获和调试电子邮件
在有良好宽带连接的情况下,从头开始构建或重新构建虚拟机应该需要5-10分钟。
请阅读本README的其余部分以及Drupal VM文档,以获取帮助配置和集成Drupal VM到您的流程。
文档
完整的Drupal VM文档可在http://docs.drupalvm.com/找到
自定义虚拟机
有几个地方您可以自定义虚拟机以满足您的需求
config.yml
:覆盖从default.config.yml
继承的任何默认虚拟机配置;自定义虚拟机中安装的任何软件的几乎所有方面(有关配置Drupal VM的更多信息)。drupal.composer.json
或drupal.make.yml
:包含配置信息,用于指定Drupal核心版本、模块和补丁,这些将在Drupal初始安装时下载(您可以使用Composer、Drush make或自己的代码库进行构建)。
如果您想在初始安装时使用Drupal 8,请执行以下操作
- 在
config.yml
中设置drupal_major_version: 8
。 - 在
config.yml
中设置drupal_composer_project_package: "drupal/recommended-project:^8@dev"
。
如果您想在初始安装时使用Drupal 7,请执行以下操作
- 切换到使用Drush Make文件。
- 更新您的
drupal.make.yml
文件中的 Drupalversion
和core
。 - 在
config.yml
中设置drupal_major_version: 7
。
快速入门指南
本快速入门指南将帮助您在Drupal VM上快速构建一个Drupal 9站点,创建一个新的Composer项目。您还可以使用Drupal VM与Composer、Drush Make文件、本地Drupal代码库或甚至Drupal多站安装。
如果您想轻松地在本地安装Drupal站点,只需
- 安装Vagrant和VirtualBox。
- 将此项目下载到您的工作站上。
- 进入此项目目录并运行
vagrant up
。
但Drupal VM允许您以您喜欢的方式构建您的站点,使用您需要的任何工具,具有几乎无限的可灵活性和定制性!
1 - 安装Vagrant和VirtualBox
下载并安装Vagrant和VirtualBox。
您还可以使用Parallels或VMware等其他提供程序。(Parallels Desktop 11+需要“Pro”或“Business”版本以及Parallels Provider,VMware需要付费的Vagrant VMware集成插件)。
注意
- 为了加快配置速度(仅限macOS/Linux):在您的宿主机上安装Ansible,以便Drupal VM可以在本地而不是在虚拟机内部运行配置步骤。
- 为了稳定性:由于每个版本的VirtualBox都会对网络进行更改,为了最佳稳定性,您应该安装Vagrant的
vbguest
插件:vagrant plugin install vagrant-vbguest
。 - Linux上的NFS:如果您的宿主机上尚未安装NFS,则需要安装它才能使用默认的NFS同步文件夹配置。请参阅Linux上的nfs说明
- 版本:确保您正在运行Vagrant、VirtualBox和Ansible的最新版本——截至2020年,Drupal VM建议:Vagrant 2.2.x、VirtualBox 6.1.x和Ansible 2.9.x
2 - 构建虚拟机
- 下载此项目并将其放置在您想要的位置。
- (可选)将
default.config.yml
复制到config.yml
,并根据您的喜好进行修改。 - 创建一个本地目录,其中将安装Drupal,并在
config.yml
中配置到该目录的路径(local_path
,位于vagrant_synced_folders
内)。 - 打开终端,
cd
到此目录(包含Vagrantfile
和此README文件)。 - 输入
vagrant up
,让 Vagrant 展示它的魔法。
一旦过程完成,你将在项目的 drupal/
目录中拥有一个 Drupal 代码库。
注意:如果在运行 vagrant up
的过程中出现任何错误,并且它将你带回命令提示符,只需运行 vagrant provision
以继续从你离开的地方构建 VM。如果这样做几次后仍然出现错误,请在此项目的 GitHub 问题队列中发布一个错误。
3 - 访问 VM。
打开你的浏览器,访问 http://drupalvm.test/。管理员账户的默认登录名和密码都是 admin
。
注意:默认情况下,Drupal VM 配置为使用 192.168.88.88
作为其 IP 地址,如果你正在运行多个 VM,则 auto_network
插件(vagrant plugin install vagrant-auto_network
)可以帮助你管理 IP 地址,如果你在 config.yml
中设置 vagrant_ip
为 0.0.0.0
。
额外软件/实用工具
默认情况下,这个 VM 包含了在 config.yml
选项 installed_extras
中列出的额外内容。
installed_extras:
- adminer
# - blackfire
# - drupalconsole
- drush
# - elasticsearch
# - java
- mailhog
# - memcached
# - newrelic
# - nodejs
- pimpmylog
# - redis
# - ruby
# - selenium
# - solr
# - tideways
# - upload-progress
- varnish
# - xdebug
# - xhprof
如果你不需要或不需要这些额外内容之一或多个,只需从列表中删除它们或将其注释掉。这有助于如果你想要减少 PHP 内存使用量或以其他方式节约系统资源。
使用 Drupal VM
Drupal VM 是为了与每个开发者的工作流程集成而构建的。关于使用 Drupal VM 进行常见开发任务的许多指南都可在 Drupal VM 文档站点 上找到。
更新 Drupal VM
Drupal VM 遵循语义版本控制,这意味着你的配置应该在整个主要发布周期中继续工作(可能需要非常小的修改)。以下是更新 Drupal VM 之间的次要版本时需要遵循的过程
- 阅读 发行说明 并添加/修改其中提到的
config.yml
变量。 - 对你的
config.yml
与更新的default.config.yml
进行比较(例如,curl https://raw.githubusercontent.com/geerlingguy/drupal-vm/master/default.config.yml | git diff --no-index config.yml -
)。 - 运行
vagrant provision
以配置 VM,并纳入所有最新更改。
对于主要版本升级(例如,4.x.x 到 5.x.x),销毁 VM(vagrant destroy
)然后使用新版本的 Drupal VM 构建一个新的 VM(vagrant up
)可能更简单。
系统要求
Drupal VM 在几乎所有可以运行 VirtualBox 和 Vagrant 的现代计算机上运行,然而为了获得最佳的开箱即用体验,建议您的计算机至少具备
- 启用 VT-x 的 Intel Core 处理器
- 至少 4 GB RAM(越多越好)
- SSD(用于提高同步文件夹的速度)
其他注意事项
- 要关闭虚拟机,请在包含
Vagrantfile
的文件夹中的终端中输入vagrant halt
。要完全销毁它(如果您想节省一些磁盘空间或希望从vagrant up
重新开始),请输入vagrant destroy
。 - 要登录到虚拟机,请输入
vagrant ssh
。您还可以使用vagrant ssh-config
获取机器的 SSH 连接详细信息。 - 当您重建 VM(例如,
vagrant destroy
然后另一个vagrant up
)时,请确保清除您主机机器上drupal
文件夹的内容,否则当 VM 重建时 Drupal 将返回一些错误(它不会干净地重新安装 Drupal)。 - 您可以通过编辑
config.yml
中的变量来更改安装的 Drupal 或 drush 版本或任何其他配置选项。 - 在本演示文稿中了解有关使用Vagrant + VirtualBox + Ansible进行本地开发的更多信息: 本地开发环境 - Vagrant, VirtualBox 和 Ansible。
- 通过阅读Ansible for DevOps了解Ansible如何加速您的创新能力并管理您的基础设施。
测试
使用Docker和Molecule运行基本集成测试
- 安装Docker.
- 安装Molecule:
pip3 install ansible molecule[docker]
- 在此项目目录下,运行:
composer run-tests
项目自动化测试通过GitHub Actions运行,更全面的测试套件涵盖了多个Linux发行版以及许多不同的Drupal VM用例和部署技术。
许可
本项目采用MIT开源许可。
关于作者
Jeff Geerling于2014年创建了Drupal VM,旨在提高Drupal站点的效率以及核心/贡献开发工作流程。此项目在Ansible for DevOps中作为示例。