Files @ 0a435b5ba2cf
Branch filter:

Location: majic-ansible-roles/roles/web_server/molecule/default/prepare.yml - annotation

branko
MAR-218: Upgrade test site for Ansible 10.x and fix linting errors:

- Disable name checks when importing playbooks into top-level playbook
to avoid naming duplication.
eee778bc2d7c
eee778bc2d7c
694893c0259a
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
c10934519e18
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
c10934519e18
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
70ed9e45e116
70ed9e45e116
c10934519e18
70ed9e45e116
70ed9e45e116
70ed9e45e116
70ed9e45e116
eee778bc2d7c
eee778bc2d7c
694893c0259a
a5f4c1ec6853
eee778bc2d7c
694893c0259a
eee778bc2d7c
c10934519e18
a5f4c1ec6853
eee778bc2d7c
eee778bc2d7c
c10934519e18
a5f4c1ec6853
a5f4c1ec6853
eee778bc2d7c
a8ad1fdf6f60
c10934519e18
f7c1f4c841f8
f7c1f4c841f8
f7c1f4c841f8
a8ad1fdf6f60
a8ad1fdf6f60
694893c0259a
694893c0259a
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
c10934519e18
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
ab20d5b216c4
7cabc17c71c3
ab20d5b216c4
ab20d5b216c4
694893c0259a
694893c0259a
34dffc4a5ea3
34dffc4a5ea3
34dffc4a5ea3
34dffc4a5ea3
c10934519e18
34dffc4a5ea3
34dffc4a5ea3
34dffc4a5ea3
34dffc4a5ea3
34dffc4a5ea3
7cabc17c71c3
34dffc4a5ea3
34dffc4a5ea3
fc2c40c98e0c
ab20d5b216c4
ab20d5b216c4
34dffc4a5ea3
34dffc4a5ea3
c10934519e18
34dffc4a5ea3
34dffc4a5ea3
34dffc4a5ea3
694893c0259a
694893c0259a
a5f4c1ec6853
eee778bc2d7c
eee778bc2d7c
eee778bc2d7c
c10934519e18
eee778bc2d7c
a5f4c1ec6853
eee778bc2d7c
eee778bc2d7c
c10934519e18
eee778bc2d7c
a5f4c1ec6853
eee778bc2d7c
eee778bc2d7c
c10934519e18
70ed9e45e116
eee778bc2d7c
eee778bc2d7c
eee778bc2d7c
7cabc17c71c3
eee778bc2d7c
eee778bc2d7c
eee778bc2d7c
eee778bc2d7c
eee778bc2d7c
2d15529786b7
c10934519e18
2d15529786b7
2d15529786b7
---

- name: Prepare, test fixtures
  hosts: localhost
  connection: local
  gather_facts: false
  tasks:

    - name: Initialise CA hierarchy
      ansible.builtin.command: "gimmecert init"
      args:
        creates: ".gimmecert/ca/level1.cert.pem"
        chdir: "tests/data/"

    - name: Generate server private keys and certificates
      ansible.builtin.command:
      args:
        chdir: "tests/data/"
        creates: ".gimmecert/server/{{ item.name }}.cert.pem"
        argv:
          - "gimmecert"
          - "server"
          - "{{ item.name }}"
          - "{{ item.fqdn }}"
      with_items:
        - name: parameters-mandatory-bookworm_https
          fqdn: parameters-mandatory-bookworm
        - name: parameters-optional-bookworm_https
          fqdn: parameters-optional-bookworm

    - name: Set-up link to generated X.509 material
      ansible.builtin.file:
        src: ".gimmecert"
        dest: "tests/data/x509"
        state: link

- name: Prepare
  hosts: all
  become: true
  gather_facts: false
  tasks:

    - name: Install python for Ansible
      ansible.builtin.raw: test -e /usr/bin/python3 || (apt -y update && apt install -y python3-minimal)
      changed_when: false

    - name: Update all caches to avoid errors due to missing remote archives
      ansible.builtin.apt:
        update_cache: true
      changed_when: false

    - name: Install tools for testing
      ansible.builtin.apt:
        name:
          - gnutls-bin
          - nmap
        state: present

- name: Prepare, test fixtures
  hosts: bookworm
  become: true
  tasks:

    - name: Enable TLSv1.0+ in global OpenSSL configuration file in order to be able to test the web_server_tls_protocols parameter
      ansible.builtin.blockinfile:
        path: "/etc/ssl/openssl.cnf"
        block: |
          [openssl_init]
          ssl_conf = ssl_sect

          [ssl_sect]
          system_default = system_default_sect

          [system_default_sect]
          MinProtocol = TLSv1.1
          CipherString = DEFAULT@SECLEVEL=0
        owner: root
        group: root
        mode: "0644"
        state: present

- name: Prepare, test fixtures
  hosts: all
  become: true
  tasks:

    - name: Set-up the hosts file
      ansible.builtin.lineinfile:
        path: /etc/hosts
        regexp: "^{{ item.key }}"
        line: "{{ item.key }} {{ item.value }}"
        owner: root
        group: root
        mode: "0644"
        state: present
      with_dict:
        192.168.56.11: "client"
        192.168.56.21: "parameters-mandatory-bookworm"
        192.168.56.22: "parameters-optional-bookworm"

    - name: Install curl for testing redirects and webpage content
      ansible.builtin.apt:
        name: curl
        state: present

- name: Prepare, helpers
  hosts: client
  become: true
  tasks:

    - name: Install tool for testing TCP connectivity
      ansible.builtin.apt:
        name: hping3
        state: present

    - name: Install console-based web browser for interactive testing
      ansible.builtin.apt:
        name: lynx
        state: present

    - name: Deploy CA certificate
      ansible.builtin.copy:
        src: tests/data/x509/ca/level1.cert.pem
        dest: /usr/local/share/ca-certificates/testca.crt
        owner: root
        group: root
        mode: "0644"
      notify:
        - Update CA certificate cache

  handlers:

    - name: Update CA certificate cache  # noqa no-changed-when
      ansible.builtin.command: /usr/sbin/update-ca-certificates --fresh
      # [no-changed-when] Commands should not change things if nothing needs doing
      #   Does not matter in test prepare stage.