Most of the examples are full-fledged VM examples, which use Vagrant, VirtualBox, and Ansible to boot and configure VMs on your local workstation. Not all playbooks follow all of Ansible's best practices, as they illustrate particular Ansible features in an instructive manner.
Here is an outline of all the examples contained in this repository, by chapter:
first-ansible-playbook: A very basic playbook that installs
chronydon CentOS and ensures it is running.
orchestration: A simple multiple-VM Vagrant configuration and Ansible inventory to allow testing of multi-server orchestration with
drupal: A single-file playbook which configures the LAMP stack on a Linux host and installs Drupal.
includes: The same playbook as the
drupalexample, but using
includes to make the playbook more understandable.
nodejs: A single-file playbook which configures a Node.js app to run on a Linux host.
solr: A single-file playbook which installs Apache Solr on a Linux host.
nodejs-role: The same playbook as the
nodejsexample, but using a role to break out the Node.js aspects into a separate
galaxy-role-servers: A couple very short playbooks that demonstrate how easy it is to get new servers running leveraging the power of community Ansible Galaxy roles.
test-plugin: A simple test plugin that verifies a given value is representative of the color blue.
collection: An example local collection to demonstrate the basic structure of content collections.
dynamic-inventory: Two example dynamic inventory scripts (one in PHP, one in Python) for use with Ansible.
lamp-infrastructure: A multi-server LAMP-based web application infrastructure focused on high-availability and performance for a LAMP-stack app.
elk: A two-server example of the Elasticsearch-Logstash-Kibana stack, which uses one server to store and visualize logs centrally, and another server to send logs via Filebeat.
gluster: A two-server example of building a fast networked storage setup using Gluster.
deployments: A playbook that deploys a Ruby on Rails application into an environment that runs Passenger and Nginx to handle web requests.
deployments-balancer: A playbook that handles zero-downtime deployments to webservers running behind an HAProxy load balancer.
deployments-rolling: A playbook that demonstrates rolling deployments to multiple servers for a Node.js app.
security: A playbook containing many security automation tasks to demonstrate how Ansible helps automate security hardening.
jenkins: A playbook that installs and configures Jenkins for CI/CD.
molecule: A Molecule example used for testing and developing an Ansible playbook, or for testing in a Continuous Integration (CI) environment.
molecule-ci.ymlGitHub Actions workflow: A GitHub Actions workflow which runs the
moleculeexample in a CI environment.
https-self-signed: A playbook that generates self-signed certificates.
https-letsencrypt: A playbook that demonstrates automated certificate management with Let's Encrypt and Ansible.
https-nginx-proxy: A playbook that demonstrates proxying HTTPS traffic through Nginx to HTTP backends.
docker: Very simple playbook demonstrating Ansible's ability to manage Docker container images.
docker-hubot: Slightly more involved example of Ansible's ability to manage and run Docker container images.
docker-flask: A sample Flask app built with Ansible playbooks running inside the container.
kubernetes: A playbook that builds a three-node Kubernetes cluster.
The above sponsor(s) are supporting Jeff Geerling on GitHub Sponsors. You can sponsor Jeff's work too, to help him continue improving this book and Ansible open source work!
Buy Ansible for DevOps for your e-reader or in paperback format.