Welcome on the documentation website of the SDM Project!

The Simple Deploy- and Managment (SDM) framework is an environment that is designed to configure and manage entire IT infrastructures, regardless of what software or system it runs. It is based on the configuration management system Ansible and the version control system (VCS) Git. It is developed by Martin Pietsch at the Technische Universität Dresden / School of Science.

The main goals are:

We believe the goals are necessary to provide secure, stable and fexible IT infrastructures.


Latest News

Ansible is a powerful environment for automation and orchestration and SDM Framework is entirely based on it. One goal of the framework is to minimize the development effort and to maximize the reuse of Ansible code. To achieve this, it introduces some plugins that handle roles like classes or submodules in modern programming languages.

Now the next step into the future of the framework has been taken with the improvement of the plugins that handle the behavior of Object-Oriented Roles. In the new version 2.0 of the SDM OOR Ansible collection, the inheritance model has been redesigned, which breaks with the philosophy of the original approach.

But the improvement does not change all features. So it is still possible to use

  • task files and handlers,
  • all variables and defaults,
  • all ressources like files and templates

directly from a role in another role without transferring or modifying code.

The new plugins implement some new features that simplify the work with roles and increase their capabilities. These are:

  • inheritance within and across Ansible collections
  • overwriting of existing handlers
  • role constructors
  • return values of task files

An introduction of the Object-Oriented Roles of the SDM Framework can be found here:

User Guides / Object-Oriented Roles

Simple examples demonstrating the operating principle can be found here:

User Guides / Getting Started / Object-Oriented Roles

The Ansible collection with the Framework plugins is located here:

https://gitlab.mn.tu-dresden.de/sdm/sdm.oor.git

The 2nd German-speaking “Ansible Anwendertreffen”! After the first edition of this event in October 2020 was a great success, we hereby announce the next meeting. Again, we offer German-speaking Ansible users the opportunity to learn from other Ansible users how they have automated complex tasks and what experiences they have gained with Ansible. In addition, there will be an update on the new features coming to Ansible in 2021.

More information can be found here.

The SDM framework is now ready for Ansible 3.0. This means that all plugins provided by the framework have moved to separate Ansible collections. These are currently:

Futhermore, the framework uses the FQCN syntax for all modules and plugins, no matter if these are SDM-specific or not. Playbooks and roles can still be used in the traditional way.

The video recording of the Meetup is now available on YouTube:

https://youtu.be/Cp_BRFBCbW8

The presentation and all data of the practical part are available under the following internet address:

https://sdm.mn.tu-dresden.de/resources/

We would like to invite you to the second online lecture this year of the OpenSource UserGroup / the Ansible Meetup.

The lecture will take place on February 18th 2021 at 6 pm.

The agenda includes the following topics:

  • Review: Evolution of the DDOSUG

  • Talk: Object-oriented roles with Ansible

    Roles are a great base for the object-oriented approach of Ansible. That is not natively applicable without changing the base role or having some other restrictions. This talk will show how it is possible to use the object-oriented approach of Ansible roles with few plugins.

Please use one of the following links for participation:

If you are interested, please register for this event via the Meetup or LinkedIn platform or send me a message via

This should guarantee that there are enough ressources provided.

For further information please use the following links:

The SDM framework supports now the Linux operation system. It abstracts all distributions that are based on Linux. The first Linux distribution currently supported is ArchLinux. Others will follow.

The roles for these systems are:

Some features are also missing in the named role. These are:

  • the handling of Linux containers
  • the creation of package mirror

These will come in the near future.

The framework also provides an unified installer for all Linux distributions. A detailed description about this installer can be found here.

Two new plugins have been added, sdm_host_group_vars and discover_interpreter. The first ensures that variables are always merged and eliminates the need to set sdm related variables in group_vars/all. That also solves the hash_behaviour=merge problem by making this setting obsolete. The second invokes the (re)discovery of a special interpreter for Ansible.

The SDM framework now provides two additional plugins for object oriented handling of Ansible roles. These allow to set (set_role_fact) or load (load_role_vars) role variables within the task list. The variables that are loaded in this way are only usable in the scope of a role. Detailed information about this feature can be found in the SDM Guide.

The project provides now five new package roles and two new function roles.

The package roles are:

  • package.www: A top level role for all web software roles.
  • package.www.lighttpd: This role installs a HTTP server based on lighttpd. It replaces the role package.lighttpd which is not longer maintained.
  • package.ftp: A top role for all ftp software roles.
  • package.ftp.tftp-hpa: This role installs and configures a TFTP server based on tftp-hpa. It replaces the role package.tftp-hpa which is not longer maintained.
  • package.dns.bind: This role installs and configure the ISC bind dns server.

The function roles are:

All Git repositories now have a devel and a stable branch. The stable branch contains the last stable version and the devel branch the developer version of a repository. The master branch is still existing, but is not longer maintained.