Getting started

Example inventory

To manage Apache on a given host or set of hosts, they need to be added to the [debops_service_apache] Ansible group in the inventory:


Example playbook

If you are using this role without DebOps, here's an example Ansible playbook that uses the debops.apache role:


- name: Manage and configure the Apache HTTP Server
  collections: [ 'debops.debops', 'debops.roles01',
                 'debops.roles02', 'debops.roles03' ]
  hosts: [ 'debops_service_apache' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'


    - name: Prepare apache environment
        name: 'apache'
        tasks_from: 'main_env'
      tags: [ 'role::apache', 'role::apache:env' ]


    - role: ferm
      tags: [ 'role::ferm', 'skip::ferm' ]
        - '{{ apache__ferm__dependent_rules }}'

    - role: apache
      tags: [ 'role::apache', 'skip::apache' ]

Ansible tags

You can use Ansible --tags or --skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after a host was first configured to speed up playbook execution, when you are sure that most of the configuration is already in the desired state.

Available role tags:


Environment role tag, should be used in the playbook to execute a special environment role contained in the main role. The environment role prepares the environment for other dependency roles to work correctly.


Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.


Tasks related to system package management like installing or removing packages.


Tasks related to Apache modules.


Tasks related to Apache virtual hosts.