Инструменты пользователя

Инструменты сайта


linux:ansible:vars

Переменные в ansible

Приоритет переменных

Переменная в задаче

---
- name: user
  hosts: demo #наша группа серверов
  tasks:
    - name: Create user # название таска
      vars:
        user: werwolf2
      user: # название модуля
        name: "{{ user }}" # имя нового пользователя
        state: present # создать пользователя если его нет
      become: true # использовать sudo

Переменная для всех задач Playbook

---
- name: user
  hosts: demo #наша группа серверов
  vars:
    test: test1
  tasks:
    - name: Create user # название таска
      user: # название модуля
        name: "{{ user }}" # имя нового пользователя
        state: present # создать пользователя если его нет
      become: true # использовать sudo

Переменные в вынесенном файле

---
- name: user
  hosts: demo #наша группа серверов
  vars_files:
    - ./my_vars.yaml
  tasks:
    - name: Create user # название таска
      user: # название модуля
        name: "{{ user }}" # имя нового пользователя
        state: present # создать пользователя если его нет
      become: true # использовать sudo

Переменные подключаемые из файла по умолчанию для определенной группы (к примеру demo)

Структура папок для подключения переменных из файла vars.yml

📁 ansible-demo
 +---📁 group_vars
 |    +---📁 demo
 |         +---vars.yml
 \---host.ini
 \---user.yml

сам файл user.yml

---
- name: user
  hosts: demo
  tasks:
    - name: Create user
      user:
        name: "{{ user }}"
        state: present
      become: true
ansible-playbook -i hosts.ini user.yml -K

=== Переменные подключаемые из файла по умолчанию для хостов ===

📁 ansible-demo
 +---📁 host_vars
 |    +---127.0.0.1.yaml
 \---host.ini
 \---user.yml

сам файл user.yml

---
- name: user
  hosts: demo
  tasks:
    - name: Create user
      user:
        name: "{{ user }}"
        state: present
      become: true
ansible-playbook -i hosts.ini user.yml -K

Переменные в файле inventory

[demo]
127.0.0.1 ansible_user=werwolf ansible_port=2222 user=werwolf

Сгруппировать хосты

📁 ansible-demo
 +---📁 demo-server
 |    +---demo
 |    \---📁 group_vars
 |         +---📁 demo
 |              +---vars.yml
 \---user.yml

demo

[demo]
127.0.0.1 ansible_user=werwolf ansible_port=2222

user.yml

---
- name: user
  hosts: demo
  tasks:
    - name: Create user
      user:
        name: "{{ user }}"
        state: present
      become: true

all.yaml

user: werwolf

Выполним ansible

ansible-playbook -i demo-server user.yml -K

Переменная через extra-vars

ansible-playbook -i demo-server user.yml -K --extra-vars "user=werwolf"

vars_prompt

---
- name: user
  hosts: demo
  vars_prompt:
    - name: user
      prompt: "Введите пользователя"
      private: no
  tasks:
    - name: Create user
      user:
        name: "{{ user }}"
        state: present
      become: true
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible-playbook -i demo-server user.yml -K 
BECOME password: 
Введите пользователя: werwolf
linux/ansible/vars.txt · Последние изменения: 2023/11/23 19:05 — werwolf