MAR-132: Pin packages as part of wsgi_website role test to ensure reproducability:
- Provide explicit list of packages being deployed. This should ensure we can always reproduce the tests without being affected by new releases of packages. - Updated expected requirements in test for the jedi version.
MAR-132: Added support for Debian 9 (Stretch) to database_server role:
- Updated Molecule test configuration to include Debian 9 Stretch in test matrix. - Updated tests related to UTF-8 configuration (differences between Debian 8 and 9). - Deploy UTF-8 configuration in alternate locations depending on what distro is being used. - Force set-up of root password on Debian Stretch (default is to use the unix_socket authentication).
MAR-132: Workarounds for wsgi_website Python virtual environment in Debian Stretch:
- Manually install setuptools in Python virtual environment on Debian Stretch, otherwise the pkg-resources==0.0.0 package will mess with pip freeze etc. - Add back installation of futures package, even on Python 3 (since it does not cause any harm). - A small cleanup of how requirements are treated will be done in separate ticket.
MAR-132: Added support for Debian 9 (Stretch) to wsgi_website role:
- Set the shell for application system account explicitly (workaround for Debian bug 865762 in Stretch). - Updated Molecule tests to cover Debian 9. - Updated Molecule test preparation playbook to account for a number of differences between Jessie and Stretch (mainly related to mailing functionality). - Renamed a couple of variables in test for sending out mails to make it clearer what is being looked up as part of regex matching. - Updated Molecule tests where certain paths depend on what Debian release they are ran against. - Split-up Jessie-specific tests into separate file. - Remove the /bin/ss utility instead of renaming it (testinfra socket tests do not work with /bin/ss).
MAR-132: Fix virtual environment set-up in wsgi_website role:
- Install more up-to-date version of pip. This fixes some issues related to pip freeze detecting argparse and wsgiref in virtualenv as separate packages. - Remove the pkg-resources package from virtualenv. Workaround for Debian-specific behaviour. More details at: - https://github.com/pypa/pip/issues/4022 - https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463 - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871790 - Deploy Gunicorn requirements file without switching to website admin user (otherwise Ansible fails to template the file due to permissions restrictions). - Updated test for checking packages installed in the virtualenv.
MAR-132: Added support for Debian 9 (Stretch) to php_website role:
- Implemented the necessary changes related to differences between PHP versions and related paths (PHP 5 vs PHP 7). - Set the shell for application system account explicitly (workaround for Debian bug 865762 in Stretch). - Updated Molecule tests to cover Debian 9. - Updated Molecule test preparation playbook to account for a number of differences between Jessie and Stretch (mainly related to mailing functionality). - Use more specific host groups in tests. - Renamed a couple of variables in test for sending out mails to make it clearer what is being looked up as part of regex matching. - Updated Molecule tests where certain paths depend on what Debian release they are ran against. - Split-up Jessie-specific tests into separate file.
MAR-132: Added support for Debian 9 (Stretch) to web_server role:
- Introduced internal parameters for controlling differing package names, service names, and paths for PHP FPM package. - Added Debian 9 machines to Molecule configuration, including the client machine. - Restructured slightly preparaiton playbook to support both Jessie and Stretch. - Added custom pytest fixture for having a better way to determine expected package names etc related to PHP. - Created copy of private key/certificate pair used for testing of mandatory parameters (to be used with Stretch machine). - Fixed invalid specification for hosts on top of which the connectivity test should be run. - Updated a couple of task names (avoiding to reference PHP 5). - Updated documentation.
MAR-132: Added support for Debian 9 (Stretch) to mail_server role:
- Updated Molecule configuration to include set-up of additional instances for testing. - Updated configuration for test instances. - Use separate clients in testing of Jessie/Stretch instances. - Duplicate private keys/certificates for testing of mandatory parameters on Debian 9. - Refactored testing of mail deliveries (via swaks) to use test-generated message ID - improves reliability and solves some incompatibilities between swaks version in Jessie and Stretch. - Updated tests for TLS testing to take into account newer OpenSSL error/output messages. A bit of an ugly hack at the moment, but beats duplicating tests for now.
MAR-132: Added support to xmpp_server role for Debian 9 (Stretch):
- Updated tests to include Debian 9 in testing. Existing private keys are reused where possible (since most of the naming is identical between the machines with jessie/stretch). - Updated invocation of sendxmpp in tests as workaround for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854210. - Updated testing of imported keys to accomodate differences between gpg/gpg2 (used by apt-key in Jessie/Stretch).
MAR-132: Add support for Debian 9 (Stretch) to ldap_server role:
- Updated Molecule tests to cover Debian 9 as well. - Remove the ss utility instead of renaming it when preparing for tests, and make sure the netstat utility is available. - Duplicate private key/certificate for mandatory parameters testing.
- Dynamically obtain inventory hostnames (don't hard-code them). - Parametrise connectivity test, switching to using inventory hostnames along the way (instead of hard-coded IPs in tests. - Populate /etc/hosts with inventory hostnames in client machine (used for connectivity tests).
MAR-131: Use Python 3 in test site wsgihello2 role:
- Switch role to use Python 3 via meta dependency. - Fix the demo application to work with Python 3. - Update ipcalc dependency (so it would work with Python 3).
MAR-131: Added support for specifying Python version in wsgi_website role:
- Introduced additional role parameter for specifying the Python version. - Updated tests to verify new functionality. - Fixed existing tests to account for differences between Python 2 and Python 3 - including changes to WSGI test applications. - Updated documentation, documenting new parameter and fixing one minor typo. - Updated release notes. - Bumped default version of Gunicorn/futures used.
- Do not produce warnings in case no certificates have been configured for checking. - Only send out mails about certificates that are about to expire. - Include information in how many days a certificate is going to expire. - Include information on whether the certificates has already expired.
MAR-129: Update instructions to address a couple of issues:
- Improved formatting in a number of places. - Fixed a bunch of typos etc. - Improved wording where relevant. - Moved around a couple of steps related to adding users to specific LDAP groups - otherwise we try to add them before groups are created. - Fixed some deprecated syntax for including playbooks.
MAR-129: Update development documentation for testsite:
- Update versions of VirtualBox/Vagrant that have been tested. - Move notes about how the servers have been set-up to towards beginning of section describing the test site. - Put deployment of test site into a sub-section of its own.
MAR-129: Updated testsite configuration and playbooks:
- Specify path to inventory file in testsite Ansible configuration. - Set-up group memberships in LDAP groups via separate play (since state: append does not work with stock ldap_entry - which is now used instead of m_ldap_entry). - Replace deprecated use of include with import_playbook.
- Removed the custom m_ldap_entry module used for managing LDAP entries. - Replaced the module usage with official ldap_entry and ldap_attr modules. - Updated role reference documentation. - Updated usage instructions since we can't misuse the m_ldap_entry any longer for adding members to groups.
MAR-129: Updated preseed role for Ansible 2.5.x and new Molecule:
- Include top-level linting configuration in test configuration. - Fixed linting errors. - Moved test playbook variables into group_vars. - Updated how hosts are referenced in tests.
MAR-129: Updated bootstrap role for Ansible 2.5.x and new Molecule:
- Include top-level lint configuration file. - Fixed linting errors. - Moved test playbook parameters into group_vars. - Fixed Ansible deprecation warnings. - Updated how the hosts are referenced in tests.
MAR-129: Updated xmpp_server role for Ansible 2.5.x and new Molecule:
- Include top-level lint configuration in test configuration. - Fixed linting errors. - Moved test playbook variables into group_vars and host_vars. - Fixed deprecation warnings from Ansible. - Updated how hosts are referenced within tests.
MAR-129: Updated wsgi_website role for Ansible 2.5.x and new Molecule:
- Include top-level linting configuration in test configuration file. - Fixed linting errors. - Updated Ansible deprecation warnings related to use of state=installed with apt module. - Updated how hosts are being referenced in tests. - Rename the 'ss' utility in order to properly test socket connectivity as a workaround for Testinfra bug.
MAR-129: Updated php_website role for Ansible 2.5.x and new Molecule:
- Include global linting configuration file in tests. - Fixed linting issues. - Fix deprecation warnings from Ansible (for apt module and state=installed). - Updated how the hosts are being referenced within tests.
MAR-129: Updated web_server role for Ansible 2.5.x and new Molecule:
- Fixed linting errors. - Include global linting configuration file in the test configuration. - Moved variables from the test playbook into group variables. - Updated how hosts are referenced in tests. - Fixed deprecation warnings.
MAR-129: Updated backup role for new Ansible and Molecule:
- Fixed linting errors. - Include top-level linting configuration in tests. - Moved variables from test playbook into group_vars. - Updated how the hosts are referenced in tests.
MAR-129: Updated mail_forwarder role for new Ansible and Molecule versions:
- Moved variables out of test playbook into group_vars. - Fixed linting issues. - Use top-level linting configuration file in tests. - Updated how the hosts are referenced when executing the tests.
MAR-129: Updated mail_server role for new Molecule and Ansible:
- Moved variables from test playbooks into group/host vars. - Fixed linting errors. - Reference custom top-level linting configuration file in tests. - Fixed deprecation errors reported by Ansible. - Updated how the hosts on which the tests should be run are referenced.
MAR-129: Updated ldap_server role for new Molecule and Ansible:
- Fixed syntax warnings. - Moved test playbook variables into group_vars. - Optimised the invocation of test playbook. - Remove the 'ss' utility from test machines in order to properly test the unix sockets. - Fixed how the hosts are being referenced in tests.
MAR-129: Updated LDAP client role and its tests for new Molecule and Ansible:
- Fixed linting issues. - Moved test playbook variables into group_vars. - Include linting configuration for tests from top-level directory. - Updated how the target hosts are refenced in tests. - Fixed Ansible warnings.
MAR-129: Updated database role for new Molecule and Ansible versions:
- Fixed linting issues. - Moved test variables into group_vars. - Renamed the server which effectively tests the optional parameters (mainly the backup). - Updated tests to use correct mechanism for obtaining the list of hosts on top of which the tests should be run.
- Move the 'ss' utility out of place in order to be able to test if sockets are open (seehttps://github.com/philpep/testinfra/pull/320). - Updated tests to use correct mechanism for setting-up list of machines where the tests should be run.
- Update how the hosts are being referenced in tests (for limiting the test runs). - Use "state: present" for package presence/installation. - Break-up long lines in tasks so they are under 160 characters length. - Fixed YAML linting issues.
MAR-129: Updated Molecule configuration for the backup_client role:
- Updates necessary for use with Molecule version 2.14. - Reference custom yamllint configuration file with custom rules. - Fix YAML linting errors in Molecule's own files.
- Updated Molecule to version 2.12.0, alongside its requirements. - Fixed tests for preseed role to account for new paths on destination servers (change in Molecule). - Updated wsgi_website test for pacakges installed in Python virtual environment.
MAR-129: Minor preparation for updating Ansible version:
- Ignore the pytest_cache directory in Git. - Updated Ansible to latest 2.3.x version in requirements file. - Make sure the SSH client private keys have correct permissions when testing the backup_server role (must be 0600), otherwise we get errors from SSH due to insecure permissions during testing. - Updated test for testing installed packages in the wsgi_website Python virtual environment to test against up-to-date packages. Might be nice to fix this one with something less hacky in the long run.
MAR-128: Updated script for running tests and documentation:
- Updated script, removing parts related to separate platform testing from old version of Molecule. - Updated instructions for running the test script.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Renamed hosts to include the Debian version. - Updated names for some of the test data to cater to change in host names. - Switched to using more robust task for populating /etc/hosts.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Fixed some linting issues. - Updated one of the tests that depend on output of pip freeze due to new versions of packages coming out. - Updated hostname to include Debian version (for future expansion). - Renamded some test data to match new hostname.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Renamed hosts instances to include Debian version in their hostnames. - Fixed some linting issues.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Introduced additional hosts for testing on different Debian versions.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Fixed some linting issues. - Updated hostname to include Debian version.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Fixed some linting issues. - Renamed the hosts to make it easier to extend in future. - Renamed some data files to ensure they correspond correctly to new hostnames. - Rewrote logic behind setting-up the /etc/hosts a bit, and expanded the names to include the new hostnames. - Updated a couple of tests to correspond to correct filenames (that have been renamed). - Updated a couple of tests to address the new server naming. - Set explicitly the backup client username to avoid 32-charactr limitation on Linux usernames.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Switched to extracting hostname instead of hard-coding it in a couple of tests. - Fixed some linting issues. - Rearranged IP addresses for test instances a bit. - Expanded on available hosts for testing all OS/paramter combinations. - Switched to using a more resilient way to populate /etc/hosts during prepartion phase. - Expanded connectivity tests to include all the introduced hosts.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Fixed some linting issues. - Use localhost as backup client server name. This should make it simpler in future to cover more platforms. - Set-up the /etc/hosts for tests with correct entries (primarily aliases towards localhost to make it less important what the hostname is). - Renamed private key/certificate files for parameters-mandatory server since server got renamed as well. - Updated IP addresses used for testing to make it easier to test new platforms in the future. - Use inventory_hostname-based parameterisation of tests where appropriate. Currently hard-coded value for this because host.ansible.get_variables() produces errors.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones).
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Fixed some linting issues.
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones). - Updated backup_server and backup_client configuration in order to make the backup testing more generic (and easier to update for future).
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones).
- Switch to new Molecule configuration. - Updated set-up playbook to use become: yes. - Moved some preparatory steps outside of the main playbook (eases idempotence tests). - Updated tests to reference the yml inventory file. - Updated tests to use new fixture (host instead of individual ones).