Title Page Copyright and Credits Practical Ansible 2 About Packt Why subscribe? Contributors About the authors About the reviewers Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Section 1: Learning the Fundamentals of Ansible Getting Started with Ansible Technical requirements Installing and configuring Ansible Installing Ansible on Linux and FreeBSD Installing Ansible on macOS Configuring Windows hosts for Ansible Understanding your Ansible installation Understanding how Ansible connects to hosts Verifying the Ansible installation Managed node requirements Running from source versus pre-built RPMs Summary Questions Further reading Understanding the Fundamentals of Ansible Technical requirements Getting familiar with the Ansible framework Breaking down the Ansible components Learning the YAML syntax Organizing your automation code Exploring the configuration file Command-line arguments Understanding ad hoc commands Defining variables Understanding Jinja2 filters Summary Questions Further reading Defining Your Inventory Technical requirements Creating an inventory file and adding hosts Using host groups Adding host and group variables to your inventory Generating a dynamic inventory file  Using multiple inventory sources in the inventory directories Using static groups with dynamic groups Special host management using patterns Summary Questions Further reading Playbooks and Roles Technical requirements Understanding the playbook framework Comparing playbooks and ad hoc tasks Defining plays and tasks Understanding roles – the playbook organizer Setting up role-based variables and dependencies Ansible Galaxy Using conditions in your code Repeating tasks with loops Grouping tasks using blocks Configuring play execution via strategies Using ansible-pull Summary Questions Further reading Section 2: Expanding the Capabilities of Ansible Consuming and Creating Modules Technical requirements Executing multiple modules using the command line Reviewing the module index Accessing module documentation from the command line Module return values Developing custom modules Avoiding common pitfalls Testing and documenting your module The module checklist Contributing upstream – submitting a GitHub pull request Summary Questions Further reading Consuming and Creating Plugins Technical requirements Discovering the plugin types Finding included plugins Creating custom plugins Learning to integrate custom plugins with Ansible source code Sharing plugins with the community Summary Questions Further reading Coding Best Practices Technical requirements The preferred directory layout The best approach to cloud inventories Differentiating between different environment types The proper approach to defining group and host variables Using top-level playbooks Leveraging version control tools  Setting OS and distribution variances Porting between Ansible versions  Summary Questions Further reading Advanced Ansible Topics Technical requirements Asynchronous versus synchronous actions Control play execution for rolling updates Configuring the maximum failure percentage Setting task execution delegation Using the run_once option Running playbooks locally Working with proxies and jump hosts Configuring playbook prompts Placing tags in the plays and tasks Securing data with Ansible Vault Summary Questions Further reading Section 3: Using Ansible in an Enterprise Network Automation with Ansible Technical requirements Why automate network management? Learning how Ansible manages networking devices Enabling network automation Reviewing the available Ansible networking modules Connecting to network devices Environment variables for network devices Conditional statements for networking devices Summary Questions Further reading Container and Cloud Management Technical requirements Designing and building containers with playbooks Managing multiple container platforms Deploying to Kubernetes with ansible-container Managing Kubernetes objects with Ansible Installing Ansible Kubernetes dependencies Listing Kubernetes namespaces with Ansible Creating a Kubernetes namespace with Ansible Creating a Kubernetes Service with Ansible Automating Docker with Ansible Exploring container-focused modules Automating against Amazon Web Services Installation Authentication Creating your first machine Complementing Google Cloud Platform with automation Installation Authentication Creating your first machine Seamless automation integration to Azure Installation Authentication Creating your first machine Expanding your environment with Rackspace Cloud Installation Authentication Creating your first machine Using Ansible to orchestrate OpenStack Installation Authentication Creating your first machine Summary Questions Further reading Troubleshooting and Testing Strategies Technical requirements Digging into playbook execution problems Using host facts to diagnose failures Testing with a playbook Using check mode Solving host connection issues Passing working variables via the CLI Limiting the host's execution Flushing the code cache Checking for bad syntax Summary Questions Further reading Getting Started with Ansible Tower Technical requirements Installing AWX Running your first playbook from AWX Creating an AWX project Creating an inventory Creating a job template Running a job Controlling access to AWX Creating a user Creating a team Creating an organization Assigning permissions in AWX Summary Questions Assessments Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Other Books You May Enjoy Leave a review - let other readers know what you think