Skip to content
This repository has been archived by the owner on Sep 23, 2024. It is now read-only.

Commit

Permalink
Merge branch 'merge-upstream' into customized
Browse files Browse the repository at this point in the history
* merge-upstream: (82 commits)
  Use `auto_legacy` for `ansible_python_interpreter`
  Use `/usr/bin/python` for `ansible_python_interpreter`
  Issue geerlingguy#2025: Update Changelog for 5.2.0 release.
  Issue geerlingguy#2025: Mention new var to override for older linux versions.
  Issue geerlingguy#1675: Use custom drush bin.
  Issue geerlingguy#1675: Test postgresql configuration again.
  Fixed structure for python interpreter override.
  Finally get some python sanity.
  Pesky quoting.
  Pesky semicolons.
  More test follow-ups for python interpreter.
  Issue geerlingguy#2024 extra test fixes.
  Follow-up to geerlingguy#2024: Fix failing tests due to python interpreter.
  Fixes geerlingguy#2024: Fix chicken-and-egg ordering of postgresql database and user.
  Issue geerlingguy#2024: Update postgresql role to latest version.
  Update mysql role to latest version.
  Update php role to latest version.
  Fixes geerlingguy#1960: Use newer Solr version and make sure correct Java package is installed.
  Fix docs for composer-dependency use concerning drupal_enable_modules.
  Update php role to latest version.
  ...
  • Loading branch information
kentr committed Apr 12, 2020
2 parents 1f43f64 + a538a52 commit a1d8ad7
Show file tree
Hide file tree
Showing 324 changed files with 2,444 additions and 1,624 deletions.
4 changes: 4 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# These are supported funding model platforms

github: geerlingguy
patreon: geerlingguy
56 changes: 56 additions & 0 deletions .github/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Configuration for probot-stale - https://github.com/probot/stale

# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 90

# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 30

# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []

# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- pinned
- security
- planned

# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false

# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false

# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false

# Label to use when marking as stale
staleLabel: stale

# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30

pulls:
markComment: |-
This pull request has been marked 'stale' due to lack of recent activity. If there is no further activity, the PR will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark pull requests as stale.
unmarkComment: >-
This pull request is no longer marked for closure.
closeComment: >-
This pull request has been closed due to inactivity. If you feel this is in error, please reopen the pull request or file a new PR with the relevant details.
issues:
markComment: |-
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
unmarkComment: >-
This issue is no longer marked for closure.
closeComment: >-
This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
124 changes: 123 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,135 @@
# Drupal VM Changelog

## 5.2.0 "The Game Has Changed" (2020-03-20)

This release defaults to Python 3 for all Ansible-related tasks, which means some older OSes require a new variable to be overridden to work correctly. For most users, no change is required, however. The release also updates the order in which Postgresql updates

### Breaking Changes

* #2025: Ansible's Python interpreter now defaults to `python3` (was using default which was `python`).
* #2024: Postgresql database and user order of setup reversed, so users should not have 'db'/'priv' set, but database needs 'owner' set.
* #2025: Minimum required Ansible version is now 2.8.
* #2025: Minimum required Vagrant version is now 2.2.0.

### New/changed variables in default.config.yml

* `ansible_python_interpreter`: defaults to `/usr/bin/python3`, override to `/usr/bin/python` if using CentOS 7, Ubuntu 16.04, or Debian 9.
* `drupalvm_vagrant_version_min`: was `'1.8.6'`, now `'2.2.0'`.
* `drupalvm_ansible_version_min`: was `'2.5'`, now `'2.8'`.
* `postgresql_databases`: added `owner` parameter, set to `"{{ drupal_db_user }}"`
* `postgresql_users`: removed `db` and `priv` parameters.
* `solr_version`: was `"5.5.5"`, now `"7.7.2"`.
* `java_packages`: new variable, set to `openjdk-8-jdk` for Debian/Ubuntu, `java-1.8.0-openjdk` for RHEL/CentOS.

### Improvements

* #1960: Use latest Solr 7.x version for better install experience.
* #2025: Use Python 3 for Ansible on all the latest OSes.
* Updated roles: php-pecl, postgresql, php, mysql.

### Bugfixes

* #2024: Fix chicken-and-egg ordering of postgresql database and user ownership.
* #1675: Get CI tests for Postgresql working again.


## 5.1.1 (2020-02-27)

### Breaking Changes

* Removed 'official' support for CentOS 6 and Debian 8. These older OSes may still work, but [it would be extremely painful](https://www.youtube.com/watch?v=RZhp-Uctd-c) to keep using them.

### New/changed variables in default.config.yml

N/A

### Improvements

* Improved CentOS 8 compatibility.
* Updated roles: drupal, php-xdebug, php-xhprof, php-versions, java, security, nodejs, elasticsearch, firewall, varnish, blackfire, daemonize, mysql, postgresql, ruby, php-pecl

### Bugfixes

* #2011: Fix broken link in Solr documentation.


## 5.1.0 "Recognizer" (2019-12-03)

This release adds support for PHP 7.4, and completely drops PHP 5.6 support (in the past, brave and daring souls could attempt to run 5.6—it is almost impossible to do so in Drupal VM as of this release).

### Breaking Changes

* #1987: Minimum required Ansible version is now 2.5.
* #1993: Dropped support for old unsupported PHP versions: 5.6, 7.0, 7.1.

### New/changed variables in default.config.yml

* `drupalvm_ansible_version_min: '2.5'` (was `'2.4'`)
* `php_version` supports `"7.2"`, `"7.3"`, or `"7.4"` (5.6, 7.0, and 7.1 dropped)

### Improvements

* #1993: Add PHP 7.4 support. Drop 5.6, 7.0, and 7.1 support.
* Updated roles: mailhog, postgresql, php-versions.
* Update `config.yml` documentation to use modern PHP version.

### Bugfixes

N/A


## 5.0.2 (2019-11-04)

### Breaking Changes

N/A

### New/changed variables in default.config.yml

N/A

### Improvements

* #1982: Updated Dashboard to Boostrap 4 for improved accessibility.
* Updated various roles to ensure Ansible 2.9 compatibility.
* Tested Drupal VM on macOS Catalina with latest versions of Vagrant and VirtualBox.
* Updated roles: postgresql, firewall, git, php-versions, varnish

### Bugfixes

* #1969: Documentation typo fix for Linux installation.
* #1973: Fix site-install error in certain circumstances.


## 5.0.1 (2019-08-29)

### Breaking Changes

N/A

### New/changed variables in default.config.yml

N/A

### Improvements

* #1943: Update drupal console remote site example.
* Updated roles: php-versions, nginx, composer, postgresql, apache, git, mysql, solr, drupal.

### Bugfixes

* #1920: Update git sandbox URL for pareview script.
* #1953: Fix typo in Linux installation guide.
* #1963, #1903, #1962, #1964: Fix PHP version mismatch when switching versions from 7.2 to 7.1.


## 5.0.0 "Flynn Lives" (2019-04-09)

There are no major architectural changes in this release, which speaks to the current maturity of the Drupal VM platform; instead, this release focuses on updating all the default versions—most especially of the base OS to Ubuntu 18.04 'Bionic'. If you need to remain on Ubuntu 16.04 for now, please make sure you explicitly set `vagrant_box: geerlingguy/ubuntu1604` in your `config.yml`, or use a version of the `geerlingguy/drupal-vm` Vagrant box _older than_ `2.0.0`.

### Breaking Changes

* #1881: Ubuntu 18.04 is now the defaul.t OS version (and is used in the `geerlingguy/drupal-vm` base image `2.0.0` and later)
* #1881: Ubuntu 18.04 is now the default OS version (and is used in the `geerlingguy/drupal-vm` base image `2.0.0` and later)
* Ubuntu 14.04 is no longer supported.
* #1874: PHP 7.2 is now the default PHP version
* PHP 5.6 is no longer supported (though you may be able to install it for some time).
Expand Down
11 changes: 7 additions & 4 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

# -*- mode: ruby -*-
# vi: set ft=ruby :

Expand Down Expand Up @@ -51,12 +53,12 @@ Vagrant.configure('2') do |config|
# Networking configuration.
config.vm.hostname = vconfig['vagrant_hostname']
config.vm.network :private_network,
ip: vconfig['vagrant_ip'],
auto_network: vconfig['vagrant_ip'] == '0.0.0.0' && Vagrant.has_plugin?('vagrant-auto_network')
ip: vconfig['vagrant_ip'],
auto_network: vconfig['vagrant_ip'] == '0.0.0.0' && Vagrant.has_plugin?('vagrant-auto_network')

unless vconfig['vagrant_public_ip'].empty?
config.vm.network :public_network,
ip: vconfig['vagrant_public_ip'] != '0.0.0.0' ? vconfig['vagrant_public_ip'] : nil
ip: vconfig['vagrant_public_ip'] != '0.0.0.0' ? vconfig['vagrant_public_ip'] : nil
end

# SSH options.
Expand Down Expand Up @@ -122,7 +124,8 @@ Vagrant.configure('2') do |config|
ansible.playbook = playbook
ansible.extra_vars = {
config_dir: config_dir,
drupalvm_env: drupalvm_env
drupalvm_env: drupalvm_env,
ansible_python_interpreter: vconfig['ansible_python_interpreter']
}
ansible.raw_arguments = Shellwords.shellsplit(ENV['DRUPALVM_ANSIBLE_ARGS']) if ENV['DRUPALVM_ANSIBLE_ARGS']
ansible.tags = ENV['DRUPALVM_ANSIBLE_TAGS']
Expand Down
3 changes: 3 additions & 0 deletions config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
---
# Override upstream change that breaks localhost delegation.
ansible_python_interpreter: auto_legacy

vagrant_box: geerlingguy/ubuntu1804

# Web app project type.
Expand Down
29 changes: 17 additions & 12 deletions default.config.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
# Available `vagrant_box` values include:
# - geerlingguy/drupal-vm (pre-provisioned, based on Ubuntu 18.04)
# - geerlingguy/centos8
# - geerlingguy/centos7
# - geerlingguy/centos6
# - geerlingguy/debian10
# - geerlingguy/debian9
# - geerlingguy/debian8
# - geerlingguy/ubuntu1804
# - geerlingguy/ubuntu1604
vagrant_box: geerlingguy/drupal-vm
Expand Down Expand Up @@ -45,9 +45,11 @@ vagrant_plugins:
- name: vagrant-vbguest
- name: vagrant-hostsupdater

ansible_python_interpreter: /usr/bin/python3

# Minimum required versions.
drupalvm_vagrant_version_min: '1.8.6'
drupalvm_ansible_version_min: '2.4'
drupalvm_vagrant_version_min: '2.2.0'
drupalvm_ansible_version_min: '2.8'

# Force use of ansible_local provisioner, even if Ansible is installed on host.
force_ansible_local: false
Expand Down Expand Up @@ -198,14 +200,13 @@ mysql_users:
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"

postgresql_databases:
- name: "{{ drupal_db_name }}"
owner: "{{ drupal_db_user }}"

# 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. `[]`.
Expand Down Expand Up @@ -255,7 +256,7 @@ firewall_log_dropped_packets: false
firewall_disable_firewalld: true
firewall_disable_ufw: true

# PHP Configuration. Currently-supported versions: 7.1, 7.2, 7.3.
# PHP Configuration. Currently-supported versions: 7.2, 7.3, 7.4.
# See version-specific notes: http://docs.drupalvm.com/en/latest/configurations/php/
php_version: "7.2"
php_install_recommends: no
Expand Down Expand Up @@ -328,8 +329,12 @@ 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.5"
# Java configuration.
java_packages:
- "{{ 'openjdk-8-jdk' if ansible_os_family == 'Debian' else 'java-1.8.0-openjdk' }}"

# Solr configuration.
solr_version: "7.7.2"
solr_xms: "64M"
solr_xmx: "128M"

Expand Down
38 changes: 16 additions & 22 deletions docs/configurations/base-os.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,48 +4,42 @@ Currently-supported OSes are:

- Ubuntu 18.04 'Bionic' (default)
- Ubuntu 16.04 'Xenial'
- RedHat Enterprise Linux / CentOS 8
- RedHat Enterprise Linux / CentOS 7
- RedHat Enterprise Linux / CentOS 6 (limited support)
- Debian 10 'Buster'
- Debian 9 'Stretch'

For certain OSes, there are a couple other caveats and tweaks you may need to perform to get things running smoothly—the main features and latest development is only guaranteed to work with the default OS as configured in `default.config.yml`.

Some other OSes should work, but are not regularly tested with Drupal VM, including Debian 8/Jessie (`debian/jessie64`).

## Ubuntu 18.04 Xenial LTS
## Ubuntu 18.04 Bionic LTS

Everything should work out of the box with Ubuntu 16.04.
Everything should work out of the box with Ubuntu 18.04.

## Ubuntu 16.04 Xenial LTS

Everything should work out of the box with Ubuntu 16.04.
Most everything should work out of the box with Ubuntu 16.04. You will need to override one variable in your `config.yml` to use an older version of Python when provisioning:

## RedHat Enterprise Linux / CentOS 7

Everything should work out of the box with RHEL 7.
ansible_python_interpreter: /usr/bin/python

## RedHat Enterprise Linux / CentOS 6
## RedHat Enterprise Linux / CentOS 8

- **Apache without FastCGI**: If you want to use Apache with CentOS 6 on Drupal VM, you will need to modify the syntax of your `apache_vhosts` and remove the `extra_parameters: "{{ apache_vhost_php_fpm_parameters }}"` line from each one. Alternatively, you can use Nginx with the default configuration by setting `drupalvm_webserver: nginx` inside `config.yml`.
Everything should work out of the box with RHEL 8.

- **PHP OpCache**: PHP's OpCache (if you're using PHP > 5.5) requires the following setting to be configured in `config.yml` (see upstream bug: [CentOS (6) needs additional php-opcache package](https://github.com/geerlingguy/ansible-role-php/issues/39)):
## RedHat Enterprise Linux / CentOS 7

```yaml
php_opcache_enabled_in_ini: false
```
Most everything should work out of the box with CentOS 7. You will need to override one variable in your `config.yml` to use an older version of Python when provisioning:

- **Firewalld**: [Firewalld](http://www.firewalld.org/) is not available on CentOS 6, so the Drupal VM setting `firewall_disable_firewalld`, which defaults to `true`, must be overridden in `config.yml` and set to `false`:
ansible_python_interpreter: /usr/bin/python

```yaml
firewall_disable_firewalld: false
```
## Debian 10 Buster

- **Varnish**: Newer versions of Varnish are no longer available for CentOS 6, so you need to lock Varnish in at an older version, by adding something like the following in `config.yml`:
Most everything should work out of the box with Debian 10. If you are installing `java` or `solr` in the `installed_extras`, you need to override the `java_packages` in your `config.yml`:

```yaml
varnish_version: 5.2
```
java_packages:
- openjdk-11-jdk

## Debian 9 Stretch

Everything should work out of the box with Debian 9.
Everything should work out of the box with Debian 10.
Loading

0 comments on commit a1d8ad7

Please sign in to comment.