Sobes.tech
Junior

Wymień sposoby przypisywania zmiennych w Ansible.

sobes.tech AI

Odpowiedź od AI

Zmienne w Ansible można definiować na kilka sposobów:

  • Pliki inwentarza: w plikach hosts lub w osobnych plikach w katalogach group_vars i host_vars.
  • Wiersz poleceń: za pomocą flagi --extra-vars lub -e.
  • Playbooki: w sekcjach vars, vars_files, include_vars.
  • Role: w katalogach vars lub przez parametry podczas wywoływania roli.
  • Pliki konfiguracyjne Ansible: w ansible.cfg, ale niezalecane dla wartości specyficznych.
  • Inwentarz dynamiczny: przez skrypty generujące inwentarz i zmienne na bieżąco.
  • Vaults: do przechowywania poufnych danych.

Priorytet przypisywania zmiennych w Ansible od najniższego do najwyższego:

  1. ansible.cfg
  2. Pliki inwentarza (host_vars, group_vars)
  3. Role (z default, potem z vars)
  4. Sekcja vars w playbooku
  5. Zmienne przekazywane przez wiersz poleceń

Przykład przypisania zmiennej w inwentarzu:

# inventory.ini
[webservers]
web1 ansible_host=192.168.1.100

[webservers:vars]
http_port=80

Przykład przypisania zmiennej w playbooku:

# playbook.yml
---
- name: Konfiguracja serwera WWW
  hosts: webservers
  vars:
    greeting: "Hello, World!"
  tasks:
    - name: Wyświetl powitanie
      debug:
        msg: "{{ greeting }}"

Przykład przypisania zmiennej przez wiersz poleceń:

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