(This e-mail was meant to be sent some time ago, looks like I've been
distracted and forgot to send it... Sorry!)
After more than a year in development, the new set of DebOps scripts has been
merged into the "master" branch of the DebOps monorepo. It took so long due to
various factors, mainly maintaining other parts of DebOps, but we're finally
The scripts have been redesigned from scratch. The 'debops' command now has
a proper help system, uses multiple levels of subcommands instead of separate
scripts to perform tasks and proper manual pages built from the Sphinx
documentation are included. The new scripts are focused on using Ansible
Collections instead of legacy roles - DebOps monorepo will be converted to
a native Ansible Collection in the near future. This should allow use of
external Collections as dependencies of the project.
Most of the existing functionality has been preserved - users can create new
project directories with or without encrypted 'secret/' directory and execute
Ansible playbooks in normal as well as check mode. The existing "legacy"
project directories should work as usual. One important change is in support
for the custom templates, files and tasks in several roles - if you rely on
this functionality, you will need to set the custom paths in the '.debops.cfg'
configuration file in a new section, '[override_paths]'. In the future, a new
modern project directories will be implemented, with multiple Ansible
inventories and better support for PKI management.
The 'debops-update', 'debops-task' and 'debops-defaults' scripts have been
removed. Access to role defaults will be implemented in the future, perhaps as
role argument specification to leverage the 'ansible-doc' command. Other two
scripts will not be back though - 'debops-task' can be replaced with direct
call using the 'ansible' command, and the 'debops-update' script is not needed
anymore because DebOps is contained in a single git repository and not
The new scripts will not be backported to the stable DebOps branches - their
users shouldn't worry about changing the functionality. New scripts will be
released officially with the v3.0.0 DebOps release in January 2022.
If you are an user of the "master" branch and you want to test the new
scripts, here's a quick procedure how to install them directly from the
monorepo, in a development or "editable" mode:
1. Uninstall existing scripts, either from the UNIX account or from
pip3 uninstall debops
2. Make sure that there are no 'debops*' scripts left in the '/usr/local/bin/' or
3. Clone the DebOps monorepo if you haven't done this yet:
git clone https://github.com/debops/debops ~/src/github.com/debops/debops
4. Install the DebOps scripts in editable mode on the UNIX account:
pip3 install --editable ~/src/github.com/debops/debops
If the installation is successful, running 'debops --version' should show you
a string similar to:
You can check out the new help system using 'debops --help' command. Various
subcommands also have their own --help pages.
With the above method, the manual pages will not be installed by default. You
can build them in the DebOps monorepo using the 'make man' command (Sphinx
packages are required for this), the manuals will be built in the
'docs/_build/man/' directory and can be read using the 'man' command, for
example 'man docs/_build/man/debops.1'.
Alternatively, you can build a sdist or wheel Python package with 'make sdist'
or 'make wheel' and install it manually via 'pip3' command. With this method,
the manual pages will be available via 'man', for example 'man debops'.
The most used command, "debops", will not work as expected anymore. There's no
default playbook if none has been specified (this probably will be implemented
via the new configuration system). Its equivalent now is:
debops run site
Check the 'debops run --help' for more details.
The new scripts have been in development for a while, and I'm happy that they
are now in a state that can replace the existing ones. This is only just
beginning though - there will be new functionality in the future, for example
support for git-backed project directories, 'git-crypt' encryption which will
replace the EncFS filesystem, new project directory layout, support for PKI
management on the Ansible Controller, and much more. For now please test the
new scripts and report any bugs or issues that you can find. One thing to fix
is the project documentation - the Getting Started Guide has been updated, but
there are other parts where existing documentation might be outdated or
inaccurate; they will be updated at a later date.
Till next time!
If you're a happy DebOps user and want to help out with the project's
ongoing development work, there is now an easy way to get started. The
issue tracker on GitHub currently has eight issues open that we consider
suitable for first-time contributors. These are relatively trivial fixes
that shouldn't take much time, effort or knowledge to resolve. Working on
these issues is nontheless incredibly valuable to the project because it
enables Maciej and other core contributors to work on harder, more
important issues instead.
The list is here:
You can chat with other developers on the IRC/Matrix channels. There is
also a separate mailing list for development, called debops-devel. Feel
free to ask any questions there about DebOps development.