Ansible for DevOps

Errata and Changes

Since many book sales platforms don't allow easy book revisioning, this page will collect all known flaws in Ansible for DevOps, starting with the 1.0 release (as tracked on LeanPub).

If you'd like to report an error or suggest an improvement, please post an issue in the Ansible for DevOps issue queue on GitHub.

Version 1.15 - Current

  1. No errata at this time.

Version 1.14 - 1.15

  1. Updated the creates examples in chapter 4's Drupal example to be Composer-specific (thanks to @santisaez!).
  2. Updated the Drupal example to default to Drupal 8.2.x (was 8.1.x).
  3. Updated the Drupal example to use PHP 7.1 instead of 7.0.
  4. Updated the Drupal example to install Ondrej's updated and maintained PPA (thanks to @jonleibowitz!).
  5. Rewrote appendix a in light of the Windows 10 WSL and Bash on Ubuntu on Windows.
  6. Updated documentation to switch from deprecated always_run: yes to check_mode: no.
  7. Fixed Node.js rolling deployment example's forever usage in chapter 9 (thanks to @mattjmcnaughton!).
  8. Fixed bare variable warning for environment setting in chapter 9 Rails deployment playbook.
  9. Fixed Drupal playbook example in chapter 4; drush git checkout is now version: 8.x (thanks to @cwardgar, @rschmidtz, and @scarroy!).
  10. Fixed Docker example in chapter 8; docker module is deprecated, use the docker_container module instead.
  11. Fixed Drupal playbook includes example in chapter 6 (to match tasks from chapter 4 Drupal playbook) (thanks to @cwardgar!).
  12. Fixed reference to docker-py Pip library (now it's just docker) in chapter 8.
  13. Switched Jenkins example in chapter 11 to use Ubuntu 16.04 since CentOS 7 doesn't include Java 8 by default.
  14. Removed deprecated {{ var }} syntax from Node.js when clauses in examples in chapters 4 and 5.
  15. Fixed links to various Ansible Galaxy roles that were 404'ing.
  16. Updated Solr example in chapter 4 to use Solr 6.5.1.

Version 1.13 - 1.14

  1. Fixed typo in Node.js app section in chapter 4 (thanks to @guntbert!).
  2. In chapter 1, when installing Ansible on Mac via pip, don't use sudo (thanks to @rdonkin!).
  3. In chapter 4, an incorrect use of 'play' was replaced with 'task' in 'Power Plays' (thanks to @guntbert!).
  4. In chapters 3, 8, and 11, updated multiple instances of -s and --sudo in ad-hoc commands; should use -b and --become instead (thanks to @charleshepner!).
  5. Fixed typo: s/infrasturcture/infrastructure in chapter 9 (thanks to /u/levelupirl!).
  6. Rewrote entire Travis CI testing section in chapter 11 to use Docker for multi-platform tests.
  7. Added a note on SSH key IDs in chapter 7 and chapter 8 DigitalOcean examples (thanks to @tychay!).
  8. Fixed playbook name (was do_test, should be provision) in chapter 7 (thanks to @tychay!).
  9. Removed deprecated include variables usage example in chapter 6 in 'Includes' section (thanks to @williamt!).
  10. Added unzip dependency to Drupal example in chapter 4 (thanks to @wurzeldub!).

Version 1.12 - 1.13

  1. Updated DigitalOcean example in chapter 7 to use DO v2 API, as well as updated nomenclature in Ansible 1.9.5/2.0+. See updated example in the book's repository: DigitalOcean Example.
  2. Updated DigitalOcean example in chapter 8 to use DO v2 API. See updated example in the book's repository: LAMP Infrastructure - DigitalOcean example.

Version 1.11 - 1.12

  1. Updated links to resources in Introduction, removed link to defunct Ansible Weekly newsletter.
  2. Fixed grammar mistakes in parts of the Foreword, Preface, and Introduction.
  3. Updated URLs to Vagrant resources in chapter 2.
  4. Added note about cleaning up example VM with vagrant destroy in chapter 2.
  5. Use [linked clones]( in Vagrantfiles for faster build in chapters 3, 7, 8, 9, and 11.
  6. Added 'Manage packages' section in chapter 3 to discuss different package modules like package, yum, and apt.
  7. Switched usage of sudo and sudo-related CLI options to become lingo for 1.9+.
  8. Updated Drupal playbook example in chapter 4 to use Ubuntu 16.04 LTS and PHP 7.
  9. Updated Apache Solr playbook example in chapter 4 to use Ubuntu 16.04 LTS and Solr 6.1.0.
  10. Added example images of running Drupal and Apache Solr home pages in chapter 4.

Version 1.1 - 1.11

  1. Fixed Apache Solr mirror URL in chapter 4—should be{{ solr_version }}/solr-{{ solr_version }}.tgz (thanks to @daniloradenovic!).
  2. Updated Drupal example in chapter 4 for Ubuntu 14.04 and PHP 5.6 (see this commit for specific changes; thanks to @e1nh4nd3r!).
  3. Updated Node.js app server example in chapter 4 to use yum for Remi repo install (see this commit for specific changes).
  4. Update a few lines for Ansible 2.1.x support.
  5. Fixed 'Variable Precedence' section in chapter 5 for Ansible 2.x (see Ansible's updated documentation on Variable Precedence; thanks to @daniel!).
  6. Updated misspellings of 'RedHat' to 'Red Hat' or 'RHEL' when referring to the OS.

Version 1.0 - 1.1

  1. Fixed sentence describing use of serial: 2 in chapter 9 (inside "Ensuring zero downtime with serial" section).
  2. Fixed sentence describing SSH password behavior in chapter 10 (inside "SSH" section). The sentence about disabling password-based SSH authentication should read "Even though passwords are not sent in the clear".
  3. Fixed private key destination path in example in chapter 6 (inside "Includes" section). The private key destination should read:
    dest: "/home/{{ username }}/.ssh/{{ item.dest }}"
  4. Fixed order of vars_files includes in example in chapter 5 (inside "Playbook Variables" section). The example should read:
    - hosts: example
        - "apache_default.yml"
        - "apache_{{ ansible_os_family }}.yml"
        - service: name={{ apache }} state=running
  5. Updated usage of become instead of now-deprecated sudo throughout book and examples (thanks to David!).
  6. Fixed task name text in idempotence example in chapter 4 (thanks to Joel S!).
  7. Fixed Node.js Forever installation in chapter 4 and chapter 6 due to Ansible npm module bug; state=latest is now state=present (thanks to Stephen W!).
  8. Add geerlingguy.php-mysql role to LAMP server example in chapter 6 (thanks to Paul M!).
  9. Fixed typo in "Configure PHP with lineinfile" example in chapter 4 (thanks to Adrian!).
  10. Fixed script name in bullet point 5 under the DigitalOcean dynamic inventory section in chapter 7 (thanks to Adrian!).

Back to Ansible for DevOps home