govCMS-devkit is a development environment builder based off the excellent Drupal VM, built with Vagrant + Ansible.
This project aims to make spinning up a local (VM) or remote (AWS) govCMS test/development environment using a standardised toolset. It provides three options for install:
It will install the following on an Ubuntu 14.04 (by default) linux environment:
It should take 10-15 minutes to build or rebuild the VM from scratch on a decent broadband connection.
This codebase comes with preconfigured config files for the govCMS distribution. There are a couple places where you can customize the VM for your needs:
config.yml
: Contains variables like the VM domain name and IP address, PHP and MySQL configuration, etc.drupal.make
: Contains configuration for the Drupal core version, modules, and patches that will be downloaded on Drupal's initial installation (more about Drush make files).This Quick Start Guide will help you quickly build a govCMS environment using the Drupal.org release of govCMS.
[Mac/Linux only] Install Ansible.
Note for Windows users: Ansible will be installed inside the VM, and everything will be configured internally (unlike on Mac/Linux hosts). See JJG-Ansible-Windows for more information.
Note for Linux users: If NFS is not already installed on your host, you will need to install it to use the default NFS synced folder configuration. See guides for Debian/Ubuntu, Arch, and RHEL/CentOS.
Note on versions: Please make sure you're running the latest stable version of Vagrant, VirtualBox, and Ansible, as the current version of Drupal VM is tested with the latest releases. As of June 2015: Vagrant 1.7.2, VirtualBox 4.3.26, and Ansible 1.9.2.
Vagrantfile
and this README file).example.config.vm-vbox.yml
to config.yml
Vagrantfile
and this README file).example.config.vm-parallels.yml
to config.yml
vagrant plugin install vagrant-parallels
Vagrantfile
and this README file).example.config.vm-vmware.yml
to config.yml
config.yml
(local_path
, inside vagrant_synced_folders
).Vagrantfile
and this README file).$ sudo ansible-galaxy install -r provisioning/requirements.yml --force
vagrant plugin install vagrant-hostmanager
to add entries to your hosts file for youvagrant up
, and let Vagrant do its magic.admin
for both username and password.Note: If there are any errors during the course of running vagrant up
, and it drops you back to your command prompt, just run vagrant provision
to continue building the VM from where you left off. If there are still errors after doing this a few times, post an issue to this project's issue queue on GitHub with the error.
By default, this VM includes the extras listed in the config.yml
option installed_extras
:
installed_extras:
- adminer
# - jenkins
- mailhog
- memcached
- pimpmylog
# - solr
# - selenium
- varnish
- xdebug
- xhprof
If you don't want or need one or more of these extras, just delete them or comment them from the list. This is helpful if you want to reduce PHP memory usage or otherwise conserve system resources.
vagrant halt
in the Terminal in the same folder that has the Vagrantfile
. To destroy it completely (if you want to save a little disk space, or want to rebuild it from scratch with vagrant up
again), type in vagrant destroy
.vagrant destroy
and then another vagrant up
), make sure you clear out the contents of the drupal
folder on your host machine, or Drupal will return some errors when the VM is rebuilt (it won't reinstall Drupal cleanly).config.yml
.Vagrantfile
and this README file).example.config.aws.yml
to config.yml
config.yml
file and provide AWS key, secret, and path to key-pair .pem file.vagrant plugin install vagrant-aws
to install the AWS providervagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
to add a dummy boxvagrant plugin install vagrant-hostmanager
to add entries to your hosts file for youvagrant up --provider=aws
This will install Jenkins and pre-configure with a pull-request environment builder, which will:
It makes the following assumptions:
In order to use the pre-configured Jenkins pull-request environment builder you will need to perform the following steps:
Prepare AWS/EC2
Prepare GitHub
Perform the same steps as above (remote AWS server), but copy the example.config.aws-jenkins.yml
file instead at step 5.
Update the additional variables in the config.yml
file:
jenkins_github_repo
(git URL to theme repository to monitor)jenkins_github_url
(URL to GitHub repository)jenkins_github_stub
(GitHub stub)aws_elastic_ip
(IP address allocated above)Once complete, visit http://govcms.dev:8000/ in a browser.
Prepare Jenkins
This project is licensed under the MIT open source license.
Please read the Drupal VM Wiki for help getting Drupal VM configured and integrated with your development workflow.
Jeff Geerling, owner of Midwestern Mac, LLC, created this project in 2014 so he could accelerate his Drupal core and contrib development workflow. This project, and others like it, are also featured as examples in Jeff's book, Ansible for DevOps.
Full Drupal VM documentation is available at http://docs.drupalvm.com/
Drupal VM is built to integrate with every developer's workflow. Many guides for using Drupal VM for common development tasks are available on the Drupal VM Wiki: