geerlingguy / drupal-vm

A VM for Drupal development
https://www.drupalvm.com/
MIT License
1.37k stars 647 forks source link

Question: SSL with apache on vagrant for my Drupal VM #1074

Closed iefrati closed 7 years ago

iefrati commented 7 years ago

Issue Type

Support Request

Your Environment

latest drupal-vm version

Your OS

macOS (10.11)

Full console output

I am trying to use SSL with apache on vagrant for my Drupal VM I used that page http://docs.drupalvm.com/en/latest/extras/ssl/

Added to the bottom of my config.yml the following code

apache_vhosts_ssl:
  - servername: "{{ drupal_domain }}"
    documentroot: "{{ drupal_core_path }}"
    certificate_file: "/vagrant/example.crt"
    certificate_key_file: "/vagrant/example.key"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000{{ drupal_core_path }}"

generated example.crt and example.key in /vagrant using openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout example.key -out example.crt

vagrant@name:/vagrant$ ls |grep example
example.crt
example.key

I made sure that 443 is open, and I reloaded my machine, but I am still getting

ERR_SSL_PROTOCOL_ERROR

EDIT config.yml file


# `vagrant_box` can also be set to geerlingguy/centos6, geerlingguy/centos7,
# geerlingguy/ubuntu1404, geerlingguy/ubuntu1204, parallels/ubuntu-14.04, etc.
vagrant_box: geerlingguy/ubuntu1604
vagrant_user: vagrant
vagrant_synced_folder_default_type: nfs

# If you need to run multiple instances of Drupal VM, set a unique hostname,
# machine name, and IP address for each instance.
vagrant_hostname: test.me
vagrant_machine_name: test-dev-vm
vagrant_ip: 192.168.88.89

# 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/extras/syncing-folders/ for more info.
vagrant_synced_folders:
  # The first synced folder will be used for the default Drupal installation, if
  # build_makefile: is 'true'.
  - local_path: ../test
    destination: /var/www/test
    type: nfs
    create: true
    excluded_paths:
      - .git
      - .sass-cache
      - docs
      - db
      - migration_data
      - tmp
      - docroot/sites/default/files

# Memory and CPU to use for this VM.
vagrant_memory: 4096 # Or 1/4 of the total RAM available on your computer
vagrant_cpus: 2 # Note that if using this vm with VirtualBox, you should change this value to 1 to improve performance

drupal_composer_install_dir: "/var/www/test/docroot"
drupal_composer_dependencies: []

# 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).
install_site: false

# Settings for building a Drupal site from a makefile (if 'build_makefile:'
# is 'true').
drupal_major_version: 7
drupal_core_path: "/var/www/test/docroot"
drupal_domain: "{{ vagrant_hostname }}"
drupal_site_name: "test Dev Site"
drupal_install_profile: test
drupal_enable_modules: [ 'devel' ]
drupal_account_name: admin
drupal_account_pass: testing
drupal_db_user: testing
drupal_db_password: testing
drupal_db_name: test_init_testing

# Comment out any extra utilities you don't want to install. If you don't want
# to install *any* extras, make set this value to an empty set, e.g. `[]`.
installed_extras:
  - adminer
  # - blackfire
  - drupalconsole
  - drush
  - mailhog
  - memcached
  # - newrelic
  # - nodejs
  - pimpmylog
  # - redis
  # - ruby
  # - selenium
  # - solr
  # - varnish
  - xdebug
  #- xhprof

firewall_allowed_tcp_ports:
  - "22"
  - "25"
  - "80"
  - "81"
  - "443"
  - "3306"
  - "4444"
  - "8025"
  - "8080"
  - "8443"
  - "8983"
  - "8889"

php_memory_limit: "256M"

apache_vhosts_ssl:
  - servername: "{{ drupal_domain }}"
    documentroot: "{{ drupal_core_path }}"
    certificate_file: "/vagrant/example.crt"
    certificate_key_file: "/vagrant/example.key"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000{{ drupal_core_path }}"

Any ideas?

iefrati commented 7 years ago

Also looked at #798

oxyc commented 7 years ago

I'll try and reproduce this later today after work. I believe I've only ever tested Ubuntu's snakeoil certificate.

In case it makes a difference, which vagrant_box are you using?

iefrati commented 7 years ago

Vagrant 1.9.1

iefrati commented 7 years ago

If I am disabling the htaccess https redirect I can access the site, so I am sure it is something stupid as a path to the crt or something like this?

oxyc commented 7 years ago

Could you post your entire config.yml file?

iefrati commented 7 years ago

edited the original post

oxyc commented 7 years ago

Hmm that's odd. It works for me. I just get ERR_CERT_AUTHORITY_INVALID. Are the apache logs saying anything?

iefrati commented 7 years ago

Nothing

[Thu Dec 22 17:17:17.045217 2016] [core:notice] [pid 1152:tid 140369839064960] AH00094: Command line: '/usr/sbin/apache2' [Thu Dec 22 18:17:25.498081 2016] [mpm_event:notice] [pid 1152:tid 140369839064960] AH00491: caught SIGTERM, shutting down [Thu Dec 22 18:17:43.133022 2016] [ssl:warn] [pid 1157:tid 139826756695936] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] [Thu Dec 22 18:17:43.134933 2016] [mpm_event:notice] [pid 1157:tid 139826756695936] AH00489: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Thu Dec 22 18:17:43.134947 2016] [core:notice] [pid 1157:tid 139826756695936] AH00094: Command line: '/usr/sbin/apache2'

iefrati commented 7 years ago

Did you configure anything in apache itself?

oxyc commented 7 years ago

I did not. I didn't use your config.yml though, I just tested the ssl vhost while testing another bug report. I'll try again with your exact copy later today. This is the one I used, that did work.

vagrant_hostname: drupalvm-project.dev
vagrant_machine_name: drupalvm_project
vagrant_ip: 192.168.99.88
vagrant_box: geerlingguy/ubuntu1604

apache_vhosts_ssl:
  - servername: "{{ drupal_domain }}"
    documentroot: "{{ drupal_core_path }}"
    certificate_file: "/vagrant/example.crt"
    certificate_key_file: "/vagrant/example.key"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000{{ drupal_core_path }}"

php_version: "5.6"
installed_extras:
  - adminer
  # - blackfire
  - drupalconsole
  - drush
  # - elasticsearch
  # - java
  - mailhog
  # - memcached
  # - newrelic
  # - nodejs
  - pimpmylog
  # - redis
  # - ruby
  # - selenium
  # - solr
  - upload-progress
  - varnish
  - xdebug
  - xhprof
iefrati commented 7 years ago

so for /vagrant/example.key

did you do vagrant ssh cd /vagrant and ran the openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout example.key -out example.crt

does it matter where you run it if you move the files somewhere else?

oxyc commented 7 years ago

I did it on my host computer. But it shouldn't make a difference I guess.

iefrati commented 7 years ago

Just tested from /vagrant/ not changing any thing also sudo service apache2 restart, not helping

oxyc commented 7 years ago

I tested again with your config.yml and again, I only get ERR_CERT_AUTHORITY_INVALID.

oxyc commented 7 years ago

For debugging purposes could you try with the default Drupal VM directory structure and only add this to your config.yml:

vagrant_hostname: test.me
vagrant_machine_name: test-dev-vm
vagrant_ip: 192.168.88.89

apache_vhosts_ssl:
  - servername: "{{ drupal_domain }}"
    documentroot: "{{ drupal_core_path }}"
    certificate_file: "/vagrant/example.crt"
    certificate_key_file: "/vagrant/example.key"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000{{ drupal_core_path }}"

Also make sure you have the example.crt and example.key in the same directory as the config.yml.

iefrati commented 7 years ago

Still

ERR_SSL_PROTOCOL_ERROR
vagrant ssh
vagrant@test:~$ cd /vagrant/
vagrant@test:/vagrant$ ls |grep example.
example.crt
example.drupal.composer.json
example.drupal.make.yml
example.key
examples
oxyc commented 7 years ago

Could you upload the example.crt and example.key and I'll try it using those as well.

iefrati commented 7 years ago

@oxyc can I forward this via email or something?

oxyc commented 7 years ago

Is it a real certificate or just a dummy one you created for testing purposes? If it's a dummy one you can forward it to public@oxy.fi, if it's a real one we can try to debug it some other way.

iefrati commented 7 years ago

dummy one

iefrati commented 7 years ago

Archive.zip Here are dummy certificates

oxyc commented 7 years ago

Not sure what can cause this problem to be honest. That certificate works for me with the default.config.yml in Chrome/FF/IE11. We might need input from someone more knowledgable. ping @geerlingguy.

oxyc commented 7 years ago

Could you also post the vhost configurations by logging in to the vm (vagrant ssh) and running cat /etc/apache2/sites-available/vhosts.conf.

geerlingguy commented 7 years ago

@iefrati - Is you hostname actually test.me or is it something else? The reason I ask is because if your live domain is configured with SSL (e.g. example.com), and you're using a subdomain of that domain (e.g. local.example.com), and the SSL is configured differently... that can cause issues in some browsers (especially Chrome).

I'd try in FireFox, Safari, Edge, etc. and see if you get the same error in each browser or something different.

You're saying the local VM domain is getting served over SSL, but the browser is throwing the ERR_SSL_PROTOCOL_ERROR error, right?

geerlingguy commented 7 years ago

Also just for starters, make sure your computer's date/time are correct/in sync with NTP.

iefrati commented 7 years ago

@geerlingguy sorry for being MIA, I was traveling for a while

tried different browsers FF An error occurred during a connection to test.me. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG

also put the certificate/key under /home/vagrant/cert directory owned by root/700 files are owned by root/600

still same error

oxyc commented 7 years ago

Did you clear your browser cache: More tools -> Clear browsing data? Simply force refreshing might not work.

iefrati commented 7 years ago

@oxyc yes both in FF and chrome also restarted apache

iefrati commented 7 years ago

also attached is the vhost.conf

DirectoryIndex index.php index.html

<VirtualHost *:80>
  ServerName test.me
  ServerAlias www.test.lvh.me
  DocumentRoot /var/www/test/docroot

  <Directory "/var/www/test/docroot">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/var/www/test/docroot"

</VirtualHost>

<VirtualHost *:80>
  ServerName adminer.test.me
  DocumentRoot /opt/adminer

  <Directory "/opt/adminer">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/opt/adminer"

</VirtualHost>

<VirtualHost *:80>
  ServerName xhprof.test.me
  DocumentRoot /usr/share/php/xhprof_html

  <Directory "/usr/share/php/xhprof_html">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/usr/share/php/xhprof_html"

</VirtualHost>

<VirtualHost *:80>
  ServerName pimpmylog.test.me
  DocumentRoot /usr/share/php/pimpmylog

  <Directory "/usr/share/php/pimpmylog">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/usr/share/php/pimpmylog"

</VirtualHost>

<VirtualHost *:80>
  ServerName 192.168.88.89
  ServerAlias dashboard.test.me
  DocumentRoot /var/www/dashboard

  <Directory "/var/www/dashboard">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/var/www/dashboard"
DirectoryIndex index.html

</VirtualHost>
oxyc commented 7 years ago

Well that explains it. There are no SSL vhosts. Why, I'm not sure. Your config looks correct to me.

Edit: Could you run vagrant provision and post the entire output?

iefrati commented 7 years ago
=> test-dev-vm: [vagrant-hostsupdater] Checking for host entries
==> test-dev-vm: [vagrant-hostsupdater]   found entry for: 192.168.88.89 test.me
==> test-dev-vm: [vagrant-hostsupdater]   found entry for: 192.168.88.89 www.test.me
==> test-dev-vm: [vagrant-hostsupdater]   found entry for: 192.168.88.89 adminer.test.me
==> test-dev-vm: [vagrant-hostsupdater]   found entry for: 192.168.88.89 xhprof.test.me
==> test-dev-vm: [vagrant-hostsupdater]   found entry for: 192.168.88.89 pimpmylog.test.me
==> test-dev-vm: [vagrant-hostsupdater]   found entry for: 192.168.88.89 dashboard.test.me
==> test-dev-vm: Running provisioner: ansible_local...
    test-dev-vm: Running ansible-playbook...

PLAY [all] *********************************************************************

TASK [setup] *******************************************************************
ok: [test-dev-vm]

TASK [Verify Ansible meets Drupal VM's version requirements.] ******************
ok: [test-dev-vm] => {
    "changed": false, 
    "msg": "All assertions passed"
}

TASK [Include OS-specific variables.] ******************************************
ok: [test-dev-vm]

TASK [Define config_dir.] ******************************************************
skipping: [test-dev-vm]

TASK [include_vars] ************************************************************
ok: [test-dev-vm] => (item=/vagrant/config.yml)

TASK [include] *****************************************************************
included: /vagrant/provisioning/tasks/init-debian.yml for test-dev-vm

TASK [Update apt cache if needed.] *********************************************
changed: [test-dev-vm]

TASK [Get software for Python-based control.] **********************************
ok: [test-dev-vm] => (item=[u'curl', u'python-apt', u'python-pycurl', u'build-essential', u'sudo', u'unzip'])

TASK [Disable the ufw firewall (since we use a simple iptables firewall).] *****
changed: [test-dev-vm]

TASK [Add repository for Apache 2.4 on Ubuntu 12.] *****************************
skipping: [test-dev-vm]

TASK [Add repository for PHP 5.5, 5.6, 7.0 or 7.1.] ****************************
ok: [test-dev-vm]

TASK [Add repository for PHP 5 compatibility packages.] ************************
ok: [test-dev-vm]

TASK [Purge PHP version packages.] *********************************************
ok: [test-dev-vm] => (item=[u'php5.5', u'php5.5-apcu', u'php5.5-cli', u'php5.5-common', u'php5.5-curl', u'php5.5-dev', u'php5.5-fpm', u'php5.5-gd', u'php5.5-imap', u'php5.5-json', u'php5.5-mbstring', u'php5.5-mcrypt', u'php5.5-opcache', u'php5.5-sqlite3', u'php5.5-xml', u'php7.0', u'php7.0-apcu', u'php7.0-cli', u'php7.0-common', u'php7.0-curl', u'php7.0-dev', u'php7.0-fpm', u'php7.0-gd', u'php7.0-imap', u'php7.0-json', u'php7.0-mbstring', u'php7.0-mcrypt', u'php7.0-opcache', u'php7.0-sqlite3', u'php7.0-xml', u'php7.1', u'php7.1-apcu', u'php7.1-cli', u'php7.1-common', u'php7.1-curl', u'php7.1-dev', u'php7.1-fpm', u'php7.1-gd', u'php7.1-imap', u'php7.1-json', u'php7.1-mbstring', u'php7.1-mcrypt', u'php7.1-opcache', u'php7.1-sqlite3', u'php7.1-xml'])

TASK [Purge PHP packages installed by default on Ubuntu.] **********************
skipping: [test-dev-vm] => (item=[]) 

TASK [Purge PHP modules directory.] ********************************************
skipping: [test-dev-vm] => (item=/usr/lib/php5/modules) 
skipping: [test-dev-vm] => (item=/usr/lib/php/modules) 

TASK [Define php_xhprof_html_dir.] *********************************************
skipping: [test-dev-vm]

TASK [include] *****************************************************************
skipping: [test-dev-vm]

TASK [Run configured pre-provision shell scripts.] *****************************

TASK [Run configured pre-provision ansible task files.] ************************

TASK [Set the PHP webserver daemon correctly when nginx is in use.] ************
skipping: [test-dev-vm]

TASK [Set the correct XHProf package when PHP 5.5 or 5.6 is used.] *************
ok: [test-dev-vm]

TASK [geerlingguy.repo-remi : Install remi repo.] ******************************
skipping: [test-dev-vm]

TASK [geerlingguy.repo-remi : Import remi GPG key.] ****************************
skipping: [test-dev-vm]

TASK [geerlingguy.firewall : Ensure iptables is installed.] ********************
ok: [test-dev-vm]

TASK [geerlingguy.firewall : Flush iptables the first time playbook runs.] *****
ok: [test-dev-vm]

TASK [geerlingguy.firewall : Copy firewall script into place.] *****************
ok: [test-dev-vm]

TASK [geerlingguy.firewall : Copy firewall init script into place.] ************
ok: [test-dev-vm]

TASK [geerlingguy.firewall : Copy firewall systemd unit file into place (for systemd systems).] ***
ok: [test-dev-vm]

TASK [geerlingguy.firewall : Ensure the firewall is enabled and will start on boot.] ***
ok: [test-dev-vm]

TASK [geerlingguy.git : Ensure git is installed (RedHat).] *********************
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.git : Update apt cache (Debian).] ****************************
ok: [test-dev-vm]

TASK [geerlingguy.git : Ensure git is installed (Debian).] *********************
ok: [test-dev-vm] => (item=[u'git', u'git-svn'])

TASK [geerlingguy.git : Ensure git's dependencies are installed (RedHat).] *****
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.git : Ensure git's dependencies are installed (Debian).] *****
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.git : Get installed version] *********************************
[DEPRECATION WARNING]: always_run is deprecated. Use check_mode = no instead..

This feature will be removed in version 2.4. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
skipping: [test-dev-vm]

TASK [geerlingguy.git : Force git install if the version numbers do not match] *
skipping: [test-dev-vm]

TASK [geerlingguy.git : Download git.] *****************************************
skipping: [test-dev-vm]

TASK [geerlingguy.git : Expand git archive.] ***********************************
skipping: [test-dev-vm]

TASK [geerlingguy.git : Build git.] ********************************************
skipping: [test-dev-vm] => (item=all) 
skipping: [test-dev-vm] => (item=install) 

TASK [geerlingguy.postfix : Ensure postfix is installed (RedHat).] *************
skipping: [test-dev-vm]

TASK [geerlingguy.postfix : Ensure postfix is installed (Debian).] *************
ok: [test-dev-vm]

TASK [geerlingguy.postfix : Ensure postfix is started and enabled at boot.] ****
ok: [test-dev-vm]

TASK [geerlingguy.apache : Include OS-specific variables.] *********************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Define apache_packages.] ****************************
ok: [test-dev-vm]

TASK [geerlingguy.apache : include] ********************************************
included: /vagrant/provisioning/roles/geerlingguy.apache/tasks/setup-Debian.yml for test-dev-vm

TASK [geerlingguy.apache : Update apt cache.] **********************************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Ensure Apache is installed on Debian.] **************
ok: [test-dev-vm] => (item=[u'apache2', u'apache2-utils'])

TASK [geerlingguy.apache : Get installed version of Apache.] *******************
[DEPRECATION WARNING]: always_run is deprecated. Use check_mode = no instead..

This feature will be removed in version 2.4. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [test-dev-vm]

TASK [geerlingguy.apache : Create apache_version variable.] ********************
ok: [test-dev-vm]

TASK [geerlingguy.apache : include_vars] ***************************************
skipping: [test-dev-vm]

TASK [geerlingguy.apache : include_vars] ***************************************
ok: [test-dev-vm]

TASK [geerlingguy.apache : include] ********************************************
included: /vagrant/provisioning/roles/geerlingguy.apache/tasks/configure-Debian.yml for test-dev-vm

TASK [geerlingguy.apache : Configure Apache.] **********************************
ok: [test-dev-vm] => (item={u'regexp': u'^Listen ', u'line': u'Listen 80'})

TASK [geerlingguy.apache : Enable Apache mods.] ********************************
ok: [test-dev-vm] => (item=expires.load)
ok: [test-dev-vm] => (item=ssl.load)
ok: [test-dev-vm] => (item=rewrite.load)
ok: [test-dev-vm] => (item=proxy.load)
ok: [test-dev-vm] => (item=proxy_fcgi.load)

TASK [geerlingguy.apache : Disable Apache mods.] *******************************

TASK [geerlingguy.apache : Check whether certificates defined in vhosts exist.] 
ok: [test-dev-vm] => (item={u'extra_parameters': u'ProxyPassMatch ^/(.*\\.php(/.*)?)$ "fcgi://127.0.0.1:9000/var/www/test/docroot"\n', u'servername': u'test.me', u'certificate_file': u'/home/vagrant/cert/example.crt', u'certificate_key_file': u'/home/vagrant/cert/example.key', u'documentroot': u'/var/www/test/docroot'})

TASK [geerlingguy.apache : Add apache vhosts configuration.] *******************
changed: [test-dev-vm]

TASK [geerlingguy.apache : Add vhost symlink in sites-enabled.] ****************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Remove default vhost in sites-enabled.] *************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Ensure Apache has selected state and enabled on boot.] ***
ok: [test-dev-vm]

TASK [geerlingguy.apache : Include OS-specific variables.] *********************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Define apache_packages.] ****************************
skipping: [test-dev-vm]

TASK [geerlingguy.apache : include] ********************************************
included: /vagrant/provisioning/roles/geerlingguy.apache/tasks/setup-Debian.yml for test-dev-vm

TASK [geerlingguy.apache : Update apt cache.] **********************************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Ensure Apache is installed on Debian.] **************
ok: [test-dev-vm] => (item=[u'apache2', u'apache2-utils'])

TASK [geerlingguy.apache : Get installed version of Apache.] *******************
[DEPRECATION WARNING]: always_run is deprecated. Use check_mode = no instead..

This feature will be removed in version 2.4. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [test-dev-vm]

TASK [geerlingguy.apache : Create apache_version variable.] ********************
ok: [test-dev-vm]

TASK [geerlingguy.apache : include_vars] ***************************************
skipping: [test-dev-vm]

TASK [geerlingguy.apache : include_vars] ***************************************
ok: [test-dev-vm]

TASK [geerlingguy.apache : include] ********************************************
included: /vagrant/provisioning/roles/geerlingguy.apache/tasks/configure-Debian.yml for test-dev-vm

TASK [geerlingguy.apache : Configure Apache.] **********************************
ok: [test-dev-vm] => (item={u'regexp': u'^Listen ', u'line': u'Listen 80'})

TASK [geerlingguy.apache : Enable Apache mods.] ********************************
ok: [test-dev-vm] => (item=expires.load)
ok: [test-dev-vm] => (item=ssl.load)
ok: [test-dev-vm] => (item=rewrite.load)
ok: [test-dev-vm] => (item=proxy.load)
ok: [test-dev-vm] => (item=proxy_fcgi.load)

TASK [geerlingguy.apache : Disable Apache mods.] *******************************

TASK [geerlingguy.apache : Check whether certificates defined in vhosts exist.] 
ok: [test-dev-vm] => (item={u'extra_parameters': u'ProxyPassMatch ^/(.*\\.php(/.*)?)$ "fcgi://127.0.0.1:9000/var/www/test/docroot"\n', u'servername': u'test.me', u'certificate_file': u'/home/vagrant/cert/example.crt', u'certificate_key_file': u'/home/vagrant/cert/example.key', u'documentroot': u'/var/www/test/docroot'})

TASK [geerlingguy.apache : Add apache vhosts configuration.] *******************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Add vhost symlink in sites-enabled.] ****************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Remove default vhost in sites-enabled.] *************
ok: [test-dev-vm]

TASK [geerlingguy.apache : Ensure Apache has selected state and enabled on boot.] ***
ok: [test-dev-vm]

TASK [geerlingguy.apache-php-fpm : Enable mod_proxy_fcgi.] *********************
ok: [test-dev-vm] => (item=proxy.load)
ok: [test-dev-vm] => (item=proxy_fcgi.load)

TASK [geerlingguy.nginx : Include OS-specific variables.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Define nginx_user.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Enable nginx repo.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Ensure nginx is installed.] **************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Add PPA for Nginx.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Ensure nginx will reinstall if the PPA was just added.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Update apt cache.] ***********************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Ensure nginx is installed.] **************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Update pkg cache.] ***********************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Ensure nginx is installed.] **************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Create logs directory.] ******************************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Remove default nginx vhost config file (if configured).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Ensure nginx_vhost_path exists.] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Add managed vhost config file (if any vhosts are configured).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Remove managed vhost config file (if no vhosts are configured).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Copy nginx configuration in place.] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.nginx : Ensure nginx is started and enabled to start at boot.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.php : Include OS-specific variables.] ************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Define php_packages.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Define php_webserver_daemon.] **************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Define php_conf_paths.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Define php_extension_conf_paths.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Define php_apc_conf_filename.] *************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Define php_opcache_conf_filename (Ubuntu 16.04).] ******
ok: [test-dev-vm]

TASK [geerlingguy.php : Define php_opcache_conf_filename.] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Define php_fpm_conf_path.] *****************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : include] ***********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : include] ***********************************************
included: /vagrant/provisioning/roles/geerlingguy.php/tasks/setup-Debian.yml for test-dev-vm

TASK [geerlingguy.php : Update apt cache.] *************************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Ensure PHP packages are installed.] ********************
ok: [test-dev-vm] => (item=[u'php5.6', u'php5.6-apcu', u'php5.6-cli', u'php5.6-common', u'php5.6-curl', u'php5.6-dev', u'php5.6-fpm', u'php5.6-gd', u'php5.6-imap', u'php5.6-json', u'php5.6-mbstring', u'php5.6-mcrypt', u'php5.6-opcache', u'php5.6-sqlite3', u'php5.6-xml'])

TASK [geerlingguy.php : Delete APCu configuration file if this role will provide one.] ***
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.php : Delete OpCache configuration file if this role will provide one.] ***
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.php : include] ***********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : include] ***********************************************
included: /vagrant/provisioning/roles/geerlingguy.php/tasks/configure.yml for test-dev-vm

TASK [geerlingguy.php : Ensure configuration directories exist.] ***************
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli)
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d)

TASK [geerlingguy.php : Place PHP configuration file in place.] ****************
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli)

TASK [geerlingguy.php : include] ***********************************************
included: /vagrant/provisioning/roles/geerlingguy.php/tasks/configure-apcu.yml for test-dev-vm

TASK [geerlingguy.php : Check for existing APCu config files.] *****************
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d)

TASK [geerlingguy.php : Remove any non-role-supplied APCu config files.] *******
skipping: [test-dev-vm] => (item=({'_ansible_parsed': True, u'changed': False, '_ansible_no_log': False, '_ansible_item_result': True, 'item': u'/etc/php/5.6/fpm/conf.d', u'examined': 42, 'invocation': {'module_name': u'find', u'module_args': {u'paths': [u'/etc/php/5.6/fpm/conf.d'], u'file_type': u'file', u'age': None, u'contains': u'extension(\\s+)?=(\\s+)?apc[u]?\\.so', u'recurse': False, u'age_stamp': u'mtime', u'patterns': [u'*'], u'get_checksum': False, u'use_regex': False, u'follow': False, u'hidden': False, u'size': None}}, u'matched': 1, u'msg': u''}, {u'uid': 0, u'woth': False, u'mtime': 1482420910.3056269, u'inode': 1310757, u'isgid': False, u'size': 66, u'isuid': False, u'isreg': True, u'gid': 0, u'ischr': False, u'wusr': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/etc/php/5.6/fpm/conf.d/20-apcu.ini', u'xusr': False, u'atime': 1484228341.981009, u'isdir': False, u'ctime': 1482420910.3736608, u'isblk': False, u'wgrp': False, u'xgrp': False, u'dev': 64512, u'roth': True, u'isfifo': False, u'mode': u'0644', u'rusr': True})) 
skipping: [test-dev-vm] => (item=({'_ansible_parsed': True, u'changed': False, '_ansible_no_log': False, '_ansible_item_result': True, 'item': u'/etc/php/5.6/apache2/conf.d', u'examined': 3, 'invocation': {'module_name': u'find', u'module_args': {u'paths': [u'/etc/php/5.6/apache2/conf.d'], u'file_type': u'file', u'age': None, u'contains': u'extension(\\s+)?=(\\s+)?apc[u]?\\.so', u'recurse': False, u'age_stamp': u'mtime', u'patterns': [u'*'], u'get_checksum': False, u'use_regex': False, u'follow': False, u'hidden': False, u'size': None}}, u'matched': 1, u'msg': u''}, {u'uid': 0, u'woth': False, u'mtime': 1482420910.4777129, u'inode': 1310758, u'isgid': False, u'size': 66, u'isuid': False, u'isreg': True, u'gid': 0, u'ischr': False, u'wusr': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/etc/php/5.6/apache2/conf.d/20-apcu.ini', u'xusr': False, u'atime': 1484228341.969009, u'isdir': False, u'ctime': 1482420910.541745, u'isblk': False, u'wgrp': False, u'xgrp': False, u'dev': 64512, u'roth': True, u'isfifo': False, u'mode': u'0644', u'rusr': True})) 
skipping: [test-dev-vm] => (item=({'_ansible_parsed': True, u'changed': False, '_ansible_no_log': False, '_ansible_item_result': True, 'item': u'/etc/php/5.6/cli/conf.d', u'examined': 42, 'invocation': {'module_name': u'find', u'module_args': {u'paths': [u'/etc/php/5.6/cli/conf.d'], u'file_type': u'file', u'age': None, u'contains': u'extension(\\s+)?=(\\s+)?apc[u]?\\.so', u'recurse': False, u'age_stamp': u'mtime', u'patterns': [u'*'], u'get_checksum': False, u'use_regex': False, u'follow': False, u'hidden': False, u'size': None}}, u'matched': 1, u'msg': u''}, {u'uid': 0, u'woth': False, u'mtime': 1482420910.6497989, u'inode': 1310759, u'isgid': False, u'size': 66, u'isuid': False, u'isreg': True, u'gid': 0, u'ischr': False, u'wusr': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/etc/php/5.6/cli/conf.d/20-apcu.ini', u'xusr': False, u'atime': 1484228342.009009, u'isdir': False, u'ctime': 1482420910.7178328, u'isblk': False, u'wgrp': False, u'xgrp': False, u'dev': 64512, u'roth': True, u'isfifo': False, u'mode': u'0644', u'rusr': True})) 

TASK [geerlingguy.php : Ensure APCu config file is present.] *******************
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d)

TASK [geerlingguy.php : Remove APCu config file if APC is disabled.] ***********
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.php : include] ***********************************************
included: /vagrant/provisioning/roles/geerlingguy.php/tasks/configure-opcache.yml for test-dev-vm

TASK [geerlingguy.php : Check for existing OpCache config files.] **************
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d)

TASK [geerlingguy.php : Remove any non-role-supplied OpCache config files.] ****
skipping: [test-dev-vm] => (item=({'_ansible_parsed': True, u'changed': False, '_ansible_no_log': False, '_ansible_item_result': True, 'item': u'/etc/php/5.6/fpm/conf.d', u'examined': 42, 'invocation': {'module_name': u'find', u'module_args': {u'paths': [u'/etc/php/5.6/fpm/conf.d'], u'file_type': u'file', u'age': None, u'contains': u'zend_extension(\\s+)?=(\\s+)?opcache\\.so', u'recurse': False, u'age_stamp': u'mtime', u'patterns': [u'*'], u'get_checksum': False, u'use_regex': False, u'follow': False, u'hidden': False, u'size': None}}, u'matched': 1, u'msg': u''}, {u'uid': 0, u'woth': False, u'mtime': 1482420911.430189, u'inode': 1310760, u'isgid': False, u'size': 303, u'isuid': False, u'isreg': True, u'gid': 0, u'ischr': False, u'wusr': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/etc/php/5.6/fpm/conf.d/10-opcache.ini', u'xusr': False, u'atime': 1484228341.981009, u'isdir': False, u'ctime': 1482420911.494221, u'isblk': False, u'wgrp': False, u'xgrp': False, u'dev': 64512, u'roth': True, u'isfifo': False, u'mode': u'0644', u'rusr': True})) 
skipping: [test-dev-vm] => (item=({'_ansible_parsed': True, u'changed': False, '_ansible_no_log': False, '_ansible_item_result': True, 'item': u'/etc/php/5.6/apache2/conf.d', u'examined': 3, 'invocation': {'module_name': u'find', u'module_args': {u'paths': [u'/etc/php/5.6/apache2/conf.d'], u'file_type': u'file', u'age': None, u'contains': u'zend_extension(\\s+)?=(\\s+)?opcache\\.so', u'recurse': False, u'age_stamp': u'mtime', u'patterns': [u'*'], u'get_checksum': False, u'use_regex': False, u'follow': False, u'hidden': False, u'size': None}}, u'matched': 1, u'msg': u''}, {u'uid': 0, u'woth': False, u'mtime': 1482420911.5982728, u'inode': 1310761, u'isgid': False, u'size': 303, u'isuid': False, u'isreg': True, u'gid': 0, u'ischr': False, u'wusr': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/etc/php/5.6/apache2/conf.d/10-opcache.ini', u'xusr': False, u'atime': 1484228341.969009, u'isdir': False, u'ctime': 1482420911.666307, u'isblk': False, u'wgrp': False, u'xgrp': False, u'dev': 64512, u'roth': True, u'isfifo': False, u'mode': u'0644', u'rusr': True})) 
skipping: [test-dev-vm] => (item=({'_ansible_parsed': True, u'changed': False, '_ansible_no_log': False, '_ansible_item_result': True, 'item': u'/etc/php/5.6/cli/conf.d', u'examined': 42, 'invocation': {'module_name': u'find', u'module_args': {u'paths': [u'/etc/php/5.6/cli/conf.d'], u'file_type': u'file', u'age': None, u'contains': u'zend_extension(\\s+)?=(\\s+)?opcache\\.so', u'recurse': False, u'age_stamp': u'mtime', u'patterns': [u'*'], u'get_checksum': False, u'use_regex': False, u'follow': False, u'hidden': False, u'size': None}}, u'matched': 1, u'msg': u''}, {u'uid': 0, u'woth': False, u'mtime': 1482420911.7703588, u'inode': 1310762, u'isgid': False, u'size': 303, u'isuid': False, u'isreg': True, u'gid': 0, u'ischr': False, u'wusr': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/etc/php/5.6/cli/conf.d/10-opcache.ini', u'xusr': False, u'atime': 1484228342.009009, u'isdir': False, u'ctime': 1482420911.8343909, u'isblk': False, u'wgrp': False, u'xgrp': False, u'dev': 64512, u'roth': True, u'isfifo': False, u'mode': u'0644', u'rusr': True})) 

TASK [geerlingguy.php : Ensure OpCache config file is present.] ****************
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d)

TASK [geerlingguy.php : Remove OpCache config file if OpCache is disabled.] ****
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.php : include] ***********************************************
included: /vagrant/provisioning/roles/geerlingguy.php/tasks/configure-fpm.yml for test-dev-vm

TASK [geerlingguy.php : Define php_fpm_daemon.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Define php_fpm_pool_conf_path.] ************************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Define php_fpm_pool_user.] *****************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Define php_fpm_pool_group.] ****************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Stat php_fpm_pool_conf_path] ***************************
ok: [test-dev-vm]

TASK [geerlingguy.php : Ensure the default pool directory exists.] *************
skipping: [test-dev-vm]

TASK [geerlingguy.php : Ensure the default pool exists.] ***********************
ok: [test-dev-vm]

TASK [geerlingguy.php : Configure php-fpm pool (if enabled).] ******************
ok: [test-dev-vm] => (item={u'regexp': u'^user.?=.+$', u'line': u'user = www-data'})
ok: [test-dev-vm] => (item={u'regexp': u'^group.?=.+$', u'line': u'group = www-data'})
ok: [test-dev-vm] => (item={u'regexp': u'^listen.?=.+$', u'line': u'listen = 127.0.0.1:9000'})
ok: [test-dev-vm] => (item={u'regexp': u'^listen\\.allowed_clients.?=.+$', u'line': u'listen.allowed_clients = 127.0.0.1'})
ok: [test-dev-vm] => (item={u'regexp': u'^pm\\.max_children.?=.+$', u'line': u'pm.max_children = 50'})
ok: [test-dev-vm] => (item={u'regexp': u'^pm\\.start_servers.?=.+$', u'line': u'pm.start_servers = 5'})
ok: [test-dev-vm] => (item={u'regexp': u'^pm\\.min_spare_servers.?=.+$', u'line': u'pm.min_spare_servers = 5'})
ok: [test-dev-vm] => (item={u'regexp': u'^pm\\.max_spare_servers.?=.+$', u'line': u'pm.max_spare_servers = 5'})

TASK [geerlingguy.php : Ensure php-fpm is started and enabled at boot (if configured).] ***
ok: [test-dev-vm]

TASK [geerlingguy.php-pecl : Install PECL libaries.] ***************************

TASK [geerlingguy.composer : Set php_executable variable to a default if not defined.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.composer : Check if Composer is installed.] ******************
ok: [test-dev-vm]

TASK [geerlingguy.composer : Download Composer installer.] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.composer : Run Composer installer.] **************************
skipping: [test-dev-vm]

TASK [geerlingguy.composer : Move Composer into globally-accessible location.] *
skipping: [test-dev-vm]

TASK [geerlingguy.composer : Update Composer to latest version (if configured).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.composer : Ensure composer directory exists.] ****************
ok: [test-dev-vm]

TASK [geerlingguy.composer : Add GitHub OAuth token for Composer (if configured).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.composer : Install configured globally-required packages.] ***
ok: [test-dev-vm] => (item={u'release': u'^0.3', u'name': u'hirak/prestissimo'})

TASK [geerlingguy.composer : Add composer_home_path bin directory to global $PATH.] ***
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Include OS-specific variables.] **********************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Include OS-specific variables (RedHat).] *************
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_packages.] ******************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_daemon.] ********************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_slow_query_log_file.] *******************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_log_error.] *****************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_syslog_tag.] ****************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_pid_file.] ******************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_config_file.] ***************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_config_include_dir.] ********************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_socket.] ********************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Define mysql_supports_innodb_large_prefix.] **********
ok: [test-dev-vm]

TASK [geerlingguy.mysql : include] *********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : include] *********************************************
included: /vagrant/provisioning/roles/geerlingguy.mysql/tasks/setup-Debian.yml for test-dev-vm

TASK [geerlingguy.mysql : Check if MySQL is already installed.] ****************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Update apt cache if MySQL is not yet installed.] *****
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Ensure MySQL Python libraries are installed.] ********
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Ensure MySQL packages are installed.] ****************
ok: [test-dev-vm] => (item=[u'mysql-common', u'mysql-server'])

TASK [geerlingguy.mysql : Ensure MySQL is stopped after initial install.] ******
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Delete innodb log files created by apt package after initial install.] ***
skipping: [test-dev-vm] => (item=ib_logfile0) 
skipping: [test-dev-vm] => (item=ib_logfile1) 

TASK [geerlingguy.mysql : Check if MySQL packages were installed.] *************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Copy my.cnf global MySQL configuration.] *************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Verify mysql include directory exists.] **************
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Copy my.cnf override files into include directory.] **

TASK [geerlingguy.mysql : Create slow query log file (if configured).] *********
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Create datadir if it does not exist] *****************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Set ownership on slow query log file (if configured).] ***
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Create error log file (if configured).] **************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Set ownership on error log file (if configured).] ****
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Ensure MySQL is started and enabled on boot.] ********
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Get MySQL version.] **********************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Disallow root login remotely] ************************
ok: [test-dev-vm] => (item=DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'))

TASK [geerlingguy.mysql : Get list of hosts for the root user.] ****************
[DEPRECATION WARNING]: always_run is deprecated. Use check_mode = no instead..

This feature will be removed in version 2.4. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Update MySQL root password for localhost root account (5.7.x).] ***
skipping: [test-dev-vm] => (item=localhost) 

TASK [geerlingguy.mysql : Update MySQL root password for localhost root account (< 5.7.x).] ***
skipping: [test-dev-vm] => (item=localhost) 

TASK [geerlingguy.mysql : Copy .my.cnf file with root password credentials.] ***
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Get list of hosts for the anonymous user.] ***********
[DEPRECATION WARNING]: always_run is deprecated. Use check_mode = no instead..

This feature will be removed in version 2.4. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Remove anonymous MySQL users.] ***********************

TASK [geerlingguy.mysql : Remove MySQL test database.] *************************
ok: [test-dev-vm]

TASK [geerlingguy.mysql : Ensure MySQL databases are present.] *****************
ok: [test-dev-vm] => (item={u'collation': u'utf8mb4_general_ci', u'name': u'test_init_testing', u'encoding': u'utf8mb4'})

TASK [geerlingguy.mysql : Ensure MySQL users are present.] *********************
ok: [test-dev-vm] => (item=(censored due to no_log))

TASK [geerlingguy.mysql : Ensure replication user exists on master.] ***********
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Check slave replication status.] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Check master replication status.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Configure replication on the slave.] *****************
skipping: [test-dev-vm]

TASK [geerlingguy.mysql : Start replication.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.php-mysql : Include OS-specific variables.] ******************
ok: [test-dev-vm]

TASK [geerlingguy.php-mysql : Define php_mysql_package.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.php-mysql : Install PHP MySQL dependencies (RedHat).] ********
skipping: [test-dev-vm]

TASK [geerlingguy.php-mysql : Install PHP MySQL dependencies (Debian).] ********
ok: [test-dev-vm]

TASK [geerlingguy.postgresql : include] ****************************************
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : include] ****************************************
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : include] ****************************************
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : Set PostgreSQL environment variables.] **********
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : Ensure PostgreSQL data directory exists.] *******
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : Check if PostgreSQL database is initialized.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : Ensure PostgreSQL database is initialized.] *****
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : Configure global settings.] *********************
skipping: [test-dev-vm] => (item={u'option': u'unix_socket_directories', u'value': u'/var/run/postgresql'}) 

TASK [geerlingguy.postgresql : Ensure PostgreSQL unix socket dirs exist.] ******
skipping: [test-dev-vm] => (item=/var/run/postgresql) 

TASK [geerlingguy.postgresql : Ensure PostgreSQL is started and enabled on boot.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.postgresql : Ensure PostgreSQL databases are present.] *******
skipping: [test-dev-vm] => (item={u'name': u'test_init_testing'}) 

TASK [geerlingguy.postgresql : Ensure PostgreSQL users are present.] ***********
skipping: [test-dev-vm] => (item=(censored due to no_log)) 

TASK [geerlingguy.php-pgsql : Include OS-specific variables.] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.php-pgsql : Define php_pgsql_package.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.php-pgsql : Install PHP PostgreSQL dependencies (RedHat).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.php-pgsql : Install PHP PostgreSQL dependencies (Debian).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.drupal-console : Install Drupal Console.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.drupal-console : Ensure Drupal Console is executable.] *******
skipping: [test-dev-vm]

TASK [geerlingguy.drupal-console : Run Drupal Console init.] *******************
skipping: [test-dev-vm]

TASK [geerlingguy.drupal-console : Update Drupal Console to latest version (if configured).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.drush : Clone Drush from GitHub.] ****************************
ok: [test-dev-vm]

TASK [geerlingguy.drush : Check for composer.json] *****************************
ok: [test-dev-vm]

TASK [geerlingguy.drush : Ensure Drush can be installed on Debian Wheezy.] *****
skipping: [test-dev-vm]

TASK [geerlingguy.drush : Install Drush dependencies with Composer.] ***********
skipping: [test-dev-vm]

TASK [geerlingguy.drush : Create drush symlink.] *******************************
ok: [test-dev-vm]

TASK [geerlingguy.drush : Run drush to finish setting it up.] ******************
ok: [test-dev-vm]

TASK [geerlingguy.memcached : Include OS-specific variables.] ******************
ok: [test-dev-vm]

TASK [geerlingguy.memcached : Define memcached_user.] **************************
ok: [test-dev-vm]

TASK [geerlingguy.memcached : Update apt cache.] *******************************
ok: [test-dev-vm]

TASK [geerlingguy.memcached : Install Memcached.] ******************************
ok: [test-dev-vm]

TASK [geerlingguy.memcached : Copy Memcached configuration.] *******************
ok: [test-dev-vm]

TASK [geerlingguy.memcached : Ensure Memcached is started and set to run on startup.] ***
ok: [test-dev-vm]

TASK [geerlingguy.php-memcached : Include OS-specific variables.] **************
ok: [test-dev-vm]

TASK [geerlingguy.php-memcached : Define php_memcached_package.] ***************
skipping: [test-dev-vm]

TASK [geerlingguy.php-memcached : Install PHP Memcached extension (RedHat).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.php-memcached : Install PHP Memcached extension (Debian).] ***
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Include OS-specific variables.] *****************
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Define php_xdebug_module_path.] *****************
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Define php_xdebug_config_filename.] *************
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Ensure dependencies for building from source are installed (RedHat).] ***
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.php-xdebug : Ensure dependencies for building from source are installed (Debian).] ***
ok: [test-dev-vm] => (item=[u'build-essential'])

TASK [geerlingguy.php-xdebug : Untar Xdebug.] **********************************
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Build Xdebug.] **********************************
ok: [test-dev-vm] => (item=phpize)
ok: [test-dev-vm] => (item=./configure)
ok: [test-dev-vm] => (item=make)

TASK [geerlingguy.php-xdebug : Ensure Xdebug module path exists.] **************
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Move Xdebug module into place.] *****************
ok: [test-dev-vm]

TASK [geerlingguy.php-xdebug : Copy xdebug ini into main extension config folder.] ***
ok: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d)
ok: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d)

TASK [geerlingguy.php-xhprof : Include OS-specific variables.] *****************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Define php_xhprof_module_path.] *****************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Define php_xhprof_config_filename.] *************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Ensure dependencies for installing XHProf are present.] ***
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.php-xhprof : Download and untar XHProf.] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Build XHProf.] **********************************
skipping: [test-dev-vm] => (item=phpize) 
skipping: [test-dev-vm] => (item=./configure) 
skipping: [test-dev-vm] => (item=make) 

TASK [geerlingguy.php-xhprof : Ensure XHProf module path exists.] **************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Move XHProf module into place.] *****************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Move XHProf PHP library into place.] ************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Move XHProf UI into place.] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.php-xhprof : Ensure PHP configuration directories exist.] ****
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.php-xhprof : Copy XHProf INI into various other conf folders.] ***
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.php-xhprof : Ensure XHProf output directory exists.] *********
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Include OS-specific variables.] **************
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Define php_uploadprogress_module_path.] ******
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Define php_uploadprogress_config_filename.] **
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Download and untar uploadprogress.] **********
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Build uploadprogress.] ***********************
skipping: [test-dev-vm] => (item=phpize) 
skipping: [test-dev-vm] => (item=./configure) 
skipping: [test-dev-vm] => (item=make) 

TASK [thom8.php-upload-progress : Ensure uploadprogress module path exists.] ***
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Move uploadprogress module into place.] ******
skipping: [test-dev-vm]

TASK [thom8.php-upload-progress : Add php extension config for uploadprogress.] 
skipping: [test-dev-vm] => (item=/etc/php/5.6/fpm/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/apache2/conf.d) 
skipping: [test-dev-vm] => (item=/etc/php/5.6/cli/conf.d) 

TASK [geerlingguy.blackfire : Add packagecloud GPG key.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.blackfire : Add Blackfire repository.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.blackfire : Disable gpg_repocheck for non-bleeding-edge CentOS.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.blackfire : Add packagecloud apt key.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.blackfire : Add packagecloud repository.] ********************
skipping: [test-dev-vm] => (item=deb http://packages.blackfire.io/debian any main) 

TASK [geerlingguy.blackfire : Update apt caches after repo is added.] **********
skipping: [test-dev-vm]

TASK [geerlingguy.blackfire : Ensure Blackfire packages are installed.] ********
skipping: [test-dev-vm]

TASK [geerlingguy.adminer : Ensure Adminer directory exists.] ******************
ok: [test-dev-vm]

TASK [geerlingguy.adminer : Download Adminer to configured directory.] *********
ok: [test-dev-vm]

TASK [geerlingguy.adminer : Symlink Adminer into configured directories.] ******

TASK [geerlingguy.adminer : Set the proper Apache configuration directory (Debian).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.adminer : Add Apache configuration file for Adminer (Debian).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.adminer : Add Apache configuration file for Adminer (RedHat).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.pimpmylog : Clone Pimp my Log.] ******************************
ok: [test-dev-vm]

TASK [geerlingguy.pimpmylog : Grant all privileges on the Pimp my Log directory.] ***
ok: [test-dev-vm]

TASK [geerlingguy.daemonize : Download daemonize archive.] *********************
ok: [test-dev-vm]

TASK [geerlingguy.daemonize : Expand daemonize archive.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.daemonize : Check if daemonize is installed.] ****************
ok: [test-dev-vm]

TASK [geerlingguy.daemonize : Build daemonize.] ********************************
skipping: [test-dev-vm] => (item=./configure --prefix=/usr) 
skipping: [test-dev-vm] => (item=make) 
skipping: [test-dev-vm] => (item=make install) 

TASK [geerlingguy.daemonize : Download daemonize archive.] *********************
ok: [test-dev-vm]

TASK [geerlingguy.daemonize : Expand daemonize archive.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.daemonize : Check if daemonize is installed.] ****************
ok: [test-dev-vm]

TASK [geerlingguy.daemonize : Build daemonize.] ********************************
skipping: [test-dev-vm] => (item=make) 
skipping: [test-dev-vm] => (item=./configure --prefix=/usr) 
skipping: [test-dev-vm] => (item=make install) 

TASK [geerlingguy.mailhog : Ensure mailhog install directory exists.] **********
ok: [test-dev-vm]

TASK [geerlingguy.mailhog : Download MailHog and mhsendmail binaries.] *********
ok: [test-dev-vm] => (item={u'url': u'https://github.com/mailhog/MailHog/releases/download/v0.2.0/MailHog_linux_amd64', u'dest': u'/opt/mailhog/mailhog'})
ok: [test-dev-vm] => (item={u'url': u'https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64', u'dest': u'/opt/mailhog/mhsendmail'})

TASK [geerlingguy.mailhog : Copy mailhog init script into place.] **************
ok: [test-dev-vm]

TASK [geerlingguy.mailhog : Copy mailhog systemd unit file into place (for systemd systems).] ***
ok: [test-dev-vm]

TASK [geerlingguy.mailhog : Ensure mailhog is enabled and will start on boot.] *
ok: [test-dev-vm]

TASK [franklinkim.newrelic : Checking for key] *********************************
skipping: [test-dev-vm]

TASK [franklinkim.newrelic : Installing dependencies] **************************
skipping: [test-dev-vm]

TASK [franklinkim.newrelic : Adding APT key] ***********************************
skipping: [test-dev-vm]

TASK [franklinkim.newrelic : Add APT repository] *******************************
skipping: [test-dev-vm]

TASK [franklinkim.newrelic : Installing packages] ******************************
skipping: [test-dev-vm] => (item=[]) 

TASK [franklinkim.newrelic : Installing dependencies] **************************
skipping: [test-dev-vm]

TASK [franklinkim.newrelic : Installing packages] ******************************
skipping: [test-dev-vm] => (item=[]) 

TASK [franklinkim.newrelic : Configuring module] *******************************
skipping: [test-dev-vm] => (item=etc/newrelic/nrsysmond.cfg) 

TASK [franklinkim.newrelic : Configuring user groups] **************************
skipping: [test-dev-vm]

TASK [franklinkim.newrelic : Configuring service] ******************************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Set up the Nodesource RPM directory for Node.js > 0.10.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Set up the Nodesource RPM variable for Node.js == 0.10.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Import Nodesource RPM key.] *************************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Add Nodesource repositories for Node.js.] ***********
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Ensure Node.js and npm are installed.] **************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Ensure apt-transport-https is installed.] ***********
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Add Nodesource apt key.] ****************************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Add NodeSource repositories for Node.js.] ***********
skipping: [test-dev-vm] => (item=deb https://deb.nodesource.com/node_0.12 xenial main) 
skipping: [test-dev-vm] => (item=deb-src https://deb.nodesource.com/node_0.12 xenial main) 

TASK [geerlingguy.nodejs : Update apt cache if repo was added.] ****************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Ensure Node.js and npm are installed.] **************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Define nodejs_install_npm_user] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Create npm global directory] ************************
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Add npm_config_prefix bin directory to global $PATH.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.nodejs : Ensure npm global packages are installed.] **********

TASK [geerlingguy.nodejs : Ensure npm global packages are at the latest release.] ***

TASK [geerlingguy.redis : Include OS-specific variables.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.redis : Ensure redis is installed.] **************************
skipping: [test-dev-vm]

TASK [geerlingguy.redis : Ensure redis is installed.] **************************
skipping: [test-dev-vm]

TASK [geerlingguy.redis : Ensure Redis is configured.] *************************
skipping: [test-dev-vm]

TASK [geerlingguy.redis : Ensure redis is running and enabled on boot.] ********
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Include OS-specific variables.] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Define php_redis_package.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Install PhpRedis extension (RedHat).] ************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Install PhpRedis extension (Debian).] ************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Clone the PhpRedis repo.] ************************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Run phpize.] *************************************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Run configure script.] ***************************
skipping: [test-dev-vm]

TASK [geerlingguy.php-redis : Make and install PHP.] ***************************
skipping: [test-dev-vm] => (item=make) 
skipping: [test-dev-vm] => (item=make install) 

TASK [geerlingguy.php-redis : Ensure the Redis extension is present in PHP's configuration.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Install ruby and rubygems.] ***************************
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.ruby : Update apt cache.] ************************************
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Set rubygems package name for Ubuntu 14.04.] **********
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Install ruby and rubygems.] ***************************
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.ruby : Install packages required to build ruby (RedHat).] ****
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.ruby : Update apt cache (Debian).] ***************************
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Install packages required to build ruby (Debian).] ****
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.ruby : Download ruby.] ***************************************
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Extract ruby.] ****************************************
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Build ruby.] ******************************************
skipping: [test-dev-vm] => (item=./configure --enable-shared) 
skipping: [test-dev-vm] => (item=make) 
skipping: [test-dev-vm] => (item=sudo make install) 

TASK [geerlingguy.ruby : Add ruby symlinks.] ***********************************
skipping: [test-dev-vm] => (item=erb) 
skipping: [test-dev-vm] => (item=gem) 
skipping: [test-dev-vm] => (item=irb) 
skipping: [test-dev-vm] => (item=rake) 
skipping: [test-dev-vm] => (item=rdoc) 
skipping: [test-dev-vm] => (item=ruby) 

TASK [geerlingguy.ruby : Install Bundler.] *************************************
skipping: [test-dev-vm]

TASK [geerlingguy.ruby : Install configured gems.] *****************************

TASK [geerlingguy.java : Include OS-specific variables.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.java : Include OS-specific variables for Fedora.] ************
skipping: [test-dev-vm]

TASK [geerlingguy.java : Include version-specific variables for Ubuntu.] *******
skipping: [test-dev-vm]

TASK [geerlingguy.java : Define java_packages.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : include] **********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : include] **********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : include] **********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : Set JAVA_HOME if configured.] *************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Include OS-Specific variables] ************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install dependencies] *********************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : create directory] *************************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Download Selenium] ************************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install FireFox (if configured)] **********************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install Chrome (if configured, Debian)] ***************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install Chrome (if configured, RedHat)] ***************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Get the latest release for chromedriver] **************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install chromedriver] *********************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install xvfb] *****************************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Install init script] **********************************
skipping: [test-dev-vm]

TASK [arknoll.selenium : Ensure selenium is running] ***************************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure solr_user group exists.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure solr_user exists.] *****************************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Set solr_filename for Solr 4+.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Set solr_filename for Solr 3.x.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Download Solr.] ***************************************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Expand Solr.] *****************************************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Check if Solr is already installed.] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Copy Solr into place.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure Solr install files are owned by the solr_user.] 
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Check if solr_home is already set up.] ****************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure solr_home directory exists.] *******************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Copy Solr example into solr_home.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Fix the example solrconfig.xml file.] *****************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure Solr home files are owned by the solr_user.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure log file is created and has proper permissions.] ***
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Copy solr init script into place.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure daemon is installed (Debian).] *****************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure lsof is present (RedHat).] *********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Run Solr installation script.] ************************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure solr is stopped (RHEL 7 workaround).] **********
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Run systemd daemon_reload (RHEL 7 workaround).] *******
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure solr is started and enabled on boot.] **********
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Check current list of Solr cores.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Ensure Solr conf directories exist.] ******************
skipping: [test-dev-vm] => (item=collection1) 

TASK [geerlingguy.solr : Ensure core configuration directories exist.] *********
skipping: [test-dev-vm] => (item=collection1) 

TASK [geerlingguy.solr : Create configured cores.] *****************************
skipping: [test-dev-vm] => (item=collection1) 

TASK [geerlingguy.solr : Remove existing SOLR_HEAP configuration.] *************
skipping: [test-dev-vm]

TASK [geerlingguy.solr : Apply Solr configuration changes.] ********************
skipping: [test-dev-vm] => (item={u'regexp': u'^.?SOLR_JAVA_MEM=', u'line': u'SOLR_JAVA_MEM="-Xms64M -Xmx128M"'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^SOLR_PORT=', u'line': u'SOLR_PORT="8983"'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^.?SOLR_TIMEZONE=', u'line': u'SOLR_TIMEZONE="UTC"'}) 

TASK [geerlingguy.java : Include OS-specific variables.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.java : Include OS-specific variables for Fedora.] ************
skipping: [test-dev-vm]

TASK [geerlingguy.java : Include version-specific variables for Ubuntu.] *******
skipping: [test-dev-vm]

TASK [geerlingguy.java : Define java_packages.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : include] **********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : include] **********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : include] **********************************************
skipping: [test-dev-vm]

TASK [geerlingguy.java : Set JAVA_HOME if configured.] *************************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Add Elasticsearch GPG key.] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Add Elasticsearch repository.] ***************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Install Elasticsearch.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Add Elasticsearch apt key.] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Add Elasticsearch repository.] ***************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Install Elasticsearch.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Configure Elasticsearch.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.elasticsearch : Start Elasticsearch.] ************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Include OS-specific variables.] ********************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Ensure Varnish dependencies are installed.] ********
skipping: [test-dev-vm] => (item=[]) 

TASK [geerlingguy.varnish : Add Varnish repository.] ***************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Set repo fact appropriately.] **********************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Install Varnish.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Ensure APT HTTPS Transport is installed.] **********
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Add Varnish apt key.] ******************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Add Varnish apt repository.] ***********************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Install Varnish.] **********************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Copy Varnish configuration (sysvinit).] ************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Copy Debian Jessie/Xenial specific Varnish configs (systemd).] ***
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Copy Varnish configuration (systemd).] *************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Ensure Varnish config path exists.] ****************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Copy Varnish default VCL.] *************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Copy varnish secret.] ******************************
skipping: [test-dev-vm]

TASK [geerlingguy.varnish : Ensure Varnish services are started enabled on startup.] ***
skipping: [test-dev-vm] => (item=varnish) 

TASK [geerlingguy.security : Include OS-specific variables.] *******************
skipping: [test-dev-vm]

TASK [geerlingguy.security : Install fail2ban.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.security : Install fail2ban.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.security : Ensure fail2ban is running and enabled on boot.] **
skipping: [test-dev-vm]

TASK [geerlingguy.security : Update SSH configuration to be more secure.] ******
skipping: [test-dev-vm] => (item={u'regexp': u'^PasswordAuthentication', u'line': u'PasswordAuthentication no'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^PermitRootLogin', u'line': u'PermitRootLogin no'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^Port', u'line': u'Port 22'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^ChallengeResponseAuthentication', u'line': u'ChallengeResponseAuthentication no'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^PermitEmptyPasswords', u'line': u'PermitEmptyPasswords no'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^UseDNS', u'line': u'UseDNS no'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^X11Forwarding', u'line': u'X11Forwarding no'}) 
skipping: [test-dev-vm] => (item={u'regexp': u'^GSSAPIAuthentication', u'line': u'GSSAPIAuthentication no'}) 

TASK [geerlingguy.security : Add configured user accounts to passwordless sudoers.] ***

TASK [geerlingguy.security : Add configured user accounts to passworded sudoers.] ***

TASK [geerlingguy.security : Install yum-cron.] ********************************
skipping: [test-dev-vm]

TASK [geerlingguy.security : Ensure yum-cron is running and enabled on boot.] **
skipping: [test-dev-vm]

TASK [geerlingguy.security : Configure autoupdates (RHEL 7).] ******************
skipping: [test-dev-vm]

TASK [geerlingguy.security : Install unattended upgrades package.] *************
skipping: [test-dev-vm]

TASK [geerlingguy.security : Copy unattended-upgrades configuration files in place.] ***
skipping: [test-dev-vm] => (item=10periodic) 
skipping: [test-dev-vm] => (item=50unattended-upgrades) 

TASK [Check if Drupal is already set up.] **************************************
ok: [test-dev-vm]

TASK [Define drupal_site_exists] ***********************************************
ok: [test-dev-vm]

TASK [Do not accept locale environment variables passed over SSH.] *************
ok: [test-dev-vm]

TASK [Check if local known_hosts file is present.] *****************************
ok: [test-dev-vm]

TASK [Copy known_hosts file from host into Drupal VM.] *************************
skipping: [test-dev-vm]

TASK [Set SSH home directory.] *************************************************
skipping: [test-dev-vm]

TASK [Install extra apt packages (if any are configured).] *********************
ok: [test-dev-vm] => (item=[u'sqlite'])

TASK [Install extra yum packages (if any are configured).] *********************
skipping: [test-dev-vm] => (item=[]) 

TASK [Ensure necessary groups exist.] ******************************************
ok: [test-dev-vm] => (item=admin)
ok: [test-dev-vm] => (item=dialout)

TASK [Ensure vagrant user is in admin group.] **********************************
ok: [test-dev-vm]

TASK [Ensure www-data user is in dialout group (Debian).] **********************
ok: [test-dev-vm]

TASK [Set nicer permissions on Apache log directory.] **************************
ok: [test-dev-vm]

TASK [Copy Nginx vhosts into place.] *******************************************
skipping: [test-dev-vm] => (item={u'is_php': True, u'root': u'/var/www/test/docroot', u'server_name': u'test.me www.test.me'}) 
skipping: [test-dev-vm] => (item={u'is_php': True, u'root': u'/opt/adminer', u'server_name': u'adminer.test.me'}) 
skipping: [test-dev-vm] => (item={u'is_php': True, u'root': u'/usr/share/php/xhprof_html', u'server_name': u'xhprof.test.me'}) 
skipping: [test-dev-vm] => (item={u'is_php': True, u'root': u'/usr/share/php/pimpmylog', u'server_name': u'pimpmylog.test.me'}) 
skipping: [test-dev-vm] => (item={u'root': u'/var/www/dashboard', u'server_name': u'192.168.88.89 dashboard.test.me'}) 

TASK [Detect if AppArmor is working.] ******************************************
ok: [test-dev-vm]
 [WARNING]: Consider using service module rather than running service

TASK [Ensure MySQL AppArmor profile is disabled (for slow query log).] *********
ok: [test-dev-vm]

TASK [Restart the AppArmor if necessary.] **************************************
skipping: [test-dev-vm]

TASK [Copy drush makefile into place.] *****************************************
skipping: [test-dev-vm]

TASK [Ensure drupal_core_path directory exists.] *******************************
skipping: [test-dev-vm]

TASK [Generate Drupal site with drush makefile.] *******************************
skipping: [test-dev-vm]

TASK [Check if a composer.json file is present.] *******************************
skipping: [test-dev-vm]

TASK [Run composer install if composer.json is present.] ***********************
skipping: [test-dev-vm]

TASK [Ensure drupal_composer_install_dir directory exists.] ********************
skipping: [test-dev-vm]

TASK [Copy composer.json into temporary location.] *****************************
skipping: [test-dev-vm]

TASK [Move composer.json into place.] ******************************************
skipping: [test-dev-vm]

TASK [Run composer install.] ***************************************************
skipping: [test-dev-vm]

TASK [Install dependencies with composer require.] *****************************

TASK [Ensure drupal_composer_install_dir directory has proper permissions.] ****
skipping: [test-dev-vm]

TASK [Generate Drupal project with composer package.] **************************
skipping: [test-dev-vm]

TASK [Install dependencies with composer require.] *****************************

TASK [Check if a project specific Drush binary exists.] ************************
ok: [test-dev-vm]

TASK [Use project specific Drush if available.] ********************************
skipping: [test-dev-vm]

TASK [Check if site is already installed.] *************************************
skipping: [test-dev-vm]

TASK [Configure database correctly if using PostgreSQL.] ***********************
skipping: [test-dev-vm]

TASK [Install Drupal with drush.] **********************************************
skipping: [test-dev-vm]

TASK [Install configured modules with drush.] **********************************
skipping: [test-dev-vm]

TASK [Shim for legacy configure_local_drush_aliases variable.] *****************
skipping: [test-dev-vm]

TASK [Check if local Drush configuration folder exists.] ***********************
ok: [test-dev-vm -> 127.0.0.1]

TASK [Create Drush configuration folder if it doesn't exist.] ******************
skipping: [test-dev-vm]

TASK [Configure host machine drush aliases.] ***********************************
changed: [test-dev-vm -> 127.0.0.1]

TASK [Ensure drush directory exists for vagrant user inside VM.] ***************
ok: [test-dev-vm]

TASK [Configure drush aliases for vagrant user inside VM.] *********************
changed: [test-dev-vm]

TASK [Ensure drush directory exists for root user inside VM.] ******************
ok: [test-dev-vm]

TASK [Configure drush aliases for root user inside VM.] ************************
ok: [test-dev-vm]

TASK [Ensure configured cron jobs exist in user account's crontab.] ************

TASK [Ensure the dashboard directory exists.] **********************************
ok: [test-dev-vm]

TASK [Copy dashboard page into place.] *****************************************
ok: [test-dev-vm]

TASK [Copy phpinfo file into place.] *******************************************
ok: [test-dev-vm]

TASK [Run configured post-provision shell scripts.] ****************************

TASK [Run configured post-provision ansible task files.] ***********************

RUNNING HANDLER [geerlingguy.apache : restart apache] **************************
changed: [test-dev-vm]

PLAY RECAP *********************************************************************
test-dev-vm                : ok=170  changed=6    unreachable=0    failed=0   
iefrati commented 7 years ago
<VirtualHost *:443>
  ServerName test.me
  DocumentRoot /var/www/test/docroot

  SSLEngine on
  SSLCipherSuite AES256+EECDH:AES256+EDH
  SSLProtocol All -SSLv2 -SSLv3
  SSLHonorCipherOrder On
  SSLCompression off
  SSLCertificateFile /home/vagrant/cert/example.crt
  SSLCertificateKeyFile /home/vagrant/cert/example.key

  <Directory "/var/www/test/docroot">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/var/www/test/docroot"

</VirtualHost>
iefrati commented 7 years ago

not sure why now it was added... , wonder if the example.crt/key had to have root permissions

oxyc commented 7 years ago

TASK [geerlingguy.apache : Add apache vhosts configuration.] *** changed: [test-dev-vm]

Is it working now?

iefrati commented 7 years ago

somewhat I now can access the site, but still getting the following mini error next to the certificate Certificate Error There are issues with the site's certificate chain (net::ERR_CERT_AUTHORITY_INVALID). View certificate

I guess it is because it is a local certificate that is not properly signed?

oxyc commented 7 years ago

Great! Yup, that's correct. It's because it's not signed properly.

As the vhost wasnt scaffolded it means the keys were not available when the provisioning first took place. Apparently the apache role silently ignores the vhost definition.

In your initial report you mentioned you generated the files within /vagrant directory. That's probably the cause then. The docs are not entirely clear on this but the keys should be generated on your host computer, before provisioning takes place. If you place them in the project directory (next to config.yml) they will by default be synced to the guest machine's /vagrant directory.

And this needs to be done before running vagrant up, otherwise they are not available when apache is configured. If you add them later on, you need to run vagrant provision, after which they should be detected and used to scaffold the vhost defitions.

_For documentation purposes, you could also set apache_ignore_missing_ssl_certificate: true inconfig.yml and the apache role will scaffold the vhosts regardless._

iefrati commented 7 years ago

thank you. Final question, any tips on how to properly signed local certificates (or is it out the scope of drupal-vm?)?

oxyc commented 7 years ago

@geerlingguy mentioned interest in adding support for letsencrypt but that probably wont happen for a while. It'll take some work but you could set it up yourself with eg https://github.com/geerlingguy/ansible-role-certbot

Maybe @geerlingguy (ping) has some better suggestions though...

npralhad commented 6 years ago

Earlier my vagrant setup was running properly but all sudden it started giving SSL related error in chrome but was working on Firefox. ~~~~ Your connection is not private Attackers might be trying to steal your information from xxxxxxxx.xxxxxxx.dev (for example, passwords, messages or credit cards). Learn more NET::ERR_CERT_AUTHORITY_INVALID ~~~~ Hostname of my vagrant box was xxxxxxxx.xxxxxxx.dev and according to this URL https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

I changed my vagrant box's hostname extention and it started working in Chrome too.