Files
@ 1e88ff36efbd
Branch filter:
Location: majic-ansible-roles/roles/php_website/molecule/default/prepare.yml
1e88ff36efbd
3.5 KiB
text/x-yaml
MAR-243: Drop inventory_hostname use from tests where possible:
- Primarily focused on Ansible playbooks and variable files.
- The variable is still used within some Python test fixtures. Test
behaviour should still be correct, with one advantage being that
lookups should be much faster than using the setup module (which
would require running Ansible code on each remote/test machine).
- Primarily focused on Ansible playbooks and variable files.
- The variable is still used within some Python test fixtures. Test
behaviour should still be correct, with one advantage being that
lookups should be much faster than using the setup module (which
would require running Ansible code on each remote/test machine).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | ---
- 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_https
fqdn: parameters-mandatory
- name: parameters-optional_https
fqdn: parameters-optional.local
- name: php-website_https
fqdn: php-website
- 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)
become: true
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: Prepare, test fixtures
hosts: php-website
become: true
tasks:
- name: Set-up /etc/hosts entries
ansible.builtin.lineinfile:
dest: /etc/hosts
line: "{{ ansible_eth0.ipv4.address }} parameters-mandatory parameters-optional.local php-website"
- name: Install curl for testing redirects and webpage content
ansible.builtin.apt:
name: curl
state: present
- name: Install swaks for testing mail forwarding
ansible.builtin.apt:
name: swaks
state: present
- name: Install Postfix for testing mail forwarding (Exim4 not covered)
ansible.builtin.apt:
name: postfix
state: present
- name: Install procmail for consistency with mail_server and mail_forwarder roles
ansible.builtin.apt:
name: procmail
state: present
- name: Update Postfix configuration
ansible.builtin.lineinfile:
path: /etc/postfix/main.cf
regexp: "^{{ item.key }}"
line: "{{ item.value }}"
state: present
with_dict:
myhostname: "myhostname = {{ ansible_fqdn }}"
mailbox_command: 'mailbox_command = procmail -a "$EXTENSION"'
notify:
- Restart Postfix
- name: Direct all mails from the root account to vagrant
ansible.builtin.lineinfile:
path: /etc/aliases
regexp: "^root"
line: "root: vagrant"
state: present
notify:
- Generate aliases database
- name: Set-up group for an additional user
ansible.builtin.group:
name: user
state: present
- name: Set-up additional user for testing mail delivery
ansible.builtin.user:
name: user
group: user
shell: /bin/bash
handlers:
- name: Restart Postfix
ansible.builtin.service:
name: postfix
state: restarted
- name: Generate aliases database # noqa no-changed-when
ansible.builtin.command: "/usr/bin/newaliases"
# [no-changed-when] Commands should not change things if nothing needs doing
# Does not matter in test prepare stage.
|