Hello everyone,
(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
here. :-)
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
multiple ones.
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
a virtualenv:
pip3 uninstall debops
2. Make sure that there are no 'debops*' scripts left in the
'/usr/local/bin/' or
'~/.local/bin/' directory.
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:
debops 2.3.0-400-g5f5280849
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!
Maciej