Project roadmap

This is a rough list of things that are being worked on or planned to do in the DebOps playbooks, roles and scripts. Not sure about the structure of this page yet, so these are things you should probably be aware of if you plan to use DebOps.

More changes will be added in the future as I remember them. :-)

Project-wide changes

Move hard role dependencies to debops-playbooks

This allows different roles like debops.nginx to be used with external Ansible roles. Hard dependencies like 'debops.ferm', databases, programming languages are moved to the playbooks.

This shouldn't result in any serious problems if you use debops-playbooks. If you use your own set of playbooks, you might need to track the changes and add missing roles to your plays as needed.

Refs: RFC

Move all role variables from 'vars/' to 'defaults/'

The old roles have some of their variables in vars/main.yml instead of defaults/main.yml, for various reasons. This makes their modification through the inventory impossible. These variables should be moved to the defaults/main.yml file.

Convert variables to have more distinct namespace

This is done so that interaction between roles is easier to notice, because there are longer and longer variable names. This is more important when roles are interacting.

For example:

iscsi_unattended_upgrades_dependent_blacklist: [ 'some-package' ]
unattended_upgrades_dependent_blacklist: '{{ iscsi_unattended_upgrades_dependent_blacklist }}'


iscsi__unattended_upgrades__dependent_blacklist: [ 'some-package' ]
unattended_upgrades__dependent_blacklist: '{{ iscsi__unattended_upgrades__dependent_blacklist }}'

This is a long-term task and will result in some roles being broken for a bit when variable names are synchronized between them. New roles should be written with this variable namespacing in mind.

Roles should provide a way to change the package list they install

Each role should use, preferably, at least one list of APT packages that are installed as a “base” and a separate list for additional packages, if needed. That way users can specify any packages that are missing at the correct time in the playbook run.

Other changes

Move the mailing list to Mailman

Current DebOps mailing list is not very convenient, especially that it lacks support for monospace font and the server strips out GPG signatures (apparently). The mailing list could be moved to project's own Mailman instance, allowing multiple mailing lists and better support for GPG. It will also provide a readily available “proof of concept” host that uses multiple DebOps roles for its configuration.

Create a design document?

It might be beneficial to create a general design document which would contain information about what is the overall direction of the project, what is the scope of various Ansible roles, etc.