Add support for OpenSSH v8 (ouput of `ssh-keygen` changed slightly) in
module `ssh_cert` and use a better implementation for multiple user CA.
Now we are reading user_ca from `group_vars/all.yaml`.
`user_ca_keys` should be list of each allowed User CA on one host (in
this way is easier to rotate CAs without reissuing keys to each user at
the same time).
The production CA must be the first one in the list. Host certificate
will be checked only against the first CA and updated if their host key
was issued from another CA in the list.
For this reason now we are using a template to create
`/etc/ssh/user_ca.pub` on the target, to preserve the key order.
`group_vars/all.yaml.example` has been updated to reflect the new usage.
- New apt multipackage style
- Tabulation in `templates/interfaces.j2` and in `/etc/lvm/lvm.conf`
line fixed: in Debian buster tabulation is used to indent this config
files by default.
`lxc-ssh.py` removed.
All Playbbooks now user `ssh_lxc` connection.
`ansible_ssh_lxc_name` variable used to specify container name.
Tested and worked correctly with `python==3.8.2` and `ansible==2.9.6` on the
controller and `python==2.7` on the target.
Modification of the stock connection plugin ssh.py to use lxc-attach on
the target host.
We replace any `<cmd>` with
`lxc-attach -n <container_name> /bin/sh -c '<cmd>'`
before sending it through the ssh connection.
Based on the original idea of *Pierre Chifflier* availabe on [GitHub].
The container name should be passed as the `ansible_ssh_lxc_name`
variable.
The `ansible_docker_extra_args` variable is still working for backward
compatibiliy.
ToDo: The docstrings need to be updated, they are still mostly the ones
from ssh.py connection plugin.
We figured out the proper method to access inventory variables (see
README.md in [GitHub]), they need to be propery specified inside the
DOCUMENTATION of the Connection [1], and then they can be obtained with the
`Plugin.get_option()` method. That method should not be called in the
`__init__()`, because options are not yet initialized. Calling it in
`_connect()` returned the correct option.
[GitHub]: https://github.com/chifflier/ansible-lxc-ssh
[1]: https://docs.ansible.com/ansible/2.9/dev_guide/developing_plugins.html
First step to develop a new cleaner ssh_lxc interface.
Here we clone `ansible/plugins/connection/ssh.py` from Ansible version
2.9.6.
It will be adapted to use `lxc-attach` on the target host.
- remove the handling of which template to use
- do not access parent role
- update riot-web nginx configuration
- update icinga role to use new nginx templating
- update synapse nginx configuration
- update matrix role to use new nginx templates
- update dokuwiki to use new nginx template
- extend nginx template in dokuwiki
- update login role to new nginx templates
- add protocol for default option
- add extra block to nginx template
- update riote-web version
- fix template extension for riot web nginx definition
- update login template for nginx endpoint