2.6 KiB
Executable File
Ansible Configuration Guide
Ansible is a powerful automation tool used to manage and configure servers. This guide provides examples of how to structure your inventory files, which are essential for defining the servers and groups that Ansible will manage. Additionally, it covers common Ansible commands for interacting with your servers.
Inventory File Examples
INI Format
The INI format is one of the simplest ways to define your inventory. Below are two examples showcasing different use cases.
Example 1: Single Group Inventory
In this example, all servers are grouped under a single [all] group. Each server is defined with specific connection details:
[all]
<server-name> ansible_host=<server-ip> ansible_ssh_pass=<password> ansible_port=<ssh-port> ansible_connection=<connection-type>
<server-name>: A label or hostname for your server.<server-ip>: The IP address of the server.ansible_ssh_pass: The SSH password for connecting to the server.ansible_port: The port used for SSH connections.ansible_connection: The connection type (e.g., ssh, winrm).
Example 2: Grouped Inventory with Variables
This example demonstrates grouping servers by roles (e.g., web, db, bk). Group-specific variables are defined under [all:vars]:
[all]
<server1-name> ansible_host=<server1-ip>
<server2-name> ansible_host=<server2-ip>
<server3-name> ansible_host=<server3-ip>
[web]
<server1-name>
[db]
<server2-name>
[bk]
<server3-name>
[all:vars]
ansible_user=<username>
ansible_port=<ssh-port>
- Groups: Servers are organized into different groups (
web,db,bk). [all:vars]: Common variables for all groups.
YAML Format
The YAML format provides a more structured and readable way to define your inventory, especially useful for larger or more complex environments.
Example: Grouped Inventory with Host-Specific Variables
This example illustrates how to define an inventory with nested groups and host-specific variables:
all:
children:
webservers:
hosts:
192.168.1.100:
ansible_port: 22
192.168.1.110:
ansible_port: 1357
vars:
http_port: 8080
dbserver:
hosts:
db.main.local:
db_user: admin
db_pass: secret
children: Groups within theallgroup, such aswebserversanddbserver.hosts: List of servers under each group, with their specific variables.vars: Group-specific variables, such ashttp_portforwebservers.