Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
linux:ansible:playbooks [2023/11/23 13:19] werwolf |
linux:ansible:playbooks [2023/11/23 19:03] (текущий) werwolf |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====Playbooks==== | + | ==== Playbooks ==== |
| Это файлы в которых прописаны сценарии действий, которые нужно выполнить с какой, то группой хостов. | Это файлы в которых прописаны сценарии действий, которые нужно выполнить с какой, то группой хостов. | ||
| Строка 7: | Строка 7: | ||
| * Play — набор задач которые нужно выполнить для группы хостов | * Play — набор задач которые нужно выполнить для группы хостов | ||
| * task — конкретная задача. | * task — конкретная задача. | ||
| - | |||
| наш inventory файл hosts.ini | наш inventory файл hosts.ini | ||
| + | |||
| <code ini> | <code ini> | ||
| [demo] | [demo] | ||
| Строка 17: | Строка 17: | ||
| Ниже схема простого playbook’a использующего модуль ios_command: | Ниже схема простого playbook’a использующего модуль ios_command: | ||
| - | {{ :linux:ansible:1_03gpcpr4nkpz1ad5kgsgmg.jpg |}} | + | {{ :linux:ansible:1_03gpcpr4nkpz1ad5kgsgmg.jpg }} |
| Создадим файл user.yaml | Создадим файл user.yaml | ||
| Строка 23: | Строка 23: | ||
| <code yaml> | <code yaml> | ||
| --- | --- | ||
| - | - name: user | + | - name: user |
| hosts: demo #наша группа серверов | hosts: demo #наша группа серверов | ||
| tasks: | tasks: | ||
| Строка 34: | Строка 34: | ||
| запустим ansible команду | запустим ansible команду | ||
| + | |||
| <code bash> | <code bash> | ||
| - | ansible-playbook -i hosts.ini user.yml -K | ||
| - | </code> | ||
| - | ==== Переменные ==== | ||
| - | === Переменная в задаче === | ||
| - | <code yaml> | ||
| - | --- | ||
| - | - name: user | ||
| - | hosts: demo #наша группа серверов | ||
| - | tasks: | ||
| - | - name: Create user # название таска | ||
| - | vars: | ||
| - | user: werwolf2 | ||
| - | user: # название модуля | ||
| - | name: "{{ user }}" # имя нового пользователя | ||
| - | state: present # создать пользователя если его нет | ||
| - | become: true # использовать sudo | ||
| - | </code> | ||
| - | |||
| - | === Переменная для всех задач Playbook === | ||
| - | |||
| - | <code yaml> | ||
| - | --- | ||
| - | - name: user | ||
| - | hosts: demo #наша группа серверов | ||
| - | vars: | ||
| - | test: test1 | ||
| - | tasks: | ||
| - | - name: Create user # название таска | ||
| - | user: # название модуля | ||
| - | name: "{{ user }}" # имя нового пользователя | ||
| - | state: present # создать пользователя если его нет | ||
| - | become: true # использовать sudo | ||
| - | </code> | ||
| - | |||
| - | === Переменные в вынесенном файле === | ||
| - | |||
| - | <code yaml> | ||
| - | --- | ||
| - | - name: user | ||
| - | hosts: demo #наша группа серверов | ||
| - | vars_files: | ||
| - | - ./my_vars.yaml | ||
| - | tasks: | ||
| - | - name: Create user # название таска | ||
| - | user: # название модуля | ||
| - | name: "{{ user }}" # имя нового пользователя | ||
| - | state: present # создать пользователя если его нет | ||
| - | become: true # использовать sudo | ||
| - | </code> | ||
| - | |||
| - | === Переменные подключаемые из файла по умолчанию для определенной группы (к примеру demo)=== | ||
| - | |||
| - | Структура папок для подключения переменных из файла vars.yml | ||
| - | <code> | ||
| - | 📁 ansible-demo | ||
| - | +---📁 group_vars | ||
| - | | +---📁 demo | ||
| - | | +---vars.yml | ||
| - | \---host.ini | ||
| - | \---user.yml | ||
| - | </code> | ||
| - | |||
| - | |||
| - | сам файл user.yml | ||
| - | <code yaml> | ||
| - | --- | ||
| - | - name: user | ||
| - | hosts: demo | ||
| - | tasks: | ||
| - | - name: Create user | ||
| - | user: | ||
| - | name: "{{ user }}" | ||
| - | state: present | ||
| - | become: true | ||
| - | </code> | ||
| - | <code shell> | ||
| - | ansible-playbook -i hosts.ini user.yml -K | ||
| - | </code> | ||
| - | |||
| - | === Переменные подключаемые из файла по умолчанию для хостов=== | ||
| - | |||
| - | <code> | ||
| - | 📁 ansible-demo | ||
| - | +---📁 host_vars | ||
| - | | +---127.0.0.1.yaml | ||
| - | \---host.ini | ||
| - | \---user.yml | ||
| - | </code> | ||
| - | |||
| - | сам файл user.yml | ||
| - | <code yaml> | ||
| - | --- | ||
| - | - name: user | ||
| - | hosts: demo | ||
| - | tasks: | ||
| - | - name: Create user | ||
| - | user: | ||
| - | name: "{{ user }}" | ||
| - | state: present | ||
| - | become: true | ||
| - | </code> | ||
| - | |||
| - | <code shell> | ||
| ansible-playbook -i hosts.ini user.yml -K | ansible-playbook -i hosts.ini user.yml -K | ||
| </code> | </code> | ||