# This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . - name: install apache via apt apt: name: "{{item}}" state: present when: "ansible_os_family == 'Debian'" with_items: - apache2 - libapache2-mod-evasive - name: install apache via zypper zypper: name: apache2 state: present when: "ansible_os_family == 'Suse'" - name: disable userdir module apache2_module: name: userdir state: absent - name: disable userdir module, second run apache2_module: name: userdir state: absent register: disable - name: ensure apache2_module is idempotent assert: that: - 'not disable.changed' - name: enable userdir module apache2_module: name: userdir state: present register: enable - name: ensure changed on successful enable assert: that: - 'enable.changed' - name: enable userdir module, second run apache2_module: name: userdir state: present register: enabletwo - name: ensure apache2_module is idempotent assert: that: - 'not enabletwo.changed' - name: disable userdir module, final run apache2_module: name: userdir state: absent register: disablefinal - name: ensure changed on successful disable assert: that: - 'disablefinal.changed' - name: ensure autoindex enabled apache2_module: name: autoindex state: present - name: force disable of autoindex # bug #2499 apache2_module: name: autoindex state: absent force: True when: "ansible_os_family == 'Debian'" - name: enable evasive module, test https://github.com/ansible/ansible/issues/22635 apache2_module: name: evasive state: present when: "ansible_os_family == 'Debian'" - name: disable mpm modules apache2_module: name: "{{ item }}" state: absent ignore_configcheck: True with_items: - mpm_worker - mpm_event - mpm_prefork when: "ansible_os_family == 'Debian'" - name: enabled mpm_event apache2_module: name: mpm_event state: present ignore_configcheck: True register: enabledmpmevent when: "ansible_os_family == 'Debian'" - name: ensure changed mpm_event assert: that: - 'enabledmpmevent.changed' when: "ansible_os_family == 'Debian'" - name: switch between mpm_event and mpm_worker apache2_module: name: "{{ item.name }}" state: "{{ item.state }}" ignore_configcheck: True with_items: - name: mpm_event state: absent - name: mpm_worker state: present when: "ansible_os_family == 'Debian'" - name: ensure mpm_worker is already enabled apache2_module: name: mpm_worker state: present register: enabledmpmworker when: "ansible_os_family == 'Debian'" - name: ensure mpm_worker unchanged assert: that: - 'not enabledmpmworker.changed' when: "ansible_os_family == 'Debian'" - name: try to disable all mpm modules with configcheck apache2_module: name: "{{item}}" state: absent with_items: - mpm_worker - mpm_event - mpm_prefork ignore_errors: yes register: remove_with_configcheck when: "ansible_os_family == 'Debian'" - name: ensure configcheck fails task with when run without mpm modules assert: that: - "{{ item.failed }}" with_items: "{{ remove_with_configcheck.results }}" when: "ansible_os_family == 'Debian'" - name: try to disable all mpm modules without configcheck apache2_module: name: "{{item}}" state: absent ignore_configcheck: True with_items: - mpm_worker - mpm_event - mpm_prefork when: "ansible_os_family == 'Debian'"