diff --git a/roles/wsgi_website/defaults/main.yml b/roles/wsgi_website/defaults/main.yml index 1375ec02bbf08af687a1a1f969335448675a198e..e6d8898bd847f20f414bccf22e173e755fdfec82 100644 --- a/roles/wsgi_website/defaults/main.yml +++ b/roles/wsgi_website/defaults/main.yml @@ -1,11 +1,11 @@ --- additional_nginx_config: {} -enforce_https: True +enforce_https: true packages: [] rewrites: [] static_locations: [] -use_paste: False +use_paste: false virtualenv_packages: [] environment_variables: {} https_tls_certificate: "{{ lookup('file', tls_certificate_dir + '/' + fqdn + '_https.pem') }}" diff --git a/roles/wsgi_website/meta/main.yml b/roles/wsgi_website/meta/main.yml index 7c80270ceb5a0b33bf6d593ac5c959efdddc6a28..2febb79042f268455339772450759aff51cef860 100644 --- a/roles/wsgi_website/meta/main.yml +++ b/roles/wsgi_website/meta/main.yml @@ -1,6 +1,6 @@ --- -allow_duplicates: yes +allow_duplicates: true dependencies: - common diff --git a/roles/wsgi_website/molecule/default/create.yml b/roles/wsgi_website/molecule/default/create.yml index f8eb37cd4df02c540216c02791d0c50870986202..ce8657f9bae3be7f42731fd1efe77e87a62afcd9 100644 --- a/roles/wsgi_website/molecule/default/create.yml +++ b/roles/wsgi_website/molecule/default/create.yml @@ -2,7 +2,7 @@ - name: Create hosts: localhost connection: local - gather_facts: False + gather_facts: false no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}" vars: molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" diff --git a/roles/wsgi_website/molecule/default/destroy.yml b/roles/wsgi_website/molecule/default/destroy.yml index 3972a2df8fafe515b30a74f951499b83aae8449c..8f0a3703672765e77f4f1a3a8046a1f2b561a7a8 100644 --- a/roles/wsgi_website/molecule/default/destroy.yml +++ b/roles/wsgi_website/molecule/default/destroy.yml @@ -3,7 +3,7 @@ - name: Destroy hosts: localhost connection: local - gather_facts: False + gather_facts: false no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}" vars: molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" diff --git a/roles/wsgi_website/molecule/default/molecule.yml b/roles/wsgi_website/molecule/default/molecule.yml index 6921a1765a66ee3e3052cda605b7f9233b41c241..10af90780cb1b084286d6d1f0b00e7d29ce8546e 100644 --- a/roles/wsgi_website/molecule/default/molecule.yml +++ b/roles/wsgi_website/molecule/default/molecule.yml @@ -9,6 +9,8 @@ driver: lint: name: yamllint + options: + config-file: ../../.yamllint.yml platforms: diff --git a/roles/wsgi_website/molecule/default/playbook.yml b/roles/wsgi_website/molecule/default/playbook.yml index e98fa0928c876936a4e7ea7e8accc624378951ac..05ee8867ba63c15c189bcb14d3b212537eda4fa4 100644 --- a/roles/wsgi_website/molecule/default/playbook.yml +++ b/roles/wsgi_website/molecule/default/playbook.yml @@ -1,7 +1,7 @@ --- - hosts: wsgi-website - become: yes + become: true vars: # common ca_certificates: @@ -26,7 +26,7 @@ - comment: Custom missing page. value: error_page 404 /my/own/error/page; admin_uid: 5000 - enforce_https: no + enforce_https: false environment_indicator: background_colour: "#ff0000" text_colour: "#00ff00" @@ -49,7 +49,7 @@ - /static/ - /media/ uid: 5001 - use_paste: no + use_paste: false virtualenv_packages: - dnspython==1.15.0,<1.20.0 - ptpython==0.41 @@ -60,7 +60,7 @@ - role: wsgi_website fqdn: parameters-paste-req - use_paste: yes + use_paste: true virtualenv_packages: - click==6.7 - Flask==0.12.2 @@ -80,7 +80,7 @@ https_tls_key: "{{ lookup('file', 'tests/data/x509/parameters-paste-req_https.key.pem') }}" - hosts: wsgi-website - become: yes + become: true tasks: # parameters-mandatory application - name: Set-up directories where application files are hosted at diff --git a/roles/wsgi_website/molecule/default/prepare.yml b/roles/wsgi_website/molecule/default/prepare.yml index 6792777f1ddb6f7ff8399383dd318c0a25ae41a5..bed5c4baf2b6830ae2dd982b8726cd0d30ed84c3 100644 --- a/roles/wsgi_website/molecule/default/prepare.yml +++ b/roles/wsgi_website/molecule/default/prepare.yml @@ -2,21 +2,21 @@ - name: Prepare hosts: all - gather_facts: False + gather_facts: false tasks: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) - become: True - changed_when: False + become: true + changed_when: false - hosts: wsgi-website - become: yes + become: true tasks: - name: Update all caches to avoid errors due to missing remote archives apt: - update_cache: yes - changed_when: False + update_cache: true + changed_when: false - name: Set-up /etc/hosts entries lineinfile: @@ -26,17 +26,17 @@ - name: Install curl for testing redirects and webpage content apt: name: curl - state: installed + state: present - name: Install swaks for testing mail forwarding apt: name: swaks - state: installed + state: present - name: Install Postfix for testing mail forwarding (Exim4 not covered) apt: name: postfix - state: installed + state: present - name: Set-up group for an additional user group: @@ -48,3 +48,6 @@ name: user group: user shell: /bin/bash + + - name: Rename the ss utility (see https://github.com/philpep/testinfra/pull/320) + command: "mv /bin/ss /bin/ss.bak" diff --git a/roles/wsgi_website/molecule/default/tests/test_default.py b/roles/wsgi_website/molecule/default/tests/test_default.py index e4c7de281e46a01bcde7f3db1b20809188c093b6..93b6a6a9714b3ed52a71626c9ac37cd553556a93 100644 --- a/roles/wsgi_website/molecule/default/tests/test_default.py +++ b/roles/wsgi_website/molecule/default/tests/test_default.py @@ -1,8 +1,10 @@ +import os + import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('all') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['all']) def test_hosts_file(host): diff --git a/roles/wsgi_website/molecule/default/tests/test_parameters_mandatory.py b/roles/wsgi_website/molecule/default/tests/test_parameters_mandatory.py index 96d572ddc7d2e8cdb843a54a86294e444c7cd9ec..7e6bf81a9ac362c017724967697b8434d76faa47 100644 --- a/roles/wsgi_website/molecule/default/tests/test_parameters_mandatory.py +++ b/roles/wsgi_website/molecule/default/tests/test_parameters_mandatory.py @@ -1,3 +1,4 @@ +import os import re import time @@ -5,7 +6,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('all') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['all']) def test_website_group(host): diff --git a/roles/wsgi_website/molecule/default/tests/test_parameters_optional.py b/roles/wsgi_website/molecule/default/tests/test_parameters_optional.py index 1a9e458d0e134c931a77915d39e4d948af1b14fd..01f7467495c4b006ecf2f4196a38e41c97264eca 100644 --- a/roles/wsgi_website/molecule/default/tests/test_parameters_optional.py +++ b/roles/wsgi_website/molecule/default/tests/test_parameters_optional.py @@ -1,3 +1,4 @@ +import os import re import time @@ -5,7 +6,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('all') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['all']) def test_website_group(host): diff --git a/roles/wsgi_website/molecule/default/tests/test_parameters_paste_req.py b/roles/wsgi_website/molecule/default/tests/test_parameters_paste_req.py index 7140c3f7c263b361d32705f814060ea8d2437171..4e8cc52684713101872aba659235e6c11db1baee 100644 --- a/roles/wsgi_website/molecule/default/tests/test_parameters_paste_req.py +++ b/roles/wsgi_website/molecule/default/tests/test_parameters_paste_req.py @@ -1,3 +1,4 @@ +import os import re import time @@ -5,7 +6,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('all') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['all']) def test_website_group(host): diff --git a/roles/wsgi_website/tasks/main.yml b/roles/wsgi_website/tasks/main.yml index 999471d12e0939611b5baca849f92f15afd8667b..7a07ae984c935b60ea89c7d034ac94ff1fffcb6b 100644 --- a/roles/wsgi_website/tasks/main.yml +++ b/roles/wsgi_website/tasks/main.yml @@ -12,7 +12,7 @@ uid: "{{ admin_uid | default(omit) }}" group: "{{ user }}" shell: /bin/bash - createhome: yes + createhome: true home: "{{ home }}" state: present @@ -46,8 +46,8 @@ uid: "{{ uid | default(omit) }}" group: "{{ user }}" comment: "umask=0007" - system: yes - createhome: no + system: true + createhome: false state: present home: "{{ home }}" @@ -55,7 +55,7 @@ user: name: www-data groups: "{{ user }}" - append: yes + append: true notify: - Restart nginx @@ -97,7 +97,7 @@ command: '/usr/bin/virtualenv --prompt "({{ fqdn }})" "{{ home }}/virtualenv"' args: creates: "{{ home }}/virtualenv/bin/activate" - become: yes + become: true become_user: "{{ admin }}" tags: # [ANSIBLE0012] Commands should not change things if nothing needs doing @@ -122,7 +122,7 @@ mode: 0750 - name: Install WSGI server - become: yes + become: true become_user: "{{ admin }}" pip: name: "{{ item.package }}" @@ -143,7 +143,7 @@ when: "wsgi_requirements" - name: Install additional packages in Python virtual environment - become: yes + become: true become_user: "{{ admin }}" pip: name: "{{ virtualenv_packages }}" @@ -180,7 +180,7 @@ - name: Enable the website service service: name: "{{ fqdn }}" - enabled: yes + enabled: true state: started - name: Create directory where static files can be served from diff --git a/roles/wsgi_website/tasks/requirements.yml b/roles/wsgi_website/tasks/requirements.yml index 9e7ddb29004fd92baa49f791fac5e4318f8f6589..b0f3017790cc32c625b9201631face87d355836c 100644 --- a/roles/wsgi_website/tasks/requirements.yml +++ b/roles/wsgi_website/tasks/requirements.yml @@ -20,7 +20,7 @@ - wsgi_requirements.txt - name: Deploy Gunicorn requirements file for installation purposes - become: yes + become: true become_user: "{{ admin }}" template: src: "wsgi_requirements.txt.j2" @@ -30,7 +30,7 @@ mode: 0640 - name: Install Gunicorn via requirements file - become: yes + become: true become_user: "{{ admin }}" pip: requirements: "{{ home }}/.wsgi_requirements.txt"