{"id":23980902,"url":"https://github.com/fourkitchens/dev2-playbooks","last_synced_at":"2026-06-08T20:32:13.533Z","repository":{"id":5427053,"uuid":"6619054","full_name":"fourkitchens/dev2-playbooks","owner":"fourkitchens","description":"Ansible playbooks for use in setting up dev2.","archived":false,"fork":false,"pushed_at":"2015-10-22T05:36:59.000Z","size":15070,"stargazers_count":4,"open_issues_count":24,"forks_count":1,"subscribers_count":49,"default_branch":"master","last_synced_at":"2025-03-03T22:36:16.005Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fourkitchens.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-09T19:49:43.000Z","updated_at":"2016-06-01T04:16:07.000Z","dependencies_parsed_at":"2022-07-06T17:05:02.486Z","dependency_job_id":null,"html_url":"https://github.com/fourkitchens/dev2-playbooks","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/fourkitchens/dev2-playbooks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Fdev2-playbooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Fdev2-playbooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Fdev2-playbooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Fdev2-playbooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fourkitchens","download_url":"https://codeload.github.com/fourkitchens/dev2-playbooks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Fdev2-playbooks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34080026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-07T10:19:07.608Z","updated_at":"2026-06-08T20:32:13.518Z","avatar_url":"https://github.com/fourkitchens.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Four Kitchens: Ubuntu 14.04 Development Server\n\nThe Four Kitchens development server uses ansible for using our bespoke development environment as a VM or in the cloud. You have a great amount of configuration options available to you via `yml` files but by default, after installing the latest VirtualBox and the latest version of Vagrant you should be only a few steps away from a robust and comprehensive environment.\n\n## Requirements\n\n* [VirtualBox](https://www.virtualbox.org/wiki/Downloads), a virtualization platform.\n* [Vagrant](http://downloads.vagrantup.com/), which creates and configures virtual environments.\n* [Ansible](http://docs.ansible.com/), an automation tool for configuration, deployment and other IT tasks. Two [Ansible Galaxy Roles](https://galaxy.ansible.com/intro) (bundled automation content) are required:\n    * [nodesource.node](https://github.com/nodesource/ansible-nodejs-role) - Node.js installation\n    * [zzet.rbenv](https://galaxy.ansible.com/list#/roles/102) - rbenv installation\n    * [crushlovely.imagemagick,v2.0.0](https://galaxy.ansible.com/list#/roles/1180) - imagemagick\n\n## Installation\n\n### Local (OS X)\n\nStart by installing [Homebrew](http://brew.sh/), a package manager for OS X. Additional instructions can be found in the [Homebrew documentation](https://github.com/Homebrew/homebrew/tree/master/share/doc/homebrew#readme).\n\n    ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\nNext install the [Homebrew](http://brew.sh/) extension [Cask](http://caskroom.io/), an application package manager that deals with prebuilt binaries for desktop applications. Additional instructions can be found in the [documentation](https://github.com/caskroom/homebrew-cask/blob/master/USAGE.md).\n\n    brew install caskroom/cask/brew-cask\n\nNext, install VirtualBox.\n\n    brew cask install virtualbox\n\nThen, install Vagrant.\n\n    brew cask install vagrant\n\nOptionally, install [Vagrant Manager](http://vagrantmanager.com/) to manage your VMs.\n\n    brew cask install vagrant-manager\n\nYou'll need to install Ansible.\n\n    brew install ansible\n\nContinue to [Local (All)](#local-all) to complete installation.\n\n### Local (Linux)\n\nInstall VirtualBox; see the [Linux Downloads](https://www.virtualbox.org/wiki/Linux_Downloads) page and follow the instructions that match your environment.\n\nThen, install Vagrant; see the [download](https://www.vagrantup.com/downloads.html) page and download the package that matches your environment. _Note:_ Must be version `1.5.*` or greater. Do not use the version provided by `apt-get` as it is not supported.\n\nNext, install Ansible; see their [installation](http://docs.ansible.com/intro_installation.html) page and follow the instructions that match your environment.\n\nContinue to [Local (All)](#local-all) to complete installation.\n\n### Local (All)\n\nAnsible Galaxy roles need to be installed, and they are listed in the roles.txt file. The command below will automatically install and/or update roles locally.\n\n    ansible-galaxy install --force -r roles.txt\n\nChange directory to where you want to store your project configuration and clone this repository.\n\n    cd ~/projects\n    PROJECT_NAME=dev2-playbooks\n    git clone git@github.com:fourkitchens/dev2-playbooks.git $PROJECT_NAME\n    cd $PROJECT_NAME\n\nWithin the project, run a single, magical command:\n\n    vagrant up\n\nThe virtual machine will be created and configured for you.\n\n_Pro Tip:_ If you have trouble mounting shared folders with NFS, which is a [known issue](http://serverfault.com/questions/200759/exportfs-warning-home-user-share-does-not-support-nfs-export) for directories encrypted with ecryptfs, see the VagrantFile at the root of this repository for alternative options.\n\n## Usage\n\nTo access the shell, run:\n\n    vagrant ssh\n\nTo update your machine, pull the latest within the repository, then run:\n\n    vagrant provision\n\nIf you want to customize any of the settings within the playbooks, create a host_vars/vagrant file, with any settings overrides you need.\n\n## Ansible Scripts\n\nAnsible deployment scripts, located in the ```deploy``` directory can be used for common deployment tasks. Deployment commands can be run on a development server using the following syntax, however to use them in a Vagrant virtual machine you'll need to use the bash script located below.\n\n    ansible-playbook -i hosts deploy/user-add.yml\n\nFill out the prompts or include them in the extra-vars ```-e``` argument\n\n    ansible-playbook -i hosts -e=\"user_name=bender github=fkbender\" deploy/user-add.yml\n\nA special bash script is available that makes it possible to run deployment scripts locally.\n\n    ./vagrant-playook deploy/user-add.yml\n\nThe following commands will work on the vagrant machine and on the dev server:\n\n### Databases\nCreate MySQL Database\n\n    ./vagrant-playbook deploy/database/mysql-db-create.yml\n\nImport MySQL Database\n\n    ./vagrant-playbook deploy/database/mysql-db-import.yml\n\n### Solr Cores\n\nAdd Solr Core  \n\n    ./vagrant-playbook deploy/solr-cores/solr-core-add.yml\n\nDelete Solr Core  \n\n    ./vagrant-playbook deploy/solr-cores/solr-core-delete.yml\n\n### Users\n\nAdd User\n\n    ./vagrant-playbook deploy/users/user-add.yml\n\nDelete User\n\n    ./vagrant-playbook deploy/users/user-delete.yml\n\n### Drupal Sites\n\nThe following commands only work on a remote dev server:\n\nDeploy Drupal dev site\n\n    deploy/drupal-sites/drupal-dev-site-deploy.yml\n\nRemove Drupal dev site\n\n    deploy/drupal-sites/drupal-dev-site-remove.yml\n\nDeploy Drupal trunk site\n\n    deploy/drupal-sites/drupal-trunk-site-deploy.yml\n\nRemove Drupal trunk site\n\n    deploy/drupal-sites/drupal-trunk-site-remove.yml\n\n## Dev Server Features\n\nIn addition to the easy execution of common tasks and parity between our Development and local environments, the playbooks provide a number of features.\n\n### Standard Stuff\n* The www folder in your home folder will serve all content in subfolders at easy to use URLs. For example: ```/home/vagrant/www/drupal``` will be available at the URL http://vagrant.drupal.local.dev/ on a vagrant box and http://username.drupal.example.com/ on a dev server.\n* All sites created with the deploy scripts have drush aliases created. Try ```drush sa``` from inside the vm to see a list.\n* [Xdebug](http://xdebug.org/) is available for PHP debugging.\n* [rvm](http://rvm.io/) is used to manage ruby gems.\n* [Apache SOLR](https://lucene.apache.org/solr/index.html) cores can be created using the Ansible script or a Jenkin's Job. The core can be used by Drupal at (http://localhost:8888/solr/core_name) and the SOLR admin is available at (http://hostname.tld:8888/solr/core_name/admin)\n\n### Multiple Webservers\n\nThe dev2 playbooks now install both apache and nginx. This will allow us to more closely emulate Pantheon (nginx+php-fpm), or more common (apache) application server environments. You can switch between the two by sending either a GET argument (``varnish_backend`` by default) or by setting a request header (``X-varnish-backend`` by default).\n\nFor example, the following requests would hit the respective servers:\n\n* apache\n    * http://fpl.local.dev?varnish_backend=apache\n    * http://fpl.local.dev (`X-varnish-backend: apache`)\n* nginx\n    * http://fpl.local.dev?varnish_backend=nginx\n    * http://fpl.local.dev (`X-varnish-backend: nginx`)\n\nThe default webserver can be set from your settings file before running the playbooks but will be set to apache by default.\n\nProtip: you can use the Chrome extension [ModHeader](https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj) to send custom headers and avoid needing to use GET arguments on every request.\n\n### XHProf\n\nYou can utilize XHProf with mongodb xhprof which will provide you with a Drupal interface to view the XHProf results without using devel.\n\n### Remote\n\n* Create a hosts file\n* `ansible-playbooks -i hosts playbook.yml`\n* Magic.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffourkitchens%2Fdev2-playbooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffourkitchens%2Fdev2-playbooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffourkitchens%2Fdev2-playbooks/lists"}