Ansible: Hands-on Training Linux Configuration Automation
Automated configuration of Linux servers and cloud instances
Modern IT landscapes are no longer feasible without automated configuration. The number of systems to be configured is constantly increasing both on premises in the form of virtual machines as well as in the cloud in the form of IaaS instances. At the same time, the requirements for a consistent, verifiable, secure and quickly adaptable configuration constantly get higher.
Ansible is one of the most popular configuration automation tools on Linux. Getting started with Ansible is relatively easy, but complex setups require sophisticated playbooks and roles. They can be used to create a desired configuration on a variety of target systems. Deviations from the target state can be easily detected and corrected with Ansible. Furthermore, Ansible can interact with numerous cloud providers to create IaaS instances and automatically use them as target systems.
In this course, we will teach how to define configurations in Ansible and apply them to target systems, how to reuse these configurations for different purposes, and how to use Ansible in the sense of Infrastructure as Code to configure cloud setups.
Participants will learn configuration automation with Ansible. This includes the basic configuration of an Ansible project, the preparation of target systems managed with Ansible, and the creation of playbooks using modules which are particularly relevant in practice, for example, for installing software packages, managing user accounts, and modifying files. This also includes the handling of Jinja2 templates, variables and facts as well as the control of the flow of playbooks and debugging. Participants will also learn how to make configurations reusable with roles, how to control essential elements of an IaaS cloud with Ansible, and how to use dynamic inventories in cloud environments.
- Ansible Basics
- Basics of automated configuration
- Architecture and functionality of Ansible
- SSH, SSH keys and sudo
- Basic configuration of Ansible
- Static inventories
- Creating, running and debugging playbooks
- Important Ansible modules
- Installing software packages
- Managing user accounts and user groups
- Managing files, directories and permissions
- Creating and modifying text files
- Starting and stopping services
- Managing IaaS instances in the cloud
- Control and logic in Ansible Playbooks
- Variables, facts and return values of tasks
- Ansible Vault
- Conditional and multiple execution of tasks
- Handler, flow control and delegation
- Error handling
- Jinja2 templates
- Variable substitution
- Filters and lookups
- Conditions and loops
- Ansible Roles and Collections
- Structure of Ansible Roles and Collections
- Variables and value passing
- Distributing and using roles
- Ansible Galaxy
- Ansible in cloud environments
- Creating cloud instances with Ansible
- Dynamic inventory for configuring cloud instances
- Overview (!) of advanced topics
- Ansible AWX
- Ansible Molecule
- Ansible for Windows
- Continuous Integration and Continuous Delivery with Ansible
- cloud-init for the preparation of target systems
- Ansible for Docker and Kubernetes
- Best practices
Target Audience and Prerequisites
The training is aimed at administrators and software developers who already have practical experience in working with Linux systems on the command line. We teach this knowledge in our Linux Basics for Cloud and Containers training. The skills mentioned there are required in this training. Knowledge of common programming concepts, especially variables, conditions, loops and libraries, is required; practical knowledge of a programming language is beneficial, but not a requirement.
Subscribe to our training newsletter.