9202b2b8d9
Fixes #129 (Github Issue).
Unfortunately, we rely on `service_facts`, which is only available
in Ansible >= 2.5.
There's little reason to stick to an old version such as Ansible 2.4:
- some time has passed since we've raised version requirements - it's
time to move into the future (a little bit)
- we've recently (in 82b4640072
) improved the way one can run
Ansible in a Docker container
From now on, Ansible >= 2.5 is required.
47 lines
1.9 KiB
YAML
47 lines
1.9 KiB
YAML
---
|
|
|
|
- set_fact:
|
|
matrix_ansible_outdated_fail_msg: "You are running on Ansible {{ ansible_version.string }}, which is not supported. See our guide about Ansible: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/ansible.md"
|
|
|
|
- name: Fail if running on Ansible < 2.5
|
|
fail:
|
|
msg: "{{ matrix_ansible_outdated_fail_msg }}"
|
|
when: "ansible_version.major <= 2 and ansible_version.minor < 5"
|
|
|
|
# Ansible 2.5.0 and 2.5.1 are known to have a bug with `include_tasks` + `with_items`.
|
|
# The bug has been fixed in Ansible 2.5.2.
|
|
- name: Fail if running on Ansible 2.5.x (lower than 2.5.2)
|
|
fail:
|
|
msg: "{{ matrix_ansible_outdated_fail_msg }}"
|
|
when: "ansible_version.major == 2 and ansible_version.minor == 5 and ansible_version.revision < 2"
|
|
|
|
- name: (Deprecation) Catch and report renamed settings
|
|
fail:
|
|
msg: >-
|
|
Your configuration contains a variable, which now has a different name.
|
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
|
when: "item.old in vars"
|
|
with_items:
|
|
- {'old': 'host_specific_hostname_identity', 'new': 'matrix_domain'}
|
|
- {'old': 'hostname_identity', 'new': 'matrix_domain'}
|
|
- {'old': 'hostname_matrix', 'new': 'matrix_server_fqn_matrix'}
|
|
- {'old': 'hostname_riot', 'new': 'matrix_server_fqn_riot'}
|
|
|
|
- name: Fail if required variables are undefined
|
|
fail:
|
|
msg: "The `{{ item }}` variable must be defined and have a non-null value"
|
|
with_items:
|
|
- matrix_domain
|
|
- matrix_server_fqn_matrix
|
|
- matrix_server_fqn_riot
|
|
when: "item not in vars or vars[item] is none"
|
|
|
|
- name: Fail if uppercase domain used
|
|
fail:
|
|
msg: "Detected that you're using an uppercase domain name - `{{ item }}`. This will cause trouble. Please use all-lowercase!"
|
|
with_items:
|
|
- "{{ matrix_domain }}"
|
|
- "{{ matrix_server_fqn_matrix }}"
|
|
- "{{ matrix_server_fqn_riot }}"
|
|
when: "item != item|lower"
|