--- # Available `vagrant_box` values include: # - geerlingguy/centos7 # - geerlingguy/centos6 # - geerlingguy/debian9 # - geerlingguy/debian8 # - geerlingguy/ubuntu1604 # - geerlingguy/ubuntu1404 vagrant_box: geerlingguy/ubuntu1604 vagrant_user: vagrant vagrant_synced_folder_default_type: nfs vagrant_gui: false # If you need to run multiple instances of Drupal VM, set a unique hostname, # machine name, and IP address for each instance. vagrant_hostname: drupalvm.test vagrant_machine_name: drupalvm vagrant_ip: 192.168.88.88 # Allow Drupal VM to be accessed via a public network interface on your host. # Vagrant boxes are insecure by default, so be careful. You've been warned! # See: https://docs.vagrantup.com/v2/networking/public_network.html vagrant_public_ip: "" # A list of synced folders, with the keys 'local_path', 'destination', and # a 'type' of [nfs|rsync|smb] (leave empty for slow native shares). See # http://docs.drupalvm.com/en/latest/getting-started/syncing-folders/ for more. vagrant_synced_folders: # The first synced folder will be used for the default Drupal installation, if # any of the build_* settings are 'true'. By default the folder is set to # the drupal-vm folder. - local_path: . destination: /var/www/drupalvm type: nfs create: true # Memory and CPU to use for this VM. vagrant_memory: 2048 vagrant_cpus: 1 # Ensure vagrant plugins are installed. vagrant_plugins: - name: vagrant-vbguest - name: vagrant-hostsupdater # Minimum required versions. drupalvm_vagrant_version_min: '1.8.6' drupalvm_ansible_version_min: '2.2' # Force use of ansible_local provisioner, even if Ansible is installed on host. force_ansible_local: false # The web server software to use. Can be either 'apache' or 'nginx'. drupalvm_webserver: apache # The database system to use. Can be either 'mysql' or 'pgsql'. drupal_db_backend: mysql # Set this to 'false' if you are using a different site deployment strategy and # would like to configure 'vagrant_synced_folders' and 'apache_vhosts' manually. drupal_build_makefile: false drush_makefile_path: "{{ config_dir }}/drupal.make.yml" drush_make_options: "--no-gitinfofile" # Set 'build_makefile' to 'false' and this to 'true' if you are using a # composer based site deployment strategy. drupal_build_composer: false drupal_composer_path: "{{ config_dir }}/drupal.composer.json" drupal_composer_install_dir: "/var/www/drupalvm/drupal" drupal_composer_dependencies: - "drupal/devel:1.x-dev" # Set this to 'true' and 'build_makefile', 'build_composer' to 'false' if you # are using Composer's create-project as a site deployment strategy. drupal_build_composer_project: true drupal_composer_project_package: "drupal-composer/drupal-project:8.x-dev" drupal_composer_project_options: "--prefer-dist --stability dev --no-interaction" # Set this to 'false' if you don't need to install drupal (using the drupal_* # settings below), but instead copy down a database (e.g. using drush sql-sync). drupal_install_site: true # Required Drupal settings. drupal_core_path: "{{ drupal_composer_install_dir }}/web" drupal_core_owner: "{{ drupalvm_user }}" drupal_db_user: drupal drupal_db_password: drupal drupal_db_name: drupal drupal_db_host: localhost # Settings for installing a Drupal site if 'drupal_install_site:' is 'true'. drupal_major_version: 8 drupal_domain: "{{ vagrant_hostname }}" drupal_site_name: "Drupal" drupal_install_profile: standard drupal_enable_modules: [ 'devel' ] drupal_account_name: admin drupal_account_pass: admin # Additional arguments or options to pass to `drush site-install`. drupal_site_install_extra_args: [] # Cron jobs are added to the vagrant user's crontab. Keys include name # (required), minute, hour, day, weekday, month, job (required), and state. drupalvm_cron_jobs: [] # Drupal VM automatically creates a drush alias file in your ~/.drush folder if # this variable is 'true'. configure_drush_aliases: true drush_aliases_host_template: "templates/drupalvm.aliases.drushrc.php.j2" drush_aliases_guest_template: "templates/drupalvm-local.aliases.drushrc.php.j2" # Helper variable to configure the PHP-FPM connection for each Apache # VirtualHost in the `apache_vhosts` list. apache_vhost_php_fpm_parameters: | SetHandler "proxy:fcgi://{{ php_fpm_listen }}" # Apache VirtualHosts. Add one for each site you are running inside the VM. For # multisite deployments, you can point multiple servernames at one documentroot. # View the geerlingguy.apache Ansible Role README for more options. apache_vhosts: - servername: "{{ drupal_domain }}" serveralias: "www.{{ drupal_domain }}" documentroot: "{{ drupal_core_path }}" extra_parameters: "{{ apache_vhost_php_fpm_parameters }}" - servername: "adminer.{{ vagrant_hostname }}" documentroot: "{{ adminer_install_dir }}" extra_parameters: "{{ apache_vhost_php_fpm_parameters }}" - servername: "xhprof.{{ vagrant_hostname }}" documentroot: "{{ php_xhprof_html_dir }}" extra_parameters: "{{ apache_vhost_php_fpm_parameters }}" - servername: "pimpmylog.{{ vagrant_hostname }}" documentroot: "{{ pimpmylog_install_dir }}" extra_parameters: "{{ apache_vhost_php_fpm_parameters }}" - servername: "{{ vagrant_ip }}" serveralias: "dashboard.{{ vagrant_hostname }}" documentroot: "{{ dashboard_install_dir }}" extra_parameters: "{{ apache_vhost_php_fpm_parameters }}" apache_packages_state: latest apache_remove_default_vhost: true apache_mods_enabled: - expires.load - headers.load - ssl.load - rewrite.load - proxy.load - proxy_fcgi.load # Nginx hosts. Each site will get a server entry using the configuration defined # here. Set the 'is_php' property for document roots that contain PHP apps like # Drupal. nginx_hosts: - server_name: "{{ drupal_domain }} www.{{ drupal_domain }}" root: "{{ drupal_core_path }}" is_php: true - server_name: "adminer.{{ vagrant_hostname }}" root: "{{ adminer_install_dir }}" is_php: true - server_name: "xhprof.{{ vagrant_hostname }}" root: "{{ php_xhprof_html_dir }}" is_php: true - server_name: "pimpmylog.{{ vagrant_hostname }}" root: "{{ pimpmylog_install_dir }}" is_php: true - server_name: "{{ vagrant_ip }} dashboard.{{ vagrant_hostname }}" root: "{{ dashboard_install_dir }}" is_php: true nginx_remove_default_vhost: true nginx_ppa_use: true nginx_vhost_template: "templates/nginx-vhost.conf.j2" # MySQL databases and users. mysql_databases: - name: "{{ drupal_db_name }}" encoding: utf8mb4 collation: utf8mb4_general_ci mysql_users: - name: "{{ drupal_db_user }}" host: "%" password: "{{ drupal_db_password }}" priv: "{{ drupal_db_name }}.*:ALL" # PostgreSQL databases and users. postgresql_databases: - name: "{{ drupal_db_name }}" postgresql_users: - name: "{{ drupal_db_user }}" password: "{{ drupal_db_password }}" db: "{{ drupal_db_name }}" priv: "ALL" # Comment out any extra utilities you don't want to install. If you don't want # to install *any* extras, set this value to an empty set, e.g. `[]`. installed_extras: - adminer # - blackfire # - drupalconsole - drush # - elasticsearch # - java - mailhog # - memcached # - newrelic # - nodejs - pimpmylog # - redis # - ruby # - selenium # - solr # - tideways # - upload-progress - varnish # - xdebug # - xhprof # use `tideways` if you're installing PHP 7+ # Add any extra apt or yum packages you would like installed. extra_packages: - sqlite # You can configure almost anything else on the server in the rest of this file. drush_version: "8.1.14" extra_security_enabled: false firewall_enabled: true firewall_allowed_tcp_ports: - "22" - "25" - "80" - "81" - "443" - "4444" - "8025" - "8080" - "8443" - "8983" - "9200" firewall_log_dropped_packets: false firewall_disable_firewalld: true firewall_disable_ufw: true # PHP Configuration. Currently-supported versions: 5.6, 7.0, 7.1, 7.2. # See version-specific notes: http://docs.drupalvm.com/en/latest/configurations/php/ php_version: "7.1" php_install_recommends: no php_memory_limit: "192M" php_display_errors: "On" php_display_startup_errors: "On" php_realpath_cache_size: "1024K" php_sendmail_path: "/opt/mailhog/mhsendmail" php_opcache_enabled_in_ini: true php_opcache_memory_consumption: "192" php_opcache_max_accelerated_files: 4096 php_max_input_vars: "4000" # Drupal VM defaults to using PHP-FPM with either Apache or Nginx. If you wish # to instead use Apache + mod_php with an Ubuntu base box, make sure you add # libapache2-mod-php7.0 to `extra_packages` elsewhere in this config file. php_enable_php_fpm: true php_fpm_listen: "127.0.0.1:9000" composer_path: /usr/bin/composer composer_home_path: "/home/{{ drupalvm_user }}/.composer" composer_home_owner: "{{ drupalvm_user }}" composer_home_group: "{{ drupalvm_user }}" composer_global_packages: - { name: hirak/prestissimo, release: '^0.3' } # Run specified scripts before or after VM is provisioned. Use {{ playbook_dir }} # to reference the provisioning/ folder in Drupal VM or {{ config_dir }} to # reference the directory where your `config.yml` is. pre_provision_scripts: [] post_provision_scripts: [] # - "{{ playbook_dir }}/../examples/scripts/configure-solr.sh" # MySQL Configuration. mysql_root_password: root mysql_slow_query_log_enabled: true mysql_slow_query_time: 2 mysql_wait_timeout: 300 adminer_install_filename: index.php # Node.js configuration (if enabled above). # Valid examples: "0.10", "0.12", "4.x", "5.x", "6.x". nodejs_version: "6.x" nodejs_npm_global_packages: [] nodejs_install_npm_user: "{{ drupalvm_user }}" npm_config_prefix: "/home/{{ drupalvm_user }}/.npm-global" # Ruby Configuration (if enabled above). ruby_install_gems_user: "{{ drupalvm_user }}" ruby_install_gems: [] # Varnish Configuration (if enabled above). varnish_listen_port: "81" varnish_default_vcl_template_path: templates/drupalvm.vcl.j2 varnish_default_backend_host: "127.0.0.1" varnish_default_backend_port: "80" # Pimp my Log settings. pimpmylog_install_dir: /usr/share/php/pimpmylog pimpmylog_grant_all_privs: true # XDebug configuration. XDebug is disabled by default for better performance. php_xdebug_default_enable: 0 php_xdebug_coverage_enable: 0 php_xdebug_cli_enable: 1 php_xdebug_remote_enable: 1 php_xdebug_remote_connect_back: 1 # Use PHPSTORM for PHPStorm, sublime.xdebug for Sublime Text. php_xdebug_idekey: PHPSTORM php_xdebug_max_nesting_level: 256 php_xdebug_remote_host: "{{ ansible_default_ipv4.gateway }}" # Solr Configuration (if enabled above). solr_version: "5.5.3" solr_xms: "64M" solr_xmx: "128M" # Selenium configuration. selenium_version: 2.53.0 # Docker configuration. docker_container_name: drupal-vm docker_image_name: drupal-vm docker_image_path: ~/Downloads # Other configuration. dashboard_install_dir: /var/www/dashboard known_hosts_path: ~/.ssh/known_hosts hostname_configure: true hostname_fqdn: "{{ vagrant_hostname }}" ssh_home: "{{ drupal_core_path }}"