BSDCan2018 - 1.54

BSDCan 2018
The Technical BSD Conference

Benedict Reuschling
Day Tutorials #1 - 6 June - 2018-06-06
Room DMS 1120
Start time 13:00
Duration 03:00
ID 924
Event type Workshop
Track Tutorial
Language used for presentation English

Managing BSD Systems with Ansible

Ansible is a powerful management software to help deal with the ever-growing number of systems an administrator has to manage. With the focus on automating repetitive tasks like software deployment, making file modifications, and other changes on remote systems, we learn how Ansible can help us. First, we explore what kind of problems Ansible can solve, then we proceed with configuring Ansible for a number of target machines. After that, we run ad-hoc commands that already demonstrate how powerful Ansible is when executing tasks in parallel over the network. More complex scripts (called playbooks in Ansible terms) will be introduced to the attendees. YAML, the language in which Playbooks are written is introduced and at the end of the tutorial, we'll have a complete example ready to run in our own environments.

System administrators are dealing with a number of challenges: many systems to manage, a diverse operating system landscape, different software versions and patch levels, and an increasing pace at which changes need to be applied to target systems. It becomes clear that with the growing number of systems (regardless of them being virtual or physical machines), manual management becomes a nightmare and the resulting systems will not have the same configurations. Ansible can help deal with these problems: by providing a central point of management, a uniform language to describe changes to be applied to target systems, changes are being made in an idempotent way (meaning that the same change won't be applied twice when already present on the remote machine), and applying these changes in parallel over the network. This tutorial explains Ansible and what BSD system administrators have to do to make it work in their environment. What separates Ansible from other configuration management systems is that it does not require a central management server and needs no software installed on the target machines other than an SSH server and a working python environment. The tutorial will walk attendees through these steps before going into the the details of Ansible itself.

The tutorial will contain the following topics: - Introduction to Ansible -- Requirements, -- Setup - Ansible Ad-hoc Commands -- File Transfers -- Package Management -- File Modifications - Playbooks -- Writing Playbooks -- YAML -- Variables -- Loops - A Complete Example

This tutorial is intended for people with little to no prior knowledge of Ansible and configuration management systems, but who want to be more efficient in managing system changes. The tutorial assumes that attendees are familiar with basic shell commands, how to work with an editor, network basics, and how to log into a machine using SSH.