Chapter 9. Customizing Hosts, Runs, and Handlers
Sometimes Ansible’s default behaviors don’t quite fit your use case. In this chapter, we cover Ansible features that provide customization by controlling which hosts to run against, how tasks are run, and how handlers are run.
Patterns for Specifying Hosts
So far, the host
parameter in our plays has specified a single host or group, like this:
hosts
:
web
Instead of specifying a single host or group, you can specify a pattern. You’ve already seen the all
pattern, which will run a play against all known hosts:
hosts
:
all
You can specify a union of two groups with a colon. You specify all dev and staging machines as follows:
hosts
:
dev:staging
You can specify an intersection by using a colon and ampersand. For example, to specify all of the database servers in your staging environment, you might do this:
hosts
:
staging:&database
Table 9-1 shows the patterns that Ansible supports. Note that the regular expression pattern always starts with a tilde.
Action | Example usage |
---|---|
All hosts |
|
All hosts |
|
Union |
|
Intersection |
|
Exclusion |
|
Wildcard |
|
Range of numbered servers |
|
Regular expression |
|
Ansible supports multiple combinations of patterns—for example:
hosts
:
dev:staging:&database:!queue
Limiting Which Hosts Run
Use the -l hosts
or --limit hosts
flag to tell Ansible to limit the hosts to run the playbook ...
Get Ansible: Up and Running, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.