Practical Ansible: Learn how to automate infrastructure, manage configuration, and deploy applications [2 ed.] 9781805129974

Leverage the power of Ansible to gain complete control over your systems and automate deployments along with implementin

861 158 7MB

English Pages 942 Year 2023

Report DMCA / Copyright

DOWNLOAD FILE

Practical Ansible: Learn how to automate infrastructure, manage configuration, and deploy applications [2 ed.]
 9781805129974

Table of contents :
Practical Ansible
Contributors
About the authors
About the reviewers
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Conventions used
Get in touch
Share your thoughts
Download a free PDF copy of this book
Part 1:Learning the Fundamentals of Ansible
1
Getting Started with Ansible
Technical requirements
Installing and configuring Ansible
Understanding Ansible version numbers
Installing Ansible on Linux and FreeBSD
Working with virtual environments
Installing from GitHub
Installing Ansible on macOS
Configuring Windows hosts for Ansible
Getting to know your Ansible installation
Understanding how Ansible connects to hosts
Verifying the Ansible installation
Managed node requirements
Summary
Questions
Further reading
2
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
3
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
4
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
Part 2:Expanding the Capabilities of Ansible
5
Creating and Consuming 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
6
Creating and Consuming Collections
Technical requirements
Introduction to Ansible collections
Understanding fully qualified collection names
Managing collections on your control node
Updating your Ansible collections and core installation
Creating your own collections
Summary
Questions
Further reading
7
Creating and Consuming 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
8
Coding Best Practices
Technical requirements
The preferred directory layout
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
9
Advanced Ansible Topics
Technical requirements
Asynchronous versus synchronous actions
Controlling 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
Part 3:Using Ansible in an Enterprise
10
Network Automation with Ansible
Technical requirements
Why automate network management?
How Ansible manages networking devices
How to enable network automation
The available Ansible networking modules
Connecting to network devices
Environment variables for network devices
Custom conditional statements for networking devices
Summary
Questions
Further reading
11
Container and Cloud Management
Technical requirements
Automating Docker and Podman with Ansible
Managing Docker
Managing Podman
Managing Kubernetes with Ansible
Installing Ansible Kubernetes dependencies
Listing Kubernetes namespaces with Ansible
Creating a Kubernetes namespace with Ansible
Creating a Kubernetes service with Ansible
Exploring container-focused modules
Automating with Amazon Web Services
Installation
Authentication
Creating your first machine
Complementing Google Cloud Platform with automation
Installation
Authentication
Creating your first machine
Seamless automation integration with Azure
Installation
Authentication
Creating your first machine
Using Ansible to orchestrate OpenStack
Installation
Authentication
Creating your first machine
Summary
Questions
Further reading
12
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
13
Getting Started with Ansible Automation Controller
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
14
Execution Environments
Technical requirements
The importance of execution environments
Building an execution environment
Creating a minimal execution environment
Creating an execution environment with a specific Python interpreter
Creating an execution environment with additional dependencies
Running playbooks in an execution environment
Uploading execution environments to a container registry
Using execution environments in Ansible Automation Controller
Summary
Questions
Further reading
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
Chapter 13
Chapter 14
Index
Why subscribe?
Other Books You May Enjoy
Packt is searching for authors like you
Share your thoughts
Download a free PDF copy of this book

Polecaj historie