1. Author’s purpose
The author’s purpose with this book is to provide the reader with intermediate to expert-level knowledge of Ansible and how to use it to manage infrastructure (e. 238/9360).
2. Commonalities with other books
Like most of the major books on System Administration, this book embraces the DevOps philosophy. Through which is expected to get best results by the close interaction of developers and system administrators:
“… I have seen the power in uniting development and operations-more commonly referred to now as DevOps or Site Reliability Engineering. When developers begin to think of infrastructure as part of their application, stability and performance become normative. When sysadmins (most of whom have intermediate to advanced knowledge of the applications and languages being used on servers they manage) work tightly with developers, development velocity is improved, and more time is spent doing ‘fun’ activities like performance tuning, experimentation, and getting things done, and less time putting out fires.”(e. 293/9360)
3. The uniqueness of the book
This book is unique because of the comprehensive experience of the author (Jeff Geerling) on the Ansible project. Before reading this book, I was already familiar with the work that Jeff Geerling had shared through Github and Ansible Galaxy. Usually, any search related to Ansible ends up in some way related to some of Jeff’s work.
Hence, is incredibly valuable to learn from an experienced practitioner of the field, and someone who knows how to do the job right. Jeff’s experience is evident in the numerous real-life examples he uses throughout the book. This makes the book very practical.
4. Was the author successful in achieving his goals?
In my opinion, Jeff was successful in providing intermediate to expert knowledge of the Ansible project.
On the one hand, the author describes all the basics/intermediate topics: the use of Ansible in the command line, Ansible playbooks, Ansible roles, etc. And on the other, he also shows the advanced stuff: ansible plugins and collections, deployments with ansible, testing, and CICD with Ansible.
r. Compare the book with the best in the field
The best in the field (Handbook of Unix and Linux System Administration) also devotes a section to the Ansible and the discussion of configuration management software.
The handbook provides a quick and modest introduction to Ansible, Ansible’s installation, and Ansible’s playbooks. However, the handbook provides some things that Jeff’s book does not, it provides a comparison of Ansible against the other configuration management tools: Chef, Saltstack, and Puppet.
This comparison is necessary for the reader to grasp the place of Ansible in the world of open-source tools. Is it good for small enterprises or big enterprises? Is it easy or complex compared to other alternatives?
6. What are the three most important ideas to remember?
The three most important ideas that I received from this book and I am starting to implement are:
First, use vagrant to create your test environment. I cannot over-emphasize the importance of this idea in my day-to-day workflow with Ansible.
Second, on top of Vagrant, use the molecule to test the playbooks and roles using docker. Jeff has built Debian and CentOS dockers that have a built-in systemd, this allows fast prototyping using docker as if they were virtual machines.
Third, apply CICD to Ansible. Use tools like yamllint, ansible-playbook –syntax-check, ansible-lint, and molecule to test all your commits using Gitlab CI or Github Actions.
7. Recommendation
After reading this book I would recommend it to all System Administrators that use Ansible in their job. Jeff Geerling is a very experimented author and he provides excellent tips on how to improve your Ansible skill throughout the book. If I could go travel back in time I would have read this book sooner.