Get started with Ansible - Hochstein, Lorin (O'Reilly Media, Inc., 2016)
Ansible is a great tool for handling deployment as well as configuration management, providing a lot more functionality than shell scripts. It doesn't require that one learn a new set of abstractions to hide the differences between operating systems. That makes its surface area smaller; there's less you need to know before you get started. Why is it important? We're all slowly turning into system engineers. Using a single tool for both configuration management and deployment makes life simpler for the folks responsible for operations. Project goals include a consistent, secure, highly reliable tool that's minimal in nature and has a low learning curve. What you'll learn--and how you can apply it Covers the basic concepts of Ansible at a high level, including how it communicates with remote servers and how it differs from other configuration-management tools. You'll learn how to use the Ansible command-line tool to perform simple tasks on a single host This lesson is for you because ... You're a developer deploying your code to production You're a systems administrator looking for a better way to automate You need a quick introduction to leveraging an idempotent resource model for immutable infrastructure Prerequisites Be familiar with at least one Linux distribution (e.g., Ubuntu, RHEL/CentOS, SUSE) Be familiar with basic Linux system administration tasks, e.g., know how to: Connect to a remote machine using SSH Interact with the bash command-line shell (pipes and redirection) Install packages Use the sudo command Check and set file permissions Start and stop services Set environment variables Write scripts (any language) Learn some YAML and Jinja2 Materials or downloads needed in advance Have a Linux server with which to practice This Lesson is taken from Ansible: Up and Running by Lorin Hochstein.