vault backup: 2026-05-24 15:03:28
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
---
|
||||
status: stable
|
||||
type: concept
|
||||
tags:
|
||||
- devops
|
||||
- ansible
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-07
|
||||
title: Inventory - Ansible
|
||||
---
|
||||
|
||||
# Inventory - Ansible
|
||||
|
||||
Особенности Ansible:
|
||||
|
||||
1. Подключение по SSH
|
||||
2. Agentless - нет программ на клиентах
|
||||
|
||||
Структура файла `hosts.ini`
|
||||
|
||||
```text-xml
|
||||
192.168.0.1
|
||||
192.168.0.2
|
||||
|
||||
[web] # группа серверов
|
||||
192.168.0.3
|
||||
192.168.0.4
|
||||
```
|
||||
|
||||
Можно использовать псевдонимы, вместо ip
|
||||
|
||||
```text
|
||||
app ansible_host=ip_server1
|
||||
db ansible_host=ip_server2
|
||||
web ansible_host=ip_server3
|
||||
```
|
||||
|
||||
Другие полезные параметры **inventory**:
|
||||
|
||||
- `ansible_connection: ssh/winrm/local/docker` - тип подключения к серверу
|
||||
- `ansible_port: 22/5986` - порт подключения
|
||||
- `ansible_user: root` - логин для входа по ssh (или др.)
|
||||
- `ansible_ssh_pass: password` или `ansible_password: password` - пароль для входа по ssh.
|
||||
|
||||
Группы для объединения групп:
|
||||
|
||||
```text
|
||||
[mail_internal]
|
||||
mail1.serv
|
||||
|
||||
[mail_external]
|
||||
mail2.serv
|
||||
|
||||
[mail_all:children]
|
||||
mail_internal
|
||||
mail_external
|
||||
```
|
||||
|
||||
Помимо `ini`-формата, можно использовать YAML-файлы:
|
||||
|
||||
```yaml
|
||||
all:
|
||||
children:
|
||||
webservers:
|
||||
hosts:
|
||||
web1.example.com:
|
||||
ansible_host: 192.168.1.10
|
||||
ansible_user: admin
|
||||
web2.example.com:
|
||||
ansible_host: 192.168.1.11
|
||||
vars:
|
||||
ansible_port: 22
|
||||
ansible_python_interpreter: /usr/bin/python3
|
||||
|
||||
databases:
|
||||
hosts:
|
||||
db1.example.com:
|
||||
db2.example.com:
|
||||
|
||||
production:
|
||||
children:
|
||||
webservers:
|
||||
databases:
|
||||
```
|
||||
|
||||
## Связанные заметки
|
||||
- [[DHCP]] — если хосты получают IP динамически через DHCP, inventory должен использовать имена (DNS), а не IP-адреса
|
||||
- [[DNS]] — `ansible_host: web1.example.com` требует DNS-резолвинга; `/etc/resolv.conf` определяет, где искать
|
||||
Reference in New Issue
Block a user