From 55915f0e5c38805571e28ca1ed3b9785f978ee4e Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Fri, 21 Feb 2020 21:35:07 -0600 Subject: [PATCH 1/3] Update roles - blackfire, daemonize, elasticsearch, mysql, nodejs, php-versions, postgresql, ruby, php-pecl, varnish. --- provisioning/requirements.yml | 161 +++++++++--------- .../roles/geerlingguy.blackfire/.ansible-lint | 2 + .../geerlingguy.blackfire/.github/FUNDING.yml | 4 + .../roles/geerlingguy.blackfire/.travis.yml | 2 +- .../default/yaml-lint.yml => .yamllint} | 0 .../default/{playbook.yml => converge.yml} | 6 + .../molecule/default/molecule.yml | 17 +- .../tasks/setup-Debian.yml | 5 + .../geerlingguy.daemonize/tests/test.yml | 2 +- .../geerlingguy.elasticsearch/.travis.yml | 2 +- .../default/yaml-lint.yml => .yamllint} | 0 .../default/{playbook.yml => converge.yml} | 0 .../molecule/default/molecule.yml | 17 +- .../tasks/setup-Debian.yml | 6 +- .../roles/geerlingguy.mysql/.ansible-lint | 1 - .../geerlingguy.mysql/.github/FUNDING.yml | 4 + .../roles/geerlingguy.mysql/.travis.yml | 3 +- .../default/yaml-lint.yml => .yamllint} | 0 .../roles/geerlingguy.mysql/README.md | 4 + .../roles/geerlingguy.mysql/meta/main.yml | 1 + .../default/{playbook.yml => converge.yml} | 3 + .../molecule/default/molecule.yml | 17 +- .../geerlingguy.mysql/tasks/configure.yml | 8 +- .../geerlingguy.mysql/tasks/replication.yml | 10 +- .../geerlingguy.mysql/tasks/setup-Debian.yml | 5 +- .../geerlingguy.mysql/tasks/setup-RedHat.yml | 6 - .../geerlingguy.mysql/templates/my.cnf.j2 | 2 +- .../templates/root-my.cnf.j2 | 2 +- .../templates/user-my.cnf.j2 | 2 +- .../roles/geerlingguy.mysql/vars/RedHat-6.yml | 1 + .../roles/geerlingguy.mysql/vars/RedHat-8.yml | 18 ++ .../roles/geerlingguy.nodejs/.travis.yml | 2 +- .../default/yaml-lint.yml => .yamllint} | 0 .../default/{playbook.yml => converge.yml} | 0 .../molecule/default/molecule.yml | 17 +- .../geerlingguy.nodejs/tasks/setup-Debian.yml | 8 +- .../roles/geerlingguy.php-pecl/.ansible-lint | 2 + .../roles/geerlingguy.php-pecl/tasks/main.yml | 2 +- .../.github/FUNDING.yml | 4 + .../geerlingguy.php-versions/.travis.yml | 2 +- .../default/yaml-lint.yml => .yamllint} | 0 .../default/{playbook.yml => converge.yml} | 0 .../molecule/default/molecule.yml | 17 +- .../tasks/setup-Debian.yml | 5 + .../.github/FUNDING.yml | 4 + .../roles/geerlingguy.postgresql/.travis.yml | 4 +- .../default/yaml-lint.yml => .yamllint} | 0 .../default/{playbook.yml => converge.yml} | 0 .../molecule/default/molecule.yml | 17 +- .../geerlingguy.postgresql/vars/Debian-10.yml | 2 + .../geerlingguy.postgresql/vars/Ubuntu-18.yml | 1 + .../roles/geerlingguy.ruby/.ansible-lint | 2 + .../roles/geerlingguy.ruby/.gitignore | 3 +- .../roles/geerlingguy.ruby/.travis.yml | 85 +++------ provisioning/roles/geerlingguy.ruby/README.md | 12 +- .../roles/geerlingguy.ruby/defaults/main.yml | 5 +- .../roles/geerlingguy.ruby/meta/main.yml | 26 +-- .../molecule/default/molecule.yml | 29 ++++ .../molecule/default/playbook-source.yml | 23 +++ .../molecule/default/playbook.yml | 35 ++++ .../molecule/default/tests/test_default.py | 0 .../molecule/default/yaml-lint.yml | 6 + .../tasks/install-from-source.yml | 33 ++-- .../roles/geerlingguy.ruby/tasks/main.yml | 16 +- .../geerlingguy.ruby/tasks/setup-Debian.yml | 14 +- .../geerlingguy.ruby/tasks/setup-RedHat.yml | 9 +- .../roles/geerlingguy.ruby/tests/README.md | 11 -- .../geerlingguy.ruby/tests/test-source.yml | 16 -- .../roles/geerlingguy.ruby/tests/test.yml | 28 --- .../roles/geerlingguy.ruby/vars/Debian.yml | 17 ++ .../roles/geerlingguy.ruby/vars/RedHat.yml | 10 ++ .../roles/geerlingguy.varnish/.travis.yml | 2 +- .../default/yaml-lint.yml => .yamllint} | 0 .../default/{playbook.yml => converge.yml} | 0 .../molecule/default/molecule.yml | 17 +- .../tasks/setup-Debian.yml | 6 +- 76 files changed, 421 insertions(+), 382 deletions(-) create mode 100644 provisioning/roles/geerlingguy.blackfire/.ansible-lint create mode 100644 provisioning/roles/geerlingguy.blackfire/.github/FUNDING.yml rename provisioning/roles/geerlingguy.blackfire/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.blackfire/molecule/default/{playbook.yml => converge.yml} (89%) rename provisioning/roles/geerlingguy.elasticsearch/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.elasticsearch/molecule/default/{playbook.yml => converge.yml} (100%) create mode 100644 provisioning/roles/geerlingguy.mysql/.github/FUNDING.yml rename provisioning/roles/geerlingguy.mysql/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.mysql/molecule/default/{playbook.yml => converge.yml} (87%) create mode 100644 provisioning/roles/geerlingguy.mysql/vars/RedHat-8.yml rename provisioning/roles/geerlingguy.nodejs/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.nodejs/molecule/default/{playbook.yml => converge.yml} (100%) create mode 100644 provisioning/roles/geerlingguy.php-pecl/.ansible-lint create mode 100644 provisioning/roles/geerlingguy.php-versions/.github/FUNDING.yml rename provisioning/roles/geerlingguy.php-versions/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.php-versions/molecule/default/{playbook.yml => converge.yml} (100%) create mode 100644 provisioning/roles/geerlingguy.postgresql/.github/FUNDING.yml rename provisioning/roles/geerlingguy.postgresql/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.postgresql/molecule/default/{playbook.yml => converge.yml} (100%) create mode 100644 provisioning/roles/geerlingguy.ruby/.ansible-lint create mode 100644 provisioning/roles/geerlingguy.ruby/molecule/default/molecule.yml create mode 100644 provisioning/roles/geerlingguy.ruby/molecule/default/playbook-source.yml create mode 100644 provisioning/roles/geerlingguy.ruby/molecule/default/playbook.yml rename provisioning/roles/{geerlingguy.php-pecl => geerlingguy.ruby}/molecule/default/tests/test_default.py (100%) create mode 100644 provisioning/roles/geerlingguy.ruby/molecule/default/yaml-lint.yml delete mode 100644 provisioning/roles/geerlingguy.ruby/tests/README.md delete mode 100644 provisioning/roles/geerlingguy.ruby/tests/test-source.yml delete mode 100644 provisioning/roles/geerlingguy.ruby/tests/test.yml create mode 100644 provisioning/roles/geerlingguy.ruby/vars/Debian.yml create mode 100644 provisioning/roles/geerlingguy.ruby/vars/RedHat.yml rename provisioning/roles/geerlingguy.varnish/{molecule/default/yaml-lint.yml => .yamllint} (100%) rename provisioning/roles/geerlingguy.varnish/molecule/default/{playbook.yml => converge.yml} (100%) diff --git a/provisioning/requirements.yml b/provisioning/requirements.yml index 5aeb6cf09..ab58f100d 100644 --- a/provisioning/requirements.yml +++ b/provisioning/requirements.yml @@ -1,81 +1,82 @@ --- -- src: arknoll.selenium - version: 2.2.2 -- src: thom8.php-upload-progress - version: 1.0.1 -- src: weareinteractive.newrelic - version: 1.8.0 -- src: geerlingguy.adminer - version: 1.2.0 -- src: geerlingguy.apache - version: 3.1.0 -- src: geerlingguy.apache-php-fpm - version: 1.1.0 -- src: geerlingguy.blackfire - version: 1.1.2 -- src: geerlingguy.composer - version: 1.7.6 -- src: geerlingguy.daemonize - version: 1.2.0 -- src: geerlingguy.drupal - version: 3.0.1 -- src: geerlingguy.drupal-console - version: 1.1.1 -- src: geerlingguy.drush - version: 3.1.2 -- src: geerlingguy.elasticsearch - version: 4.1.0 -- src: geerlingguy.firewall - version: 2.4.3 -- src: geerlingguy.git - version: 2.1.0 -- src: geerlingguy.java - version: 1.9.7 -- src: geerlingguy.mailhog - version: 2.2.0 -- src: geerlingguy.memcached - version: 1.0.8 -- src: geerlingguy.mysql - version: 2.9.5 -- src: geerlingguy.nginx - version: 2.7.0 -- src: geerlingguy.nodejs - version: 5.1.0 -- src: geerlingguy.php - version: 3.7.0 -- src: geerlingguy.php-memcached - version: 2.0.2 -- src: geerlingguy.php-mysql - version: 2.0.2 -- src: geerlingguy.php-pecl - version: 1.4.1 -- src: geerlingguy.php-pgsql - version: 1.0.1 -- src: geerlingguy.php-redis - version: 3.2.1 -- src: geerlingguy.php-tideways - version: 2.2.0 -- src: geerlingguy.php-versions - version: 4.0.2 -- src: geerlingguy.php-xdebug - version: 3.0.0 -- src: geerlingguy.php-xhprof - version: 3.0.0 -- src: geerlingguy.pimpmylog - version: 1.0.2 -- src: geerlingguy.postfix - version: 2.0.0 -- src: geerlingguy.postgresql - version: 2.0.1 -- src: geerlingguy.redis - version: 1.6.0 -- src: geerlingguy.repo-remi - version: 1.2.0 -- src: geerlingguy.ruby - version: 2.5.2 -- src: geerlingguy.security - version: 1.9.0 -- src: geerlingguy.solr - version: 5.0.0 -- src: geerlingguy.varnish - version: 3.0.2 +roles: + - name: arknoll.selenium + version: 2.2.2 + - name: thom8.php-upload-progress + version: 1.0.1 + - name: weareinteractive.newrelic + version: 1.8.0 + - name: geerlingguy.adminer + version: 1.2.0 + - name: geerlingguy.apache + version: 3.1.0 + - name: geerlingguy.apache-php-fpm + version: 1.1.0 + - name: geerlingguy.blackfire + version: 1.1.3 + - name: geerlingguy.composer + version: 1.7.6 + - name: geerlingguy.daemonize + version: 1.2.1 + - name: geerlingguy.drupal + version: 3.0.1 + - name: geerlingguy.drupal-console + version: 1.1.1 + - name: geerlingguy.drush + version: 3.1.2 + - name: geerlingguy.elasticsearch + version: 4.1.1 + - name: geerlingguy.firewall + version: 2.4.3 + - name: geerlingguy.git + version: 2.1.0 + - name: geerlingguy.java + version: 1.9.7 + - name: geerlingguy.mailhog + version: 2.2.0 + - name: geerlingguy.memcached + version: 1.0.8 + - name: geerlingguy.mysql + version: 3.0.0 + - name: geerlingguy.nginx + version: 2.7.0 + - name: geerlingguy.nodejs + version: 5.1.1 + - name: geerlingguy.php + version: 3.7.0 + - name: geerlingguy.php-memcached + version: 2.0.2 + - name: geerlingguy.php-mysql + version: 2.0.2 + - name: geerlingguy.php-pecl + version: 1.4.2 + - name: geerlingguy.php-pgsql + version: 1.0.1 + - name: geerlingguy.php-redis + version: 3.2.1 + - name: geerlingguy.php-tideways + version: 2.2.0 + - name: geerlingguy.php-versions + version: 4.0.3 + - name: geerlingguy.php-xdebug + version: 3.0.0 + - name: geerlingguy.php-xhprof + version: 3.0.0 + - name: geerlingguy.pimpmylog + version: 1.0.2 + - name: geerlingguy.postfix + version: 2.0.0 + - name: geerlingguy.postgresql + version: 2.0.2 + - name: geerlingguy.redis + version: 1.6.0 + - name: geerlingguy.repo-remi + version: 1.2.0 + - name: geerlingguy.ruby + version: 2.6.0 + - name: geerlingguy.security + version: 1.9.0 + - name: geerlingguy.solr + version: 5.0.0 + - name: geerlingguy.varnish + version: 3.0.3 diff --git a/provisioning/roles/geerlingguy.blackfire/.ansible-lint b/provisioning/roles/geerlingguy.blackfire/.ansible-lint new file mode 100644 index 000000000..d09fda886 --- /dev/null +++ b/provisioning/roles/geerlingguy.blackfire/.ansible-lint @@ -0,0 +1,2 @@ +skip_list: + - '503' diff --git a/provisioning/roles/geerlingguy.blackfire/.github/FUNDING.yml b/provisioning/roles/geerlingguy.blackfire/.github/FUNDING.yml new file mode 100644 index 000000000..96b493831 --- /dev/null +++ b/provisioning/roles/geerlingguy.blackfire/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms +--- +github: geerlingguy +patreon: geerlingguy diff --git a/provisioning/roles/geerlingguy.blackfire/.travis.yml b/provisioning/roles/geerlingguy.blackfire/.travis.yml index 58cc4c729..dc43b419b 100644 --- a/provisioning/roles/geerlingguy.blackfire/.travis.yml +++ b/provisioning/roles/geerlingguy.blackfire/.travis.yml @@ -12,7 +12,7 @@ env: install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.blackfire/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.blackfire/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.blackfire/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.blackfire/.yamllint diff --git a/provisioning/roles/geerlingguy.blackfire/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.blackfire/molecule/default/converge.yml similarity index 89% rename from provisioning/roles/geerlingguy.blackfire/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.blackfire/molecule/default/converge.yml index eb7e1e64c..97ed5e181 100644 --- a/provisioning/roles/geerlingguy.blackfire/molecule/default/playbook.yml +++ b/provisioning/roles/geerlingguy.blackfire/molecule/default/converge.yml @@ -17,6 +17,12 @@ when: ansible_os_family == 'Debian' # Ubuntu-specific tasks. + - name: Add dependencies for apt key (Ubuntu). + apt: + name: dirmngr + state: present + when: ansible_distribution == 'Ubuntu' + - name: Add repository for PHP 7 (Ubuntu). apt_repository: repo='ppa:ondrej/php' when: ansible_distribution == 'Ubuntu' diff --git a/provisioning/roles/geerlingguy.blackfire/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.blackfire/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.blackfire/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.blackfire/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.blackfire/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.blackfire/tasks/setup-Debian.yml index e3bd66149..2dbf56a92 100644 --- a/provisioning/roles/geerlingguy.blackfire/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.blackfire/tasks/setup-Debian.yml @@ -1,4 +1,9 @@ --- +- name: Ensure dirmngr is installed (gnupg dependency). + apt: + name: dirmngr + state: present + - name: Add packagecloud apt key. apt_key: url: "{{ blackfire_gpg_key_url }}" diff --git a/provisioning/roles/geerlingguy.daemonize/tests/test.yml b/provisioning/roles/geerlingguy.daemonize/tests/test.yml index 9d3720595..3b4e619d7 100644 --- a/provisioning/roles/geerlingguy.daemonize/tests/test.yml +++ b/provisioning/roles/geerlingguy.daemonize/tests/test.yml @@ -16,7 +16,7 @@ changed_when: false - name: Ensure build dependencies are installed (Debian). - apt: 'name="{{ item }}" state=installed' + apt: 'name="{{ item }}" state=present' with_items: - build-essential - unzip diff --git a/provisioning/roles/geerlingguy.elasticsearch/.travis.yml b/provisioning/roles/geerlingguy.elasticsearch/.travis.yml index 40ecf8a98..58ed78dfe 100644 --- a/provisioning/roles/geerlingguy.elasticsearch/.travis.yml +++ b/provisioning/roles/geerlingguy.elasticsearch/.travis.yml @@ -12,7 +12,7 @@ env: install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.elasticsearch/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.elasticsearch/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.elasticsearch/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.elasticsearch/.yamllint diff --git a/provisioning/roles/geerlingguy.elasticsearch/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.elasticsearch/molecule/default/converge.yml similarity index 100% rename from provisioning/roles/geerlingguy.elasticsearch/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.elasticsearch/molecule/default/converge.yml diff --git a/provisioning/roles/geerlingguy.elasticsearch/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.elasticsearch/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.elasticsearch/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.elasticsearch/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.elasticsearch/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.elasticsearch/tasks/setup-Debian.yml index 5fa254302..9fde3c9f2 100644 --- a/provisioning/roles/geerlingguy.elasticsearch/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.elasticsearch/tasks/setup-Debian.yml @@ -1,7 +1,9 @@ --- -- name: HTTPS APT transport for Elasticsearch repository. +- name: Add required dependencies. apt: - name: apt-transport-https + name: + - apt-transport-https + - gnupg2 state: present - name: Add Elasticsearch apt key. diff --git a/provisioning/roles/geerlingguy.mysql/.ansible-lint b/provisioning/roles/geerlingguy.mysql/.ansible-lint index 5a3b624f8..1ae5e6ccf 100644 --- a/provisioning/roles/geerlingguy.mysql/.ansible-lint +++ b/provisioning/roles/geerlingguy.mysql/.ansible-lint @@ -1,3 +1,2 @@ skip_list: - - '602' - '204' diff --git a/provisioning/roles/geerlingguy.mysql/.github/FUNDING.yml b/provisioning/roles/geerlingguy.mysql/.github/FUNDING.yml new file mode 100644 index 000000000..96b493831 --- /dev/null +++ b/provisioning/roles/geerlingguy.mysql/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms +--- +github: geerlingguy +patreon: geerlingguy diff --git a/provisioning/roles/geerlingguy.mysql/.travis.yml b/provisioning/roles/geerlingguy.mysql/.travis.yml index db26840bc..c82b59e5c 100644 --- a/provisioning/roles/geerlingguy.mysql/.travis.yml +++ b/provisioning/roles/geerlingguy.mysql/.travis.yml @@ -6,6 +6,7 @@ env: global: - ROLE_NAME: mysql matrix: + - MOLECULE_DISTRO: centos8 - MOLECULE_DISTRO: centos7 - MOLECULE_DISTRO: centos6 - MOLECULE_DISTRO: ubuntu1804 @@ -14,7 +15,7 @@ env: install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.mysql/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.mysql/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.mysql/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.mysql/.yamllint diff --git a/provisioning/roles/geerlingguy.mysql/README.md b/provisioning/roles/geerlingguy.mysql/README.md index 7436589fe..21fe3dbf3 100644 --- a/provisioning/roles/geerlingguy.mysql/README.md +++ b/provisioning/roles/geerlingguy.mysql/README.md @@ -84,6 +84,10 @@ The formats of these are the same as in the `mysql_user` module. (RedHat/CentOS only) If you have enabled any additional repositories (might I suggest geerlingguy.repo-epel or geerlingguy.repo-remi), those repositories can be listed under this variable (e.g. `remi,epel`). This can be handy, as an example, if you want to install later versions of MySQL. + mysql_python_package_debian: '' + +(Ubuntu/Debian only) If you need to explicitly set the MySQL Python package, you can set it here. If not set, it will default to `python-mysqldb` for Python 2 and `python3-mysqldb` for Python 3. + mysql_port: "3306" mysql_bind_address: '0.0.0.0' mysql_datadir: /var/lib/mysql diff --git a/provisioning/roles/geerlingguy.mysql/meta/main.yml b/provisioning/roles/geerlingguy.mysql/meta/main.yml index d95f6cc3e..aea8654d7 100644 --- a/provisioning/roles/geerlingguy.mysql/meta/main.yml +++ b/provisioning/roles/geerlingguy.mysql/meta/main.yml @@ -12,6 +12,7 @@ galaxy_info: versions: - 6 - 7 + - 8 - name: Ubuntu versions: - all diff --git a/provisioning/roles/geerlingguy.mysql/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.mysql/molecule/default/converge.yml similarity index 87% rename from provisioning/roles/geerlingguy.mysql/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.mysql/molecule/default/converge.yml index c83b10216..5e0213dcc 100644 --- a/provisioning/roles/geerlingguy.mysql/molecule/default/playbook.yml +++ b/provisioning/roles/geerlingguy.mysql/molecule/default/converge.yml @@ -3,6 +3,9 @@ hosts: all become: true + vars: + mysql_python_package_debian: python3-mysqldb + roles: - role: geerlingguy.mysql diff --git a/provisioning/roles/geerlingguy.mysql/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.mysql/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.mysql/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.mysql/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.mysql/tasks/configure.yml b/provisioning/roles/geerlingguy.mysql/tasks/configure.yml index 49cb7ad23..b1f004fa1 100644 --- a/provisioning/roles/geerlingguy.mysql/tasks/configure.yml +++ b/provisioning/roles/geerlingguy.mysql/tasks/configure.yml @@ -66,8 +66,8 @@ creates: "{{ mysql_log_error }}" warn: false when: - - mysql_log == "" - - mysql_log_error != "" + - mysql_log | default(true) + - mysql_log_error | default(false) tags: ['skip_ansible_galaxy'] - name: Set ownership on error log file (if configured). @@ -78,8 +78,8 @@ group: "{{ mysql_log_file_group }}" mode: 0640 when: - - mysql_log == "" - - mysql_log_error != "" + - mysql_log | default(true) + - mysql_log_error | default(false) tags: ['skip_ansible_galaxy'] - name: Ensure MySQL is started and enabled on boot. diff --git a/provisioning/roles/geerlingguy.mysql/tasks/replication.yml b/provisioning/roles/geerlingguy.mysql/tasks/replication.yml index e1cbeb54b..2532b5539 100644 --- a/provisioning/roles/geerlingguy.mysql/tasks/replication.yml +++ b/provisioning/roles/geerlingguy.mysql/tasks/replication.yml @@ -9,7 +9,7 @@ when: - mysql_replication_role == 'master' - mysql_replication_user.name is defined - - mysql_replication_master != '' + - mysql_replication_master | default(false) tags: ['skip_ansible_galaxy'] - name: Check slave replication status. @@ -21,7 +21,7 @@ register: slave when: - mysql_replication_role == 'slave' - - mysql_replication_master != '' + - mysql_replication_master | default(false) tags: ['skip_ansible_galaxy'] - name: Check master replication status. @@ -31,7 +31,7 @@ when: - (slave.Is_Slave is defined and not slave.Is_Slave) or (slave.Is_Slave is not defined and slave is failed) - mysql_replication_role == 'slave' - - mysql_replication_master != '' + - mysql_replication_master | default(false) tags: ['skip_ansible_galaxy'] - name: Configure replication on the slave. @@ -47,12 +47,12 @@ - (slave.Is_Slave is defined and not slave.Is_Slave) or (slave.Is_Slave is not defined and slave is failed) - mysql_replication_role == 'slave' - mysql_replication_user.name is defined - - mysql_replication_master != '' + - mysql_replication_master | default(false) - name: Start replication. mysql_replication: mode=startslave when: - (slave.Is_Slave is defined and not slave.Is_Slave) or (slave.Is_Slave is not defined and slave is failed) - mysql_replication_role == 'slave' - - mysql_replication_master != '' + - mysql_replication_master | default(false) tags: ['skip_ansible_galaxy'] diff --git a/provisioning/roles/geerlingguy.mysql/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.mysql/tasks/setup-Debian.yml index 325f25c52..c3197d574 100644 --- a/provisioning/roles/geerlingguy.mysql/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.mysql/tasks/setup-Debian.yml @@ -9,11 +9,12 @@ - name: Determine required MySQL Python libraries. set_fact: - deb_mysql_python_package: "{% if 'python3' in ansible_python_interpreter|default('') %}python3-mysqldb{% else %}python-mysqldb{% endif %}" + mysql_python_package_debian: "{% if 'python3' in ansible_python_interpreter|default('') %}python3-mysqldb{% else %}python-mysqldb{% endif %}" + when: mysql_python_package_debian is not defined - name: Ensure MySQL Python libraries are installed. apt: - name: "{{ deb_mysql_python_package }}" + name: "{{ mysql_python_package_debian }}" state: present - name: Ensure MySQL packages are installed. diff --git a/provisioning/roles/geerlingguy.mysql/tasks/setup-RedHat.yml b/provisioning/roles/geerlingguy.mysql/tasks/setup-RedHat.yml index a80aae259..6835c0d6a 100644 --- a/provisioning/roles/geerlingguy.mysql/tasks/setup-RedHat.yml +++ b/provisioning/roles/geerlingguy.mysql/tasks/setup-RedHat.yml @@ -5,9 +5,3 @@ state: present enablerepo: "{{ mysql_enablerepo | default(omit, true) }}" register: rh_mysql_install_packages - -- name: Ensure MySQL Python libraries are installed. - yum: - name: MySQL-python - state: present - enablerepo: "{{ mysql_enablerepo | default(omit, true) }}" diff --git a/provisioning/roles/geerlingguy.mysql/templates/my.cnf.j2 b/provisioning/roles/geerlingguy.mysql/templates/my.cnf.j2 index 91962a30a..479b93f22 100644 --- a/provisioning/roles/geerlingguy.mysql/templates/my.cnf.j2 +++ b/provisioning/roles/geerlingguy.mysql/templates/my.cnf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +{{ ansible_managed | comment }} [client] #password = your_password diff --git a/provisioning/roles/geerlingguy.mysql/templates/root-my.cnf.j2 b/provisioning/roles/geerlingguy.mysql/templates/root-my.cnf.j2 index 5d2ab5272..af13e810e 100644 --- a/provisioning/roles/geerlingguy.mysql/templates/root-my.cnf.j2 +++ b/provisioning/roles/geerlingguy.mysql/templates/root-my.cnf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +{{ ansible_managed | comment }} [client] user="{{ mysql_root_username }}" diff --git a/provisioning/roles/geerlingguy.mysql/templates/user-my.cnf.j2 b/provisioning/roles/geerlingguy.mysql/templates/user-my.cnf.j2 index 257a97349..62e3692ea 100644 --- a/provisioning/roles/geerlingguy.mysql/templates/user-my.cnf.j2 +++ b/provisioning/roles/geerlingguy.mysql/templates/user-my.cnf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +{{ ansible_managed | comment }} [client] user="{{ mysql_user_name }}" diff --git a/provisioning/roles/geerlingguy.mysql/vars/RedHat-6.yml b/provisioning/roles/geerlingguy.mysql/vars/RedHat-6.yml index 96af1ff04..12e086f62 100644 --- a/provisioning/roles/geerlingguy.mysql/vars/RedHat-6.yml +++ b/provisioning/roles/geerlingguy.mysql/vars/RedHat-6.yml @@ -3,6 +3,7 @@ __mysql_daemon: mysqld __mysql_packages: - mysql - mysql-server + - MySQL-python __mysql_slow_query_log_file: /var/log/mysql-slow.log __mysql_log_error: /var/log/mysql.err __mysql_syslog_tag: mysql diff --git a/provisioning/roles/geerlingguy.mysql/vars/RedHat-8.yml b/provisioning/roles/geerlingguy.mysql/vars/RedHat-8.yml new file mode 100644 index 000000000..12484af47 --- /dev/null +++ b/provisioning/roles/geerlingguy.mysql/vars/RedHat-8.yml @@ -0,0 +1,18 @@ +--- +__mysql_daemon: mariadb +__mysql_packages: + - mariadb + - mariadb-server + - mariadb-connector-c + - python3-PyMySQL + - perl-DBD-MySQL +__mysql_slow_query_log_file: /var/log/mysql-slow.log +__mysql_log_error: /var/log/mariadb/mariadb.log +__mysql_syslog_tag: mariadb +__mysql_pid_file: /var/run/mariadb/mariadb.pid +__mysql_config_file: /etc/my.cnf +__mysql_config_include_dir: /etc/my.cnf.d +__mysql_socket: /var/lib/mysql/mysql.sock +# The entries controlled by this value should not be used with MariaDB >= 10.2.2 +# See https://github.com/frappe/bench/issues/681#issuecomment-398984706 +__mysql_supports_innodb_large_prefix: false diff --git a/provisioning/roles/geerlingguy.nodejs/.travis.yml b/provisioning/roles/geerlingguy.nodejs/.travis.yml index 5b6f821b8..1fa9d69e2 100644 --- a/provisioning/roles/geerlingguy.nodejs/.travis.yml +++ b/provisioning/roles/geerlingguy.nodejs/.travis.yml @@ -17,7 +17,7 @@ env: install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.nodejs/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.nodejs/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.nodejs/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.nodejs/.yamllint diff --git a/provisioning/roles/geerlingguy.nodejs/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.nodejs/molecule/default/converge.yml similarity index 100% rename from provisioning/roles/geerlingguy.nodejs/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.nodejs/molecule/default/converge.yml diff --git a/provisioning/roles/geerlingguy.nodejs/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.nodejs/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.nodejs/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.nodejs/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.nodejs/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.nodejs/tasks/setup-Debian.yml index 5abd6baa1..442e134a3 100644 --- a/provisioning/roles/geerlingguy.nodejs/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.nodejs/tasks/setup-Debian.yml @@ -1,6 +1,10 @@ --- -- name: Ensure apt-transport-https is installed. - apt: name=apt-transport-https state=present +- name: Ensure dependencies are present. + apt: + name: + - apt-transport-https + - gnupg2 + state: present - name: Add Nodesource apt key. apt_key: diff --git a/provisioning/roles/geerlingguy.php-pecl/.ansible-lint b/provisioning/roles/geerlingguy.php-pecl/.ansible-lint new file mode 100644 index 000000000..477856412 --- /dev/null +++ b/provisioning/roles/geerlingguy.php-pecl/.ansible-lint @@ -0,0 +1,2 @@ +skip_list: + - '306' diff --git a/provisioning/roles/geerlingguy.php-pecl/tasks/main.yml b/provisioning/roles/geerlingguy.php-pecl/tasks/main.yml index 060f35ea5..44a208a3c 100644 --- a/provisioning/roles/geerlingguy.php-pecl/tasks/main.yml +++ b/provisioning/roles/geerlingguy.php-pecl/tasks/main.yml @@ -14,6 +14,6 @@ - name: Install PECL libaries. shell: "yes '' | {{ php_pecl_install_command }} {{ item }}" register: pecl_result - changed_when: "pecl_result.rc == 0" + changed_when: pecl_result is succeeded failed_when: "not (('already installed' in pecl_result.stdout) or ('install ok:' in pecl_result.stdout))" with_items: "{{ php_pecl_extensions }}" diff --git a/provisioning/roles/geerlingguy.php-versions/.github/FUNDING.yml b/provisioning/roles/geerlingguy.php-versions/.github/FUNDING.yml new file mode 100644 index 000000000..96b493831 --- /dev/null +++ b/provisioning/roles/geerlingguy.php-versions/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms +--- +github: geerlingguy +patreon: geerlingguy diff --git a/provisioning/roles/geerlingguy.php-versions/.travis.yml b/provisioning/roles/geerlingguy.php-versions/.travis.yml index 7a8158001..694160a4a 100644 --- a/provisioning/roles/geerlingguy.php-versions/.travis.yml +++ b/provisioning/roles/geerlingguy.php-versions/.travis.yml @@ -30,7 +30,7 @@ env: install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.php-versions/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.php-versions/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.php-versions/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.php-versions/.yamllint diff --git a/provisioning/roles/geerlingguy.php-versions/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.php-versions/molecule/default/converge.yml similarity index 100% rename from provisioning/roles/geerlingguy.php-versions/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.php-versions/molecule/default/converge.yml diff --git a/provisioning/roles/geerlingguy.php-versions/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.php-versions/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.php-versions/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.php-versions/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.php-versions/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.php-versions/tasks/setup-Debian.yml index dda60bb5d..86b6be259 100644 --- a/provisioning/roles/geerlingguy.php-versions/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.php-versions/tasks/setup-Debian.yml @@ -3,6 +3,11 @@ set_fact: php_opcache_conf_filename: "10-opcache.ini" +- name: Ensure dirmngr is installed (gnupg dependency). + apt: + name: dirmngr + state: present + - name: Add repository for PHP versions (Ubuntu). apt_repository: repo='ppa:ondrej/php' when: ansible_distribution == "Ubuntu" diff --git a/provisioning/roles/geerlingguy.postgresql/.github/FUNDING.yml b/provisioning/roles/geerlingguy.postgresql/.github/FUNDING.yml new file mode 100644 index 000000000..96b493831 --- /dev/null +++ b/provisioning/roles/geerlingguy.postgresql/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms +--- +github: geerlingguy +patreon: geerlingguy diff --git a/provisioning/roles/geerlingguy.postgresql/.travis.yml b/provisioning/roles/geerlingguy.postgresql/.travis.yml index 06604ced1..e0fb59b37 100644 --- a/provisioning/roles/geerlingguy.postgresql/.travis.yml +++ b/provisioning/roles/geerlingguy.postgresql/.travis.yml @@ -9,13 +9,11 @@ env: - MOLECULE_DISTRO: centos7 - MOLECULE_DISTRO: fedora31 - MOLECULE_DISTRO: ubuntu1804 - - MOLECULE_DISTRO: ubuntu1604 - MOLECULE_DISTRO: debian10 - - MOLECULE_DISTRO: debian9 install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.postgresql/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.postgresql/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.postgresql/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.postgresql/.yamllint diff --git a/provisioning/roles/geerlingguy.postgresql/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.postgresql/molecule/default/converge.yml similarity index 100% rename from provisioning/roles/geerlingguy.postgresql/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.postgresql/molecule/default/converge.yml diff --git a/provisioning/roles/geerlingguy.postgresql/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.postgresql/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.postgresql/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.postgresql/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.postgresql/vars/Debian-10.yml b/provisioning/roles/geerlingguy.postgresql/vars/Debian-10.yml index fe81ad790..d8b5103b6 100644 --- a/provisioning/roles/geerlingguy.postgresql/vars/Debian-10.yml +++ b/provisioning/roles/geerlingguy.postgresql/vars/Debian-10.yml @@ -8,3 +8,5 @@ __postgresql_packages: - postgresql - postgresql-contrib - libpq-dev +# Debian 10 uses Python 3 by default. +postgresql_python_library: python3-psycopg2 diff --git a/provisioning/roles/geerlingguy.postgresql/vars/Ubuntu-18.yml b/provisioning/roles/geerlingguy.postgresql/vars/Ubuntu-18.yml index 201acc365..8136224f2 100644 --- a/provisioning/roles/geerlingguy.postgresql/vars/Ubuntu-18.yml +++ b/provisioning/roles/geerlingguy.postgresql/vars/Ubuntu-18.yml @@ -8,3 +8,4 @@ __postgresql_packages: - postgresql - postgresql-contrib - libpq-dev +postgresql_python_library: python3-psycopg2 diff --git a/provisioning/roles/geerlingguy.ruby/.ansible-lint b/provisioning/roles/geerlingguy.ruby/.ansible-lint new file mode 100644 index 000000000..cb8e2acf5 --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/.ansible-lint @@ -0,0 +1,2 @@ +skip_list: + - '405' diff --git a/provisioning/roles/geerlingguy.ruby/.gitignore b/provisioning/roles/geerlingguy.ruby/.gitignore index c9b2377e3..f56f5b578 100644 --- a/provisioning/roles/geerlingguy.ruby/.gitignore +++ b/provisioning/roles/geerlingguy.ruby/.gitignore @@ -1,2 +1,3 @@ *.retry -tests/test.sh +*/__pycache__ +*.pyc diff --git a/provisioning/roles/geerlingguy.ruby/.travis.yml b/provisioning/roles/geerlingguy.ruby/.travis.yml index 35cd3f6cc..05d43df15 100644 --- a/provisioning/roles/geerlingguy.ruby/.travis.yml +++ b/provisioning/roles/geerlingguy.ruby/.travis.yml @@ -1,71 +1,34 @@ --- +language: python services: docker env: - # Package install on all OSes. - - distro: centos7 - playbook: test.yml - ruby_version: 2.0.0 - ruby_path_prefix: /usr - - distro: ubuntu1804 - playbook: test.yml - ruby_version: 2.5.1 - ruby_path_prefix: /usr - - distro: ubuntu1604 - playbook: test.yml - ruby_version: 2.3.1 - ruby_path_prefix: /usr - - distro: ubuntu1404 - playbook: test.yml - ruby_version: 1.9.3 - ruby_path_prefix: /usr - - distro: debian9 - playbook: test.yml - ruby_version: 2.3.3 - ruby_path_prefix: /usr - - # Source install on latest OSes. - - distro: centos7 - playbook: test-source.yml - ruby_version: 2.5.1 - ruby_path_prefix: /usr/local - - distro: ubuntu1804 - playbook: test-source.yml - ruby_version: 2.5.1 - ruby_path_prefix: /usr/local + global: + - ROLE_NAME: ruby + matrix: + - MOLECULE_DISTRO: centos7 + - MOLECULE_DISTRO: ubuntu1804 + - MOLECULE_DISTRO: ubuntu1604 + - MOLECULE_DISTRO: debian9 + + - MOLECULE_DISTRO: centos7 + MOLECULE_PLAYBOOK: playbook-source.yml + - MOLECULE_DISTRO: ubuntu1804 + MOLECULE_PLAYBOOK: playbook-source.yml + +install: + # Install test dependencies. + - pip install molecule docker + +before_script: + # Use actual Ansible Galaxy role name for the project directory. + - cd ../ + - mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME + - cd geerlingguy.$ROLE_NAME script: - # Configure test script so we can run extra tests after playbook is run. - - export container_id=$(date +%s) - - export cleanup=false - - # Download test shim. - - wget -O ${PWD}/tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/ - - chmod +x ${PWD}/tests/test.sh - # Run tests. - - ${PWD}/tests/test.sh - - # Make sure ruby is installed and at the correct version. - - 'docker exec --tty ${container_id} env TERM=xterm which ruby' - - 'docker exec --tty ${container_id} env TERM=xterm test -x ${ruby_path_prefix}/bin/ruby' - - - 'docker exec --tty ${container_id} env TERM=xterm ruby --version' - - 'docker exec --tty ${container_id} env TERM=xterm ${ruby_path_prefix}/bin/ruby --version | grep -qF ${ruby_version}' - - # Make sure bundler is installed. - - 'docker exec --tty ${container_id} env TERM=xterm ls -lah /usr/local/bin' - - 'docker exec --tty ${container_id} env TERM=xterm which bundle' - - # Make sure user installed gems are available. - - | - if [ "${distro}" != "ubuntu1404" ]; then - docker exec --tty ${container_id} env TERM=xterm bash --login -c "which sass" - fi - -after_failure: - - 'docker exec --tty ${container_id} env TERM=xterm which ruby' - - 'docker exec --tty ${container_id} env TERM=xterm ruby --version' + - molecule test notifications: webhooks: https://galaxy.ansible.com/api/v1/notifications/ diff --git a/provisioning/roles/geerlingguy.ruby/README.md b/provisioning/roles/geerlingguy.ruby/README.md index 43afd3837..7a2f5d5ef 100644 --- a/provisioning/roles/geerlingguy.ruby/README.md +++ b/provisioning/roles/geerlingguy.ruby/README.md @@ -16,7 +16,7 @@ Available variables are listed below, along with default values (see `defaults/m The location where temporary files will be downloaded in preparation for Ruby installation. - ruby_install_bundler: True + ruby_install_bundler: true Whether this role should install [Bundler](http://bundler.io/). @@ -28,17 +28,21 @@ A list of Ruby gems to install (just the name of the gem to be installed). This The user account under which Ruby gems will be installed. Defaults to the `ansible_ssh_user` if not set. - ruby_install_from_source: False + ruby_install_from_source: false By default, this role will install whatever version of ruby is available through your system's package manager (`apt` or `yum`). You can install whatever version you like (including the latest release) by setting this to `true` and/or updating the `ruby_download_url` and `ruby_version`. ruby_download_url: http://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.4.4.tar.gz -The URL from which Ruby will be downloaded (only used if `ruby_install_from_source` is `True`). +The URL from which Ruby will be downloaded (only used if `ruby_install_from_source` is `true`). ruby_version: 2.5.1 -The version of ruby that will be installed (only used if `ruby_install_from_source` is `True`). +The version of ruby that will be installed (only used if `ruby_install_from_source` is `true`). + + ruby_source_configure_command: ./configure --enable-shared + +The `configure` command that will be run (only used if `ruby_install_from_source` is `true`). ruby_rubygems_package_name: rubygems diff --git a/provisioning/roles/geerlingguy.ruby/defaults/main.yml b/provisioning/roles/geerlingguy.ruby/defaults/main.yml index aa85e69a1..d9be6d672 100644 --- a/provisioning/roles/geerlingguy.ruby/defaults/main.yml +++ b/provisioning/roles/geerlingguy.ruby/defaults/main.yml @@ -2,7 +2,7 @@ workspace: /root # Whether this role should install Bundler. -ruby_install_bundler: True +ruby_install_bundler: true # A list of Ruby gems to install. ruby_install_gems: [] @@ -12,9 +12,10 @@ ruby_install_gems_user: "{{ ansible_user }}" # If set to True, ruby will be installed from source, using the version set with # the 'ruby_version' variable instead of using a package. -ruby_install_from_source: False +ruby_install_from_source: false ruby_download_url: http://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz ruby_version: 2.5.1 +ruby_source_configure_command: ./configure --enable-shared # Default should usually work, but this will be overridden on Ubuntu 14.04. ruby_rubygems_package_name: rubygems diff --git a/provisioning/roles/geerlingguy.ruby/meta/main.yml b/provisioning/roles/geerlingguy.ruby/meta/main.yml index 8c8914fe3..2920c6248 100644 --- a/provisioning/roles/geerlingguy.ruby/meta/main.yml +++ b/provisioning/roles/geerlingguy.ruby/meta/main.yml @@ -10,37 +10,37 @@ galaxy_info: platforms: - name: EL versions: - - all + - all - name: GenericUNIX versions: - - all + - all - name: Fedora versions: - - all + - all - name: opensuse versions: - - all + - all - name: GenericBSD versions: - - all + - all - name: FreeBSD versions: - - all + - all - name: Ubuntu versions: - - lucid - - trusty - - precise - - bionic + - lucid + - trusty + - precise + - bionic - name: SLES versions: - - all + - all - name: GenericLinux versions: - - all + - all - name: Debian versions: - - all + - all galaxy_tags: - development - web diff --git a/provisioning/roles/geerlingguy.ruby/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.ruby/molecule/default/molecule.yml new file mode 100644 index 000000000..2ca6feaf9 --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/molecule/default/molecule.yml @@ -0,0 +1,29 @@ +--- +dependency: + name: galaxy +driver: + name: docker +lint: + name: yamllint + options: + config-file: molecule/default/yaml-lint.yml +platforms: + - name: instance + image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" + command: ${MOLECULE_DOCKER_COMMAND:-""} + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + privileged: true + pre_build_image: true +provisioner: + name: ansible + lint: + name: ansible-lint + playbooks: + converge: ${MOLECULE_PLAYBOOK:-playbook.yml} +scenario: + name: default +verifier: + name: testinfra + lint: + name: flake8 diff --git a/provisioning/roles/geerlingguy.ruby/molecule/default/playbook-source.yml b/provisioning/roles/geerlingguy.ruby/molecule/default/playbook-source.yml new file mode 100644 index 000000000..bbd832b5a --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/molecule/default/playbook-source.yml @@ -0,0 +1,23 @@ +--- +- name: Converge + hosts: all + become: true + + vars: + ruby_install_from_source: true + ruby_install_gems_user: root + ruby_install_gems: + - sass + + pre_tasks: + - name: Update apt cache. + apt: update_cache=true cache_valid_time=600 + when: ansible_os_family == 'Debian' + + roles: + - role: geerlingguy.ruby + + post_tasks: + - name: Verify Ruby is installed. + command: ruby --version + changed_when: false diff --git a/provisioning/roles/geerlingguy.ruby/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.ruby/molecule/default/playbook.yml new file mode 100644 index 000000000..7cc7ffb48 --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/molecule/default/playbook.yml @@ -0,0 +1,35 @@ +--- +- name: Converge + hosts: all + become: true + + vars: + ruby_install_gems_user: root + ruby_install_gems: + - json + ruby_gems_bin_path: /root/.gem/ruby/bin + + pre_tasks: + - name: Update apt cache. + apt: update_cache=true cache_valid_time=600 + when: ansible_os_family == 'Debian' + + - name: Add rubygems bin dir to system-wide $PATH. + copy: + dest: /etc/profile.d/ruby.sh + content: 'PATH=$PATH:{{ ruby_gems_bin_path }}' + + - name: Don't install Bundler on CentOS 7 because of old Ruby version. + set_fact: + ruby_install_bundler: false + when: + - ansible_os_family == 'RedHat' + - ansible_distribution_major_version == '7' + + roles: + - role: geerlingguy.ruby + + post_tasks: + - name: Verify Ruby is installed. + command: ruby --version + changed_when: false diff --git a/provisioning/roles/geerlingguy.php-pecl/molecule/default/tests/test_default.py b/provisioning/roles/geerlingguy.ruby/molecule/default/tests/test_default.py similarity index 100% rename from provisioning/roles/geerlingguy.php-pecl/molecule/default/tests/test_default.py rename to provisioning/roles/geerlingguy.ruby/molecule/default/tests/test_default.py diff --git a/provisioning/roles/geerlingguy.ruby/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.ruby/molecule/default/yaml-lint.yml new file mode 100644 index 000000000..a3dbc38ee --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/molecule/default/yaml-lint.yml @@ -0,0 +1,6 @@ +--- +extends: default +rules: + line-length: + max: 120 + level: warning diff --git a/provisioning/roles/geerlingguy.ruby/tasks/install-from-source.yml b/provisioning/roles/geerlingguy.ruby/tasks/install-from-source.yml index 9ed2ce371..d65d895d0 100644 --- a/provisioning/roles/geerlingguy.ruby/tasks/install-from-source.yml +++ b/provisioning/roles/geerlingguy.ruby/tasks/install-from-source.yml @@ -1,27 +1,22 @@ --- -- name: Install packages required to build ruby (RedHat). - yum: "name={{ item }} state=present" - with_items: - - '@development' - - zlib-devel - - openssl-static +- name: Define ruby_build_packages. + set_fact: + ruby_build_packages: "{{ __ruby_build_packages }}" + when: ruby_build_packages is not defined + +- name: Install packages required to build ruby. + yum: + name: "{{ ruby_build_packages }}" + state: present when: ansible_os_family == 'RedHat' - name: Update apt cache (Debian). - apt: update_cache=yes cache_valid_time=86400 + apt: update_cache=true cache_valid_time=86400 when: ansible_os_family == 'Debian' - name: Install packages required to build ruby (Debian). apt: - name: - - build-essential - - zlib1g-dev - - libssl-dev - - libyaml-dev - - libreadline6-dev - - libncurses5-dev - - libffi-dev - - libgdbm-dev + name: "{{ ruby_build_packages }}" state: present when: ansible_os_family == 'Debian' @@ -34,7 +29,7 @@ unarchive: src: "{{ workspace }}/ruby-{{ ruby_version }}.tar.gz" dest: "{{ workspace }}/" - copy: no + copy: false - name: Build ruby. command: > @@ -42,7 +37,7 @@ chdir={{ workspace }}/ruby-{{ ruby_version }} creates=/usr/local/bin/ruby with_items: - - ./configure --enable-shared + - "{{ ruby_source_configure_command }}" - make - make install @@ -51,7 +46,7 @@ src: "/usr/local/bin/{{ item }}" dest: "/usr/bin/{{ item }}" state: link - force: yes + force: true with_items: - erb - gem diff --git a/provisioning/roles/geerlingguy.ruby/tasks/main.yml b/provisioning/roles/geerlingguy.ruby/tasks/main.yml index a6a759670..4bd908a33 100644 --- a/provisioning/roles/geerlingguy.ruby/tasks/main.yml +++ b/provisioning/roles/geerlingguy.ruby/tasks/main.yml @@ -1,18 +1,26 @@ --- +- name: Include OS-specific variables. + include_vars: "{{ ansible_os_family }}.yml" + +- name: Define ruby_packages. + set_fact: + ruby_packages: "{{ __ruby_packages }}" + when: ruby_packages is not defined + # Include OS-specific installation tasks. - include_tasks: setup-RedHat.yml when: - - ruby_install_from_source == False + - not ruby_install_from_source - ansible_os_family == 'RedHat' - include_tasks: setup-Debian.yml when: - - ruby_install_from_source == False + - not ruby_install_from_source - ansible_os_family == 'Debian' # Install ruby from source when ruby_install_from_source is true. - include_tasks: install-from-source.yml - when: ruby_install_from_source == True + when: ruby_install_from_source - name: Add user installed RubyGems bin directory to global $PATH. copy: @@ -29,6 +37,6 @@ gem: name: "{{ item }}" state: present - become: yes + become: true become_user: "{{ ruby_install_gems_user }}" with_items: "{{ ruby_install_gems }}" diff --git a/provisioning/roles/geerlingguy.ruby/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.ruby/tasks/setup-Debian.yml index 26aacd9b5..1b1cbac81 100644 --- a/provisioning/roles/geerlingguy.ruby/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.ruby/tasks/setup-Debian.yml @@ -9,12 +9,10 @@ - name: Install ruby and other required dependencies. apt: - name: - - ruby-full - - ruby-dev - - "{{ ruby_rubygems_package_name }}" - - build-essential - - autogen - - autoconf - - libtool + name: "{{ ruby_packages }}" + state: present + +- name: Install rubygems. + apt: + name: "{{ ruby_rubygems_package_name }}" state: present diff --git a/provisioning/roles/geerlingguy.ruby/tasks/setup-RedHat.yml b/provisioning/roles/geerlingguy.ruby/tasks/setup-RedHat.yml index 6e5df1cf4..86f84aea6 100644 --- a/provisioning/roles/geerlingguy.ruby/tasks/setup-RedHat.yml +++ b/provisioning/roles/geerlingguy.ruby/tasks/setup-RedHat.yml @@ -1,8 +1,5 @@ --- - name: Install ruby, rubygems, and development tools. - yum: "name={{ item }} state=present" - with_items: - - ruby - - ruby-devel - - "{{ ruby_rubygems_package_name }}" - - '@development' + yum: + name: "{{ ruby_packages }}" + state: present diff --git a/provisioning/roles/geerlingguy.ruby/tests/README.md b/provisioning/roles/geerlingguy.ruby/tests/README.md deleted file mode 100644 index 6fb211721..000000000 --- a/provisioning/roles/geerlingguy.ruby/tests/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Ansible Role tests - -To run the test playbook(s) in this directory: - - 1. Install and start Docker. - 1. Download the test shim (see .travis.yml file for the URL) into `tests/test.sh`: - - `wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/` - 1. Make the test shim executable: `chmod +x tests/test.sh`. - 1. Run (from the role root directory) `distro=[distro] playbook=[playbook] ./tests/test.sh` - -If you don't want the container to be automatically deleted after the test playbook is run, add the following environment variables: `cleanup=false container_id=$(date +%s)` diff --git a/provisioning/roles/geerlingguy.ruby/tests/test-source.yml b/provisioning/roles/geerlingguy.ruby/tests/test-source.yml deleted file mode 100644 index 083579338..000000000 --- a/provisioning/roles/geerlingguy.ruby/tests/test-source.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- -- hosts: all - - vars: - ruby_install_from_source: true - ruby_install_gems_user: root - ruby_install_gems: - - sass - - pre_tasks: - - name: Update apt cache. - apt: update_cache=yes cache_valid_time=600 - when: ansible_os_family == 'Debian' - - roles: - - role_under_test diff --git a/provisioning/roles/geerlingguy.ruby/tests/test.yml b/provisioning/roles/geerlingguy.ruby/tests/test.yml deleted file mode 100644 index dbf3a888b..000000000 --- a/provisioning/roles/geerlingguy.ruby/tests/test.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -- hosts: all - - vars: - ruby_install_gems_user: root - ruby_install_gems: - - sass - ruby_gems_bin_path: /root/.gem/ruby/bin - - pre_tasks: - - name: Update apt cache. - apt: update_cache=yes cache_valid_time=600 - when: ansible_os_family == 'Debian' - - - name: Use different gems for older OSes (Ubuntu 14.04). - set_fact: - ruby_install_gems: ['json'] - when: - - ansible_distribution == 'Ubuntu' - - ansible_distribution_version == '14.04' - - - name: Add rubygems bin dir to system-wide $PATH. - copy: - dest: /etc/profile.d/ruby.sh - content: 'PATH=$PATH:{{ ruby_gems_bin_path }}' - - roles: - - role_under_test diff --git a/provisioning/roles/geerlingguy.ruby/vars/Debian.yml b/provisioning/roles/geerlingguy.ruby/vars/Debian.yml new file mode 100644 index 000000000..3549cb1d8 --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/vars/Debian.yml @@ -0,0 +1,17 @@ +--- +__ruby_packages: + - ruby-full + - ruby-dev + - build-essential + - autogen + - autoconf + - libtool +__ruby_build_packages: + - build-essential + - zlib1g-dev + - libssl-dev + - libyaml-dev + - libreadline6-dev + - libncurses5-dev + - libffi-dev + - libgdbm-dev diff --git a/provisioning/roles/geerlingguy.ruby/vars/RedHat.yml b/provisioning/roles/geerlingguy.ruby/vars/RedHat.yml new file mode 100644 index 000000000..47e9766ac --- /dev/null +++ b/provisioning/roles/geerlingguy.ruby/vars/RedHat.yml @@ -0,0 +1,10 @@ +--- +__ruby_packages: + - ruby + - ruby-devel + - "{{ ruby_rubygems_package_name }}" + - '@development' +__ruby_build_packages: + - '@development' + - zlib-devel + - openssl-static diff --git a/provisioning/roles/geerlingguy.varnish/.travis.yml b/provisioning/roles/geerlingguy.varnish/.travis.yml index f04e37f69..e3369247c 100644 --- a/provisioning/roles/geerlingguy.varnish/.travis.yml +++ b/provisioning/roles/geerlingguy.varnish/.travis.yml @@ -17,7 +17,7 @@ env: install: # Install test dependencies. - - pip install molecule docker + - pip install molecule yamllint ansible-lint docker before_script: # Use actual Ansible Galaxy role name for the project directory. diff --git a/provisioning/roles/geerlingguy.varnish/molecule/default/yaml-lint.yml b/provisioning/roles/geerlingguy.varnish/.yamllint similarity index 100% rename from provisioning/roles/geerlingguy.varnish/molecule/default/yaml-lint.yml rename to provisioning/roles/geerlingguy.varnish/.yamllint diff --git a/provisioning/roles/geerlingguy.varnish/molecule/default/playbook.yml b/provisioning/roles/geerlingguy.varnish/molecule/default/converge.yml similarity index 100% rename from provisioning/roles/geerlingguy.varnish/molecule/default/playbook.yml rename to provisioning/roles/geerlingguy.varnish/molecule/default/converge.yml diff --git a/provisioning/roles/geerlingguy.varnish/molecule/default/molecule.yml b/provisioning/roles/geerlingguy.varnish/molecule/default/molecule.yml index 2ca6feaf9..38eb962bd 100644 --- a/provisioning/roles/geerlingguy.varnish/molecule/default/molecule.yml +++ b/provisioning/roles/geerlingguy.varnish/molecule/default/molecule.yml @@ -3,10 +3,9 @@ dependency: name: galaxy driver: name: docker -lint: - name: yamllint - options: - config-file: molecule/default/yaml-lint.yml +lint: | + yamllint . + ansible-lint platforms: - name: instance image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" @@ -17,13 +16,5 @@ platforms: pre_build_image: true provisioner: name: ansible - lint: - name: ansible-lint playbooks: - converge: ${MOLECULE_PLAYBOOK:-playbook.yml} -scenario: - name: default -verifier: - name: testinfra - lint: - name: flake8 + converge: ${MOLECULE_PLAYBOOK:-converge.yml} diff --git a/provisioning/roles/geerlingguy.varnish/tasks/setup-Debian.yml b/provisioning/roles/geerlingguy.varnish/tasks/setup-Debian.yml index 60f426f47..795d1f035 100644 --- a/provisioning/roles/geerlingguy.varnish/tasks/setup-Debian.yml +++ b/provisioning/roles/geerlingguy.varnish/tasks/setup-Debian.yml @@ -1,7 +1,9 @@ --- -- name: Ensure APT HTTPS Transport is installed. +- name: Ensure dependencies are present. apt: - name: apt-transport-https + name: + - apt-transport-https + - gnupg2 state: present - name: Add packagecloud.io Varnish apt key. From 6ccbf56c8727f259ca83249a77e7a2aa2304dc1d Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Fri, 21 Feb 2020 21:57:56 -0600 Subject: [PATCH 2/3] Drop the ansible-lint test for now to avoid pip versioning issues. --- tests/run-tests.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/run-tests.sh b/tests/run-tests.sh index 72a583d8b..21f7b96e7 100755 --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -101,10 +101,6 @@ docker exec $CONTAINER_ID cp $DRUPALVM_DIR/$COMPOSERFILE ${config_dir:-$DRUPALVM printf "\n"${green}"Checking playbook syntax..."${neutral}"\n" docker exec --tty $CONTAINER_ID env TERM=xterm ansible-playbook $DRUPALVM_DIR/provisioning/playbook.yml --syntax-check -# Run Ansible Lint. -docker exec $CONTAINER_ID bash -c "pip install ansible-lint" -docker exec $CONTAINER_ID bash -c "cd $DRUPALVM_DIR/provisioning && ansible-lint playbook.yml" || true - # Run the setup playbook. printf "\n"${green}"Running the setup playbook..."${neutral}"\n" docker exec --tty $CONTAINER_ID env TERM=xterm ansible-playbook /var/www/drupalvm/tests/test-setup.yml From a5acda95ff42ab130cfb24130547321acd2afa2a Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Fri, 21 Feb 2020 22:07:09 -0600 Subject: [PATCH 3/3] Default to python 2 still for backwards compatibility. --- .travis.yml | 6 +++--- provisioning/docker/bake.sh | 3 ++- tests/run-tests.sh | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index a192d0c95..595ada624 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,17 +20,20 @@ env: # Defaults - Ubuntu 18.04. - type: defaults distro: ubuntu1804 + tag: python2 # Defaults - Debian 9. - type: debian distro: debian9 # Defaults - CentOS 7. - type: centos distro: centos7 + tag: python2 local_config: tests/centos-7.config.yml # PHP 7.3 - Ubuntu 18.04. - type: defaults distro: ubuntu1804 + tag: python2 local_config: tests/ubuntu-18-php73.config.yml DRUSH_BIN: "${DRUPALVM_DIR}/drupal/vendor/bin/drush" TEST_INSTALLED_EXTRAS: false @@ -51,9 +54,6 @@ env: # TEST_INSTALLED_EXTRAS: false before_install: - # Pull container. - - docker pull geerlingguy/docker-${distro}-ansible:latest - # Install lint tools. - gem install rubocop diff --git a/provisioning/docker/bake.sh b/provisioning/docker/bake.sh index 36f60133f..aa65098df 100755 --- a/provisioning/docker/bake.sh +++ b/provisioning/docker/bake.sh @@ -15,6 +15,7 @@ DRUPALVM_HTTP_PORT="${DRUPALVM_HTTP_PORT:-80}" DRUPALVM_HTTPS_PORT="${DRUPALVM_HTTPS_PORT:-443}" DISTRO="${DISTRO:-ubuntu1804}" +TAG="${TAG:-python2}" OPTS="${OPTS:---privileged}" INIT="${INIT:-/lib/systemd/systemd}" @@ -41,7 +42,7 @@ docker run --name=$DRUPALVM_MACHINE_NAME -d \ -p $DRUPALVM_IP_ADDRESS:$DRUPALVM_HTTP_PORT:80 \ -p $DRUPALVM_IP_ADDRESS:$DRUPALVM_HTTPS_PORT:443 \ $OPTS \ - geerlingguy/docker-$DISTRO-ansible:latest \ + geerlingguy/docker-$DISTRO-ansible:$TAG \ $INIT # Create Drupal directory. diff --git a/tests/run-tests.sh b/tests/run-tests.sh index 21f7b96e7..0cc6a849f 100755 --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -15,6 +15,7 @@ TEST_INSTALLED_EXTRAS="${TEST_INSTALLED_EXTRAS:-true}" CONTAINER_ID="${CONTAINER_ID:-dvm-test}" type="${type:-tests/defaults}" distro="${distro:-ubuntu1604}" +tag="${tag:-latest}" cleanup="${cleanup:-true}" ## Set up vars for Docker setup. @@ -81,7 +82,7 @@ docker run --name=$CONTAINER_ID -d \ --add-host "$HOSTNAME drupalvm":127.0.0.1 \ -v $PWD:/var/www/drupalvm/:$volume_opts \ $opts \ - geerlingguy/docker-$distro-ansible:latest \ + geerlingguy/docker-$distro-ansible:$tag \ $init # Set up directories.