Файл inventory /etc/ansible/hosts#

Описание#

/etc/ansible/hosts является файлом inventory для Ansible Core, который используется для определения хостов и групп хостов, на которых будут выполняться задачи.

Файл может содержать как IP-адреса, так и имена хостов, а также группы хостов, что упрощает управление большими инфраструктурами.

Параметры#

Возможно установить следующие параметры:

  • Группы хостов - хосты могут быть организованы в группы, что позволяет выполнять задачи на нескольких хостах одновременно. Пример: [webservers], [databases].

  • Хосты - указываются непосредственно под группами или в корне файла. Пример: <IP-address>, server1.example.com.

  • Переменные - можно задавать переменные для групп или отдельных хостов. Пример:

    [webservers]
    server1 ansible_user=admin ansible_ssh_private_key_file=<path_to_key>
    server2 ansible_user=admin ansible_ssh_private_key_file=<path_to_key>
    
  • Комментарии: комментарии начинаются с # и могут использоваться для пояснений. Пример: # This is a group of web servers («Это группа веб-серверов»).

Форматы INI и YAML#

Файлы inventory обычно имеют формат INI, но могут быть созданы и в формате YAML - данное решение применяется по мере увеличения количества управляемых nodes. Пример:

myhosts:
  hosts:
    my_host_01:
      ansible_host: <IP-address_1>
    my_host_02:
      ansible_host: <IP-address_2>
    my_host_03:
      ansible_host: <IP-address_3>

Содержимое файла по умолчанию#

Пример файла /etc/ansible/hosts по умолчанию:

# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
#   - Comments begin with the '#' character
#   - Blank lines are ignored
#   - Groups of hosts are delimited by [header] elements
#   - You can enter hostnames or ip addresses
#   - A hostname/ip can be a member of multiple groups

# Ex 1: Ungrouped hosts, specify before any group headers:

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

# Ex 2: A collection of hosts belonging to the 'webservers' group:

## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

# If you have multiple hosts following a pattern, you can specify
# them like this:

## www[001:006].example.com

# You can also use ranges for multiple hosts: 

## db-[99:101]-node.example.com

# Ex 3: A collection of database servers in the 'dbservers' group:

## [dbservers]
##
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57


# Ex4: Multiple hosts arranged into groups such as 'Debian' and 'openSUSE':

## [Debian]
## alpha.example.org
## beta.example.org

## [openSUSE]
## green.example.com
## blue.example.com