Назад к вопросам
Junior
96
questionbank

Назовите способы задания переменных в Ansible.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Переменные в Ansible можно задавать несколькими способами:

  • Инвентарные файлы: в файлах hosts или отдельных файлах в директории group_vars и host_vars.
  • Командная строка: с помощью флага --extra-vars или -e.
  • Плейбуки: в секциях vars, vars_files, include_vars.
  • Роли: в директориях vars или через параметры при вызове роли.
  • Файлы конфигурации Ansible: в ansible.cfg, но не рекомендуется для специфичных значений.
  • Dynamic Inventory: через скрипты, которые генерируют инвентарь и переменные на лету.
  • ** vaults:** для хранения секретных данных.

Приоритет присвоения переменных в Ansible от низкого к высокому:

  1. ansible.cfg
  2. Файлы инвентаря (host_vars, group_vars)
  3. Роли (из default, затем из vars)
  4. Секция vars в плейбуке
  5. Переменные, переданные через командную строку

Пример задания переменной в инвентаре:

# inventory.ini
[webservers]
web1 ansible_host=192.168.1.100

[webservers:vars]
http_port=80

Пример задания переменной в плейбуке:

# playbook.yml
---
- name: Configure webserver
  hosts: webservers
  vars:
    greeting: "Hello, World!"
  tasks:
    - name: Print greeting
      debug:
        msg: "{{ greeting }}"

Пример задания переменной через командную строку:

ansible-playbook playbook.yml -e "user=admin"