Changeset - d6f13f94f008
[Not reviewed]
0 6 0
Branko Majic (branko) - 21 months ago 2024-03-04 23:27:28
branko@majic.rs
MAR-192: Fix missing dnspython library as requiremnts for running the roles:

- Turns out there is still one usage left in the mail_forwarder role.
- It might be a good idea to try to get rid of that single usage to
make the firewall coming up more reliable during boot time.
6 files changed with 18 insertions and 12 deletions:
0 comments (0 inline, 0 general)
docs/about.rst
Show inline comments
 
@@ -8,27 +8,28 @@ The roles are kept as a separate project in hope of making them potentially
 
useful to wider audience, and for reference purposes.
 

	
 
Roles cover different aspects of infrastructure, such as mail servers, web
 
servers, web applications etc. The roles are mainly well-suited for smaller
 
installations.
 

	
 
Roles are written for use with *Debian GNU/Linux*. For more details on
 
supported releases, see :ref:`rolereference`.
 

	
 
At the moment, the roles have been written for and tested against **Ansible
 
2.9.x**.
 

	
 
The role also utilises the ``ipv4/ipv6`` lookup plugins which require
 
``netaddr`` package to be installed. Make sure you have the package
 
available on controller machine.
 
The roles also utilise the ``dig`` and ``ipv4/ipv6`` lookup plugins
 
which require ``dnspython`` and ``netaddr`` packages (respectively) to
 
be installed. Make sure you have the packages available on controller
 
machine.
 

	
 

	
 
Why were these roles created?
 
-----------------------------
 

	
 
For a long time I have had a couple of Internet-facing servers where I hosted
 
all the IT infrastructure I needed for my day-to-day life.
 

	
 
This started off with some basic services, like mail and XMPP server, and in
 
time extended to include a web server, code repository etc.
 

	
 
As the number of services I used grew, I found it more difficult to track
docs/index.rst
Show inline comments
 
@@ -8,27 +8,28 @@ The roles are kept as a separate project in hope of making them potentially
 
useful to wider audience, and for reference purposes.
 

	
 
Roles cover different aspects of infrastructure, such as mail servers, web
 
servers, web applications etc. The roles are mainly well-suited for smaller
 
installations.
 

	
 
Roles are written for use with *Debian GNU/Linux*. For more details on
 
supported releases, see :ref:`rolereference`.
 

	
 
At the moment, the roles have been written for and tested against **Ansible
 
2.9.x**.
 

	
 
The role also utilises the ``ipv4/ipv6`` lookup plugins which require
 
``netaddr`` package to be installed. Make sure you have the package
 
available on controller machine.
 
The roles also utilise the ``dig`` and ``ipv4/ipv6`` lookup plugins
 
which require ``dnspython`` and ``netaddr`` packages (respectively) to
 
be installed. Make sure you have the packages available on controller
 
machine.
 

	
 

	
 
Contents
 
========
 

	
 
.. toctree::
 
   :maxdepth: 2
 

	
 
   about
 
   usage
 
   rolereference
 
   development
docs/releasenotes.rst
Show inline comments
 
@@ -5,26 +5,24 @@ Release notes
 
x.y.z
 
-----
 

	
 
Dropped support for Python 2.7 and Debian 10 Buster. Added support for
 
Debian 12 Bookworm. Some minor improvements and fixes.
 

	
 
**Breaking changes:**
 

	
 
* All roles
 

	
 
  * Dropped support for Debian 10 (Buster).
 
  * Added support for Debian 12 (Bookworm).
 
  * ``dnspython`` Python package is no longer required/used by any of
 
    the roles.
 
  * ``netaddr`` Python package is now required for using the roles.
 

	
 
* ``backup_client`` role
 

	
 
  * Previously the backup would run even if pre-backup scripts would
 
    fail. This is no longer the case, and all pre-backup scripts must
 
    exit with non-zero exit code in order for backup process to
 
    kick-in.
 
  * Old backups are now automatically purged after successful
 
    backup. This could lead to longer runtimes for entire backup
 
    process, as well as higher CPU usage.
 

	
 
@@ -36,25 +34,27 @@ Debian 12 Bookworm. Some minor improvements and fixes.
 
    Requirements (input) files for Python 3 are now put under the
 
    ``/etc/pip_check_requirements_upgrades`` directory instead of
 
    ``/etc/pip_check_requirements_upgrades-py3``.
 

	
 
    The ``pip_check_requirements_py3`` /
 
    ``pip_check_requirements_py3_in`` role parameters have been
 
    renamed to ``pip_check_requirements`` /
 
    ``pip_check_requirements_in``.
 

	
 
  * Parameter ``maintenance_allowed_hosts`` has been dropped and
 
    replaced with parameter ``maintenance_allowed_sources``. The new
 
    parameter expects a list of IPv4 and IPv6 addresses (or
 
    subnets). Resolvable names can no longer be specified.
 
    subnets). Resolvable names can no longer be specified (and this
 
    particular role no longe relies on presence of the ``dnspython``
 
    package).
 

	
 
  * NTP server configuration is now based on use of pools instead of
 
    servers. Parameter ``ntp_servers`` has been deprecated and
 
    replaced with parameter ``ntp_pools``.
 

	
 
* ``ldap_server`` role
 

	
 
  * Starting with Debian 12 Bookworm, the role no longer deploys
 
    *rsyslog* and *logrotate* configuration for writing and rotating
 
    the LDAP servers logs under ``/var/log/slapd.log``. Primary
 
    reason is that Debian 12 Bookworm no longer installs *rsyslog* by
 
    default, and it is considered to be deprecated at this point. The
docs/usage.rst
Show inline comments
 
@@ -139,29 +139,30 @@ packages, and to prepare the environment a bit on the Ansible server:
 
3. Set-up the virtual environment (using the ``ansible`` account):
 

	
 
   .. warning::
 
      If you are already logged-in as user ``ansible`` in the server, you will
 
      need to log-out and log-in again in order to be able to use
 
      ``virtualenvwrapper`` commands!
 

	
 
   ::
 

	
 
     mkdir ~/mysite/
 
     mkvirtualenv -p /usr/bin/python3 -a ~/mysite/ mysite
 
     pip install -U pip setuptools
 
     pip install 'ansible~=2.9.0' netaddr
 
     pip install 'ansible~=2.9.0' dnspython netaddr
 

	
 
.. warning::
 
   The ``netaddr`` package is important since it is used internally via
 
   ``ipv4/ipv6`` lookup plugin.
 
   The ``dnspython`` and ``netaddr`` packages are needed since they
 
   are used internally by some of the roles for the ``dig`` and
 
   ``ipv4/ipv6`` lookup plugins.
 

	
 

	
 
Cloning the *Majic Ansible Roles*
 
---------------------------------
 

	
 
With most of the software pieces in place, the only missing thing is the Majic
 
Ansible Roles:
 

	
 
1. Clone the git repository::
 

	
 
     git clone https://code.majic.rs/majic-ansible-roles ~/majic-ansible-roles
 

	
requirements.in
Show inline comments
 
ansible~=2.9.0
 
defusedxml
 
dnspython
 
gimmecert~=0.5.0
 
molecule~=2.22.0
 
netaddr
 
paramiko
 
pip
 
pip-tools
 
python-ldap
 
python-vagrant
 
# @TODO: Required for ansible-lint due to breaking changes in newer version.
 
rich<11.0.0
 
setuptools
 
sh~=1.14.0
requirements.txt
Show inline comments
 
@@ -59,24 +59,26 @@ commonmark==0.9.1
 
    # via rich
 
cookiecutter==2.6.0
 
    # via molecule
 
cryptography==3.2.1
 
    # via
 
    #   ansible
 
    #   gimmecert
 
    #   paramiko
 
defusedxml==0.7.1
 
    # via -r requirements.in
 
distlib==0.3.8
 
    # via virtualenv
 
dnspython==2.6.1
 
    # via -r requirements.in
 
docutils==0.20.1
 
    # via
 
    #   sphinx
 
    #   sphinx-rtd-theme
 
exceptiongroup==1.2.0
 
    # via pytest
 
fasteners==0.19
 
    # via python-gilt
 
filelock==3.13.1
 
    # via virtualenv
 
flake8==7.0.0
 
    # via molecule
0 comments (0 inline, 0 general)