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

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

855 163 30MB

English Pages 420 Year 2023

Report DMCA / Copyright

DOWNLOAD FILE

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

  • Commentary
  • Thanks to Team-IRA for the True PDF

Table of contents :
Cover
Title Page
Copyright
Dedication
Contributors
Table of Contents
Preface
Part 1:Learning the Fundamentals of Ansible
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
About Packt
Other Books You May Enjoy

Polecaj historie