Changeset - 580b2e4cb9a3
[Not reviewed]
0 22 0
Branko Majic (branko) - 10 days ago 2024-09-17 23:30:44
branko@majic.rs
MAR-218: Bump Ansible version to 10.4.x:

- Fix the requirements file not depending on the patch release.
- Bump all metadata to reference the new version.
22 files changed with 42 insertions and 40 deletions:
0 comments (0 inline, 0 general)
docs/about.rst
Show inline comments
 
@@ -6,25 +6,25 @@ basis for deployment and maintenance of Majic infrastructure.
 

	
 
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
 
10.3.x**.
 
10.4.x**.
 

	
 
The roles also utilise the ``ipv4/ipv6`` lookup plugins which require
 
``netaddr`` package to be installed. The ``passlib`` package is used
 
for hashing the operating system passwords. 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.
docs/index.rst
Show inline comments
 
@@ -6,25 +6,25 @@ basis for deployment and maintenance of Majic infrastructure.
 

	
 
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
 
10.3.x**.
 
10.4.x**.
 

	
 
The roles also utilise the ``ipv4/ipv6`` lookup plugins which require
 
``netaddr`` package to be installed. The ``passlib`` package is used
 
for hashing the operating system passwords. Make sure you have the
 
packages available on controller machine.
 

	
 

	
 
Contents
 
========
 

	
 
.. toctree::
 
   :maxdepth: 2
docs/releasenotes.rst
Show inline comments
 
Release notes
 
=============
 

	
 

	
 
x.y.z
 
-----
 

	
 
Supported Ansible version bumped to 10.3.x. Dropped support for Debian
 
Supported Ansible version bumped to 10.x. Dropped support for Debian
 
11 (Bullseye). Minor fixes and improvements.
 

	
 
**Breaking changes:**
 

	
 
* All roles
 

	
 
  * Supported Ansible version bumped to 10.3.x.
 
  * Supported Ansible version bumped to 10.x.
 
  * Dropped support for Debian 11 (Bullseye).
 
  * ``passlib`` Python package is now (explicitly) required for using
 
    the roles.
 

	
 
**New features/improvements**
 

	
 
* ``backup_client`` role
 

	
 
  * Switched to using Paramiko + SFTP backend (instead of pexpect +
 
    SFTP), which should improve the backup performance.
 

	
 
**Bug fixes:**
docs/usage.rst
Show inline comments
 
@@ -126,25 +126,25 @@ 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 -a ~/mysite/ mysite
 
     pip install -U pip setuptools
 
     pip install 'ansible~=10.3.0' netaddr passlib
 
     pip install 'ansible~=10.4.0' netaddr passlib
 

	
 
.. warning::
 
   The ``netaddr`` package is needed for ``ipv4/ipv6`` lookup plugins
 
   which is used internally by some of the roles. The ``passlib``
 
   package is required in order to hash passwords when creating system
 
   users.
 

	
 

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

	
 
With most of the software pieces in place, the only missing thing is the Majic
requirements.in
Show inline comments
 
# Ansible and role runtime.
 
ansible~=10.3
 
ansible~=10.4.0
 
netaddr
 
passlib
 
python-ldap
 

	
 
# Development and testing.
 
ansible-lint
 
defusedxml
 
flake8
 
gimmecert
 
molecule[testinfra]~=24.8.0
 
molecule-plugins[vagrant]~=23.5.0
 
paramiko
requirements.txt
Show inline comments
 
#
 
# This file is autogenerated by pip-compile with Python 3.11
 
# by the following command:
 
#
 
#    pip-compile --allow-unsafe
 
#
 
alabaster==0.7.16
 
    # via sphinx
 
ansible==10.3.0
 
ansible==10.4.0
 
    # via -r requirements.in
 
ansible-compat==24.8.0
 
ansible-compat==24.9.0
 
    # via
 
    #   ansible-lint
 
    #   molecule
 
ansible-core==2.17.3
 
ansible-core==2.17.4
 
    # via
 
    #   ansible
 
    #   ansible-compat
 
    #   ansible-lint
 
    #   molecule
 
ansible-lint==24.7.0
 
ansible-lint==24.9.0
 
    # via -r requirements.in
 
attrs==24.2.0
 
    # via
 
    #   jsonschema
 
    #   referencing
 
babel==2.16.0
 
    # via sphinx
 
bcrypt==4.2.0
 
    # via paramiko
 
black==24.8.0
 
    # via ansible-lint
 
bracex==2.5
 
    # via wcmatch
 
build==1.2.1
 
build==1.2.2
 
    # via pip-tools
 
certifi==2024.8.30
 
    # via requests
 
cffi==1.17.0
 
cffi==1.17.1
 
    # via
 
    #   cryptography
 
    #   pynacl
 
charset-normalizer==3.3.2
 
    # via requests
 
click==8.1.7
 
    # via
 
    #   black
 
    #   click-help-colors
 
    #   molecule
 
    #   pip-tools
 
click-help-colors==0.9.4
 
@@ -54,35 +54,35 @@ cryptography==42.0.8
 
    # via
 
    #   ansible-core
 
    #   gimmecert
 
    #   paramiko
 
defusedxml==0.7.1
 
    # via -r requirements.in
 
docutils==0.20.1
 
    # via
 
    #   sphinx
 
    #   sphinx-rtd-theme
 
enrich==1.2.7
 
    # via molecule
 
filelock==3.15.4
 
filelock==3.16.1
 
    # via ansible-lint
 
flake8==7.1.1
 
    # via -r requirements.in
 
gimmecert==1.0.0
 
    # via -r requirements.in
 
idna==3.8
 
idna==3.10
 
    # via requests
 
imagesize==1.4.1
 
    # via sphinx
 
importlib-metadata==8.4.0
 
importlib-metadata==8.5.0
 
    # via ansible-lint
 
iniconfig==2.0.0
 
    # via pytest
 
jinja2==3.1.4
 
    # via
 
    #   ansible-core
 
    #   molecule
 
    #   sphinx
 
jsonschema==4.23.0
 
    # via
 
    #   ansible-compat
 
    #   ansible-lint
 
@@ -108,87 +108,89 @@ mypy-extensions==1.0.0
 
netaddr==1.3.0
 
    # via -r requirements.in
 
packaging==24.1
 
    # via
 
    #   ansible-compat
 
    #   ansible-core
 
    #   ansible-lint
 
    #   black
 
    #   build
 
    #   molecule
 
    #   pytest
 
    #   sphinx
 
paramiko==3.4.1
 
paramiko==3.5.0
 
    # via -r requirements.in
 
passlib==1.7.4
 
    # via -r requirements.in
 
pathspec==0.12.1
 
    # via
 
    #   ansible-lint
 
    #   black
 
    #   yamllint
 
pip-tools==7.4.1
 
    # via -r requirements.in
 
platformdirs==4.2.2
 
platformdirs==4.3.6
 
    # via black
 
pluggy==1.5.0
 
    # via
 
    #   molecule
 
    #   pytest
 
pyasn1==0.6.0
 
pyasn1==0.6.1
 
    # via
 
    #   pyasn1-modules
 
    #   python-ldap
 
pyasn1-modules==0.4.0
 
pyasn1-modules==0.4.1
 
    # via python-ldap
 
pycodestyle==2.12.1
 
    # via flake8
 
pycparser==2.22
 
    # via cffi
 
pyflakes==3.2.0
 
    # via flake8
 
pygments==2.18.0
 
    # via
 
    #   rich
 
    #   sphinx
 
pynacl==1.5.0
 
    # via paramiko
 
pyproject-hooks==1.1.0
 
    # via
 
    #   build
 
    #   pip-tools
 
pytest==8.3.2
 
pytest==8.3.3
 
    # via pytest-testinfra
 
pytest-testinfra==10.1.1
 
    # via molecule
 
python-dateutil==2.8.2
 
    # via gimmecert
 
python-ldap==3.4.4
 
    # via -r requirements.in
 
python-vagrant==1.0.0
 
    # via molecule-plugins
 
pyyaml==6.0.2
 
    # via
 
    #   ansible-compat
 
    #   ansible-core
 
    #   ansible-lint
 
    #   molecule
 
    #   yamllint
 
referencing==0.35.1
 
    # via
 
    #   jsonschema
 
    #   jsonschema-specifications
 
requests==2.32.3
 
    # via sphinx
 
resolvelib==1.0.1
 
    # via ansible-core
 
rich==13.8.0
 
rich==13.8.1
 
    # via
 
    #   ansible-lint
 
    #   enrich
 
    #   molecule
 
rpds-py==0.20.0
 
    # via
 
    #   jsonschema
 
    #   referencing
 
ruamel-yaml==0.18.6
 
    # via ansible-lint
 
ruamel-yaml-clib==0.2.8
 
    # via ruamel-yaml
 
@@ -212,34 +214,34 @@ sphinxcontrib-htmlhelp==2.1.0
 
sphinxcontrib-jquery==4.1
 
    # via sphinx-rtd-theme
 
sphinxcontrib-jsmath==1.0.1
 
    # via sphinx
 
sphinxcontrib-qthelp==2.0.0
 
    # via sphinx
 
sphinxcontrib-serializinghtml==2.0.0
 
    # via sphinx
 
subprocess-tee==0.4.2
 
    # via
 
    #   ansible-compat
 
    #   ansible-lint
 
urllib3==2.2.2
 
urllib3==2.2.3
 
    # via requests
 
wcmatch==9.0
 
    # via
 
    #   ansible-lint
 
    #   molecule
 
wheel==0.44.0
 
    # via pip-tools
 
yamllint==1.35.1
 
    # via ansible-lint
 
zipp==3.20.1
 
zipp==3.20.2
 
    # via importlib-metadata
 

	
 
# The following packages are considered to be unsafe in a requirements file:
 
pip==24.2
 
    # via
 
    #   -r requirements.in
 
    #   pip-tools
 
setuptools==74.1.1
 
setuptools==75.1.0
 
    # via
 
    #   -r requirements.in
 
    #   pip-tools
roles/backup/meta/main.yml
Show inline comments
 
@@ -2,17 +2,17 @@
 

	
 
allow_duplicates: true
 

	
 
dependencies:
 
  - backup_client
 

	
 
galaxy_info:
 
  role_name: backup
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Specify what files should be backed-up to the backup server.
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/backup_client/meta/main.yml
Show inline comments
 
---
 

	
 
galaxy_info:
 
  role_name: backup_client
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up backup client (using duplicity/duply)
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/backup_server/meta/main.yml
Show inline comments
 
---
 

	
 
dependencies:
 
  - common
 

	
 
galaxy_info:
 
  role_name: backup_server
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up server to act as backup storage for the backup clients, exposing SFTP on dedicated port with dedicated OpenSSH server instance
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/bootstrap/meta/main.yml
Show inline comments
 
---
 

	
 
galaxy_info:
 
  role_name: bootstrap
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Performs basic bootstrap of server for use with Ansible
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/common/meta/main.yml
Show inline comments
 
@@ -11,17 +11,17 @@ dependencies:
 
      - "/var/spool/cron"
 
  - role: backup
 
    when: enable_backup
 
    backup_patterns_filename: common_extra
 
    backup_patterns: "{{ extra_backup_patterns }}"
 

	
 
galaxy_info:
 
  role_name: common
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Apply common configuration and hardening on server
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/database/meta/main.yml
Show inline comments
 
@@ -7,17 +7,17 @@ dependencies:
 
  - role: backup
 
    when: enable_backup
 
    backup_patterns_filename: "database_{{ db_name }}"
 
    backup_patterns:
 
      - "/srv/backup/mariadb/{{ db_name }}.sql"
 

	
 
galaxy_info:
 
  role_name: database
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Creates MariaDB database and accompanying user to access it
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/database_server/meta/main.yml
Show inline comments
 
---
 

	
 
dependencies:
 
  - common
 

	
 
galaxy_info:
 
  role_name: database_server
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up MariaDB database server
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/ldap_client/meta/main.yml
Show inline comments
 
---
 

	
 
galaxy_info:
 
  role_name: ldap_client
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Configures OpenLDAP client (default configuration)
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/ldap_server/meta/main.yml
Show inline comments
 
@@ -6,17 +6,17 @@ dependencies:
 
  - role: backup
 
    when: enable_backup
 
    backup_patterns_filename: "ldap_server"
 
    backup_patterns:
 
      - "/srv/backup/slapd.bak"
 

	
 
galaxy_info:
 
  role_name: ldap_server
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up an OpenLDAP server
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/mail_forwarder/meta/main.yml
Show inline comments
 
---
 

	
 
dependencies:
 
  - common
 

	
 
galaxy_info:
 
  role_name: mail_forwarder
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up local SMTP server for sending out mails and receiving mails for local users
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/mail_server/meta/main.yml
Show inline comments
 
@@ -5,17 +5,17 @@ dependencies:
 
  - role: backup
 
    when: enable_backup
 
    backup_patterns_filename: "mail_server"
 
    backup_patterns:
 
      - "/var/{{ mail_user }}"
 

	
 
galaxy_info:
 
  role_name: mail_server
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up mail server with SMTP and IMAP services, using LDAP as source of allowed destinations (domains, mail addresses)
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/php_website/meta/main.yml
Show inline comments
 
@@ -3,17 +3,17 @@
 
allow_duplicates: true
 

	
 
dependencies:
 
  - common
 
  - web_server
 

	
 
galaxy_info:
 
  role_name: php_website
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up a website powered by PHP application
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/preseed/meta/main.yml
Show inline comments
 
---
 

	
 
galaxy_info:
 
  role_name: preseed
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Generates preseed files for Debian
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/web_server/meta/main.yml
Show inline comments
 
---
 

	
 
dependencies:
 
  - common
 

	
 
galaxy_info:
 
  role_name: web_server
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up generic web server
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/wsgi_website/meta/main.yml
Show inline comments
 
@@ -3,17 +3,17 @@
 
allow_duplicates: true
 

	
 
dependencies:
 
  - common
 
  - web_server
 

	
 
galaxy_info:
 
  role_name: wsgi_website
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up a website powered by WSGI application
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
roles/xmpp_server/meta/main.yml
Show inline comments
 
@@ -5,17 +5,17 @@ dependencies:
 
  - role: backup
 
    when: enable_backup
 
    backup_patterns_filename: "xmpp_server"
 
    backup_patterns:
 
      - "/var/lib/prosody"
 

	
 
galaxy_info:
 
  role_name: xmpp_server
 
  namespace: azaghal
 
  author: Branko Majic
 
  description: Sets-up a Prosody XMPP server using LDAP directory as source of domain/user information
 
  license: BSD
 
  min_ansible_version: "10.3"
 
  min_ansible_version: "10.4"
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - bookworm
0 comments (0 inline, 0 general)