NETBOX как dynamic inventory для Ansible — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | + | Подготовим виртуалочку для управления инфрой через ansible | |
| − | |||
| − | |||
| − | + | Ставим python3.11 (т.к. он в зависимостях в Pipfile) и pip | |
| − | + | apt install python3.11-full | |
| − | pip | + | apt install pip |
| − | pip install ansible | + | |
| + | |||
| + | Устанавливаем pipenv | ||
| + | pip install pipenv --break-system-packages | ||
| + | |||
| + | Подготавливаем ansible.cfg и Pipfile с зависимостями | ||
| + | |||
| + | Создадим директории и положим конфиги и прочее | ||
| + | /inventories | ||
| + | /iwad | ||
| + | /group_vars | ||
| + | all.yaml | ||
| + | netbox-inventory.yaml | ||
| + | /playbooks | ||
| + | /base | ||
| + | ansible.cfg | ||
| + | base.yaml | ||
| + | Pipfile | ||
| + | /roles | ||
| + | /base | ||
Версия 17:37, 18 марта 2026
Подготовим виртуалочку для управления инфрой через ansible
Ставим python3.11 (т.к. он в зависимостях в Pipfile) и pip
apt install python3.11-full apt install pip
Устанавливаем pipenv
pip install pipenv --break-system-packages
Подготавливаем ansible.cfg и Pipfile с зависимостями
Создадим директории и положим конфиги и прочее
/inventories /iwad /group_vars all.yaml netbox-inventory.yaml /playbooks /base ansible.cfg base.yaml Pipfile /roles /base
Install the NetBox Ansible Collection.
Before using this collection, you need to install it with the Ansible Galaxy command-line tool
ansible-galaxy collection install netbox.netbox
Set environment variables for your NetBox API token and URL of your NetBox instance:
export NETBOX_API=<YOUR_NETBOX_URL> (note - must include http:// or https://) export NETBOX_TOKEN=<YOUR_NETBOX_API_TOKEN>
Приводим конфиг примерно к такому виду
--- plugin: netbox.netbox.nb_inventory api_endpoint: https://netbox.iwad.ru token: fc58b84c25grbc5506627a8c32r32a397213ee validate_certs: false config_context: false group_names_raw: True group_by: - device_roles compose: nbx_role: role.name primary_ip_address: primary_ip.address query_filters: - status: 'active' - cf_device_class: server - tenant: org_iwad device_query_filters: - has_primary_ip: 'true' vm_query_filters: - has_primary_ip: 'true'
проверяем что инвентарь парсится(конечно же в netbox уже должны быть внесены устройства)
ansible-inventory -i ../../inventories/iwad --graph @all: |--@ungrouped: |--@proxmox: | |--pve36.iwad.ru | |--pve37.iwad.ru | |--pve38.iwad.ru | |--pve42.iwad.ru
или
ansible-inventory -i ../../inventories/iwad --list
кладём id_rsa поьзователю ansible(не умно, признаю) и пробуем катать базовую роль
РАБОТАЕМ!!!