ΠΡΠ°Π²Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½Π·ΠΈΠΈ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Ansible Π½Π° Π΄ΡΡΠ³ΠΈ Ρ ΠΎΡΠ° ΠΈ ΡΠ°ΠΌΠΈΡΡ Π°Π· ΠΏΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ. Π Ρ ΠΎΠ΄Π° Π½Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ (ΠΊΠ°ΠΊΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈ Ρ ΠΎΡΠ°, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΠΌΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π° ΡΠ΅Π΄ΠΈΡΠ° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ°, ΡΠ°Π·Π±ΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π³ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ°Π²ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Ansible - Π½Π°Π²Π»ΠΈΠ·Π°Ρ Π² ΡΠ»ΠΎΠΆΠ½ΠΈ Π½Π΅ΡΠ°, Π±Π΅Π· Π΄Π° ΠΎΠ²Π»Π°Π΄Π΅ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅.
ΠΠ° Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΠΌ ΡΠ°Π·ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π° Π½Π΅ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡ, ΡΠ΅ΡΠΈΡ Π΄Π° Π½Π°ΠΏΠΈΡΠ° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Ansible Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ. ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π²Π°ΠΌ Π²ΠΈ, ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡΠ΅ΡΠ°Π·ΠΊΠ°Π· Π½Π° ΠΌΡΠΆΠ΅, ΡΠΎΠ²Π° Π΅ Π»ΠΎΠ½Π³ΡΠΈΠ΄ Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΠΊΠ²ΠΈ ΠΈ Π±Π΅Π· ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ.
ΠΡΠ°ΠΊΠ²Π°Π½ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π΅, ΡΠ΅ Π²Π΅ΡΠ΅ ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅Π΄Π° yamla, Π½Π΅ΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°, Π½ΠΎ βΠ½ΡΠΊΠ°ΠΊ ΡΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΊΡΠΈΠ²ΠΎβ.
ΠΈΠΌΠ΅Π½Π°
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π³ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π½Π° Ansible ΠΏΡΠ°Π²ΠΈ, Π΅ Π΄Π° Π½Π΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ ΡΠ΅ Π½Π°ΡΠΈΡΠ° Π½Π΅ΡΠΎ. ΠΠΊΠΎ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΈΠΌΠ΅Π½Π°ΡΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΈΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°. ΠΠΈΠ² ΠΏΡΠΈΠΌΠ΅Ρ: ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Ρ ΡΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡΠΎ ΠΊΠ°ΡΠΎ ΡΠ΅ Π»ΠΈ ΠΊΠ°Π·Π°, ΡΠ΅ ΠΏΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π² Ansible, Π½Π΅ ΠΌΠΎΠΆΠ° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π²ΡΠΏΡΠΎΡΠ° βΠΎΡ ΠΊΠ°ΠΊΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π·Π° ΠΈΠ³ΡΠΈ?β Π ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ , ΡΠ΅ βΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°ΡΠ΅, ΡΠ΅ ΠΊΠ½ΠΈΠ³Π°ΡΠ°-ΠΈΠ³ΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΈΠ³ΡΠ°β, ΠΏΠΎΡΠ»Π΅Π΄Π²Π° ΠΎΡΡΠ΄ΠΈΡΠ΅Π»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ βΠ½ΠΈΠ΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΎΠ²Π°β. Π₯ΠΎΡΠ°ΡΠ° ΠΏΠΈΡΠ°Ρ Ansible Π·Π° ΠΏΠ°ΡΠΈ ΠΈ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ play. Π’Π΅ Π²ΡΡΡΠ½ΠΎΡΡ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, Π½ΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°.
Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ Π½Π΅ΡΠΎ ΠΏΡΠΎΡΡΠΎ: ΠΊΠ°ΠΊ ΡΠ΅ ΠΊΠ°Π·Π²Π°? ΠΠΎΠΆΠ΅ Π±ΠΈ Π·Π½Π°Π΅ΡΠ΅ ΡΠΎΠ²Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΡΡΠ΅ ΠΎΠ±ΡΡΠ½Π°Π»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ΅ ΡΠ΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°.
ansible-playbook ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ°. ΠΠ½ΠΈΠ³Π°ΡΠ° Π·Π° ΠΈΠ³ΡΠ° Π΅ ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ yml/yaml, Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ:
---
- hosts: group1
roles:
- role1
- hosts: group2,group3
tasks:
- debug:
ΠΠ΅ΡΠ΅ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΡΠ΅Π»ΠΈΡΡ ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» Π΅ ΠΊΠ½ΠΈΠ³Π°-ΠΈΠ³ΡΠ°. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΡΠ΄Π΅ ΡΠ° ΡΠΎΠ»ΠΈΡΠ΅ ΠΈ ΠΊΡΠ΄Π΅ Π·Π°Π΄Π°ΡΠΈΡΠ΅. ΠΠΎ ΠΊΡΠ΄Π΅ Π΅ ΠΈΠ³ΡΠ°ΡΠ°? Π ΠΊΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ³ΡΠ° ΠΈ ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ½ΠΈΠ³Π°-ΠΈΠ³ΡΠ°?
ΠΡΠΈΡΠΊΠΎ Π΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°. Π ΠΈΠΌ Π»ΠΈΠΏΡΠ²Π°. ΠΠ°ΡΠΈΠ½Π°Π΅ΡΠΈ - Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½ΡΠΌΠ° Π΄Π° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π°Π²Π΅Π΄Π½ΡΠΆ. ΠΠΏΠΈΡΠ΅Π½ - Π·Π°ΡΠΎΡΠΎ βΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΈ Π½Π΅ΡΠ°β. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΎΠΏΠΈΡ, ΠΏΡΠ΅ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΠΈ Π²Π°ΡΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΡΡΠ°Π½Π΅ Π²ΠΎΠ΄Π΅Ρ Π² ΠΊΠ»Π°ΡΠ°.
Π’Π°ΠΊΠ° ΡΠ΅, Π·Π°ΠΏΠΎΠΌΠ½Π΅ΡΠ΅: Playbook Π΅ ΡΠΏΠΈΡΡΠΊ, ΡΡΡΡΠΎΡΡ ΡΠ΅ ΠΎΡ ΠΈΠ³ΡΠ° ΠΈ import_playbook
.
Π’ΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΈΠ³ΡΠ°:
- hosts: group1
roles:
- role1
ΠΈ ΡΠΎΠ²Π° ΡΡΡΠΎ Π΅ Π΄ΡΡΠ³Π° ΠΈΠ³ΡΠ°:
- hosts: group2,group3
tasks:
- debug:
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΈΠ³ΡΠ°? Π·Π°ΡΠΎ Π΅ ΡΡ
ΠΠ³ΡΠ°ΡΠ° Π΅ ΠΊΠ»ΡΡΠΎΠ² Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π·Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π·Π° ΠΈΠ³ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΠΈ ΡΠ°ΠΌΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΡΠ²ΡΡΠ·Π²Π°Ρ ΡΠΏΠΈΡΡΠΊ Ρ ΡΠΎΠ»ΠΈ ΠΈ/ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΡΡ ΡΠΏΠΈΡΡΠΊ Ρ Ρ
ΠΎΡΡΠΎΠ²Π΅, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ. Π Π΄ΡΠ»Π±ΠΎΠΊΠΈΡΠ΅ Π΄ΡΠ»Π±ΠΈΠ½ΠΈ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½Π΅ Π½Π° delegate_to
, Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΡΡΡΡΠ΅Π½Π΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Ρ
ΠΎΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠ΅ΡΠΊΠ°ΡΠ°Π½Π΅ ΠΈ Π΄Ρ. Π’Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π»Π΅ΠΊΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π·Π°Π΄Π°ΡΠΈΡΠ΅. ΠΠΎ Π·Π°Π±ΡΠ°Π²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π°. ΠΡΡΠΊΠ° ΠΎΡ ΡΠ΅Π·ΠΈ ΡΠΌΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π½Π΅ Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π°. Π Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ βΠ½Π΅ΡΠΎβ βΠ½ΡΠΊΡΠ΄Π΅β, ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ³ΡΠ°. ΠΠ΅ Π΅ ΡΠΎΠ»Ρ. ΠΠ΅ Π΅ ΡΠΎΠ»Ρ Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π΄Π΅Π»Π΅Π³Π°ΡΠΈ. ΠΠ·ΠΈΠΌΠ°Ρ Π³ΠΎ ΠΈ ΠΏΠΈΡΠ΅Ρ ΠΈΠ³ΡΠ°. Π ΠΊΠΎΠ΅ΡΠΎ, Π² ΠΏΠΎΠ»Π΅ΡΠΎ hosts ΠΈΠ·Π±ΡΠΎΡΠ²Π°ΡΠ΅ ΠΊΡΠ΄Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°, Π° Π² roles/tasks - ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°.
ΠΡΠΎΡΡΠΎ, Π½Π°Π»ΠΈ? ΠΠ°ΠΊ Π±ΠΈ ΠΌΠΎΠ³Π»ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½Π°ΡΠ΅?
ΠΠ΄ΠΈΠ½ ΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΠΈΠΌΠ°Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΡΡ ΡΠΎΠ²Π° Π½Π΅ ΡΡΠ΅Π· ΠΈΠ³ΡΠ°, Π΅ βΡΠΎΠ»ΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠΈΡΠΊΠΎβ. ΠΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΠΈΠΌΠ°ΠΌ ΡΠΎΠ»Ρ, ΠΊΠΎΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΊΠ°ΠΊΡΠΎ ΡΡΡΠ²ΡΡΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΡΠΈΠΏ, ΡΠ°ΠΊΠ° ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΎΡ Π²ΡΠΎΡΠΈ ΡΠΈΠΏ.
ΠΡΡ
Π΅ΡΠΈΠΏΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ. ΠΠΈΡ
ΠΈΡΠΊΠ°Π» Π΄Π° ΠΈΠΌΠ°ΠΌ ΡΠΎΠ»Ρ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ. Π ΠΎΠ»ΡΡΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ Π²ΡΠ·Π»Π°Π³Π° Π½Π° Ρ
ΠΎΡΡΠΎΠ²Π΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ (ΡΠΏΠΎΡΠ΅Π΄ ΠΈΠ³ΡΠ°ΡΠ°). ΠΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° Ρ
ΠΎΡΡΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌΠ΅. ΠΠ°ΡΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄Π΅Π»Π΅Π³Π°Ρ? Π’ΡΡΠ±Π²Π° ΡΡΡΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ iptables. Π΄Π΅Π»Π΅Π³Π°Ρ? Π’ΡΡΠ±Π²Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅/ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π° Π‘Π£ΠΠ, Π·Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ. Π΄Π΅Π»Π΅Π³Π°Ρ! Π Π°ΠΊΠΎ ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π»ΠΈΠΏΡΠ²Π°, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΄Π΅Π»Π΅Π³Π°ΡΠΈΡ include_role
Π²ΡΠ² Π²Π»ΠΎΠΆΠ΅Π½ ΡΠΈΠΊΡΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ»ΠΎΠΆΠ΅Π½ ΡΠΈΠ»ΡΡΡ Π²ΡΡΡ
Ρ ΡΠΏΠΈΡΡΠΊ ΠΎΡ Π³ΡΡΠΏΠΈ ΠΈ Π²ΡΡΡΠ΅ include_role
ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ delegate_to
ΠΎΡΠ½ΠΎΠ²ΠΎ. Π ΡΡΡΠ³Π²Π°ΠΌΠ΅...
ΠΠΎΠ±ΡΠΎΡΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ - Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄Π½Π°-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π½Π° ΡΠΎΠ»Ρ, ΠΊΠΎΡΡΠΎ "ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎ" - Π½ΠΈ Π²ΠΎΠ΄ΠΈ Π² ΠΏΡΠ»Π΅Π½ Π°Π΄, ΠΎΡ ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ·Ρ ΠΎΠ΄: Π΄Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π²ΡΠΈΡΠΊΠΎ ΠΎΡ Π½ΡΠ»Π°ΡΠ°.
ΠΡΠ΄Π΅ ΡΡΠ°Π½Π° Π³ΡΠ΅ΡΠΊΠ°ΡΠ° ΡΡΠΊ? Π ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΊΡΠΈΡ ΡΠ΅, ΡΠ΅ Π·Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠ° βxβ Π½Π° Ρ ΠΎΡΡ X, ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° Ρ ΠΎΡΡ Y ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ βyβ ΡΠ°ΠΌ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅: ΠΎΡΠΈΠ΄Π΅ΡΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ play, ΠΊΠΎΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡ Y ΠΏΡΠ°Π²ΠΈ y. ΠΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΉΡΠ΅ Π½Π΅ΡΠΎ ΠΊΡΠΌ "Ρ ", Π° Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΎΡ Π½ΡΠ»Π°ΡΠ°. ΠΠΎΡΠΈ ΠΈ Ρ ΡΠ²ΡΡΠ΄ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ.
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π² ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠΈΡΠ΅ ΠΏΠΎ-Π³ΠΎΡΠ΅ Π΅ ΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²Π°ΡΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉ! ΠΠ°ΡΠΎΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΊΠΎΠΉΡΠΎ Π΅ Π‘Π£Π₯ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΡΡΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅.
Π’ΡΠΊ Π΄Π΅Π±Π½Π΅ Π΄ΡΡΠ³Π° ΡΠ΅ΡΠΈΠΎΠ·Π½Π° Π³ΡΠ΅ΡΠΊΠ°. ΠΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π²ΡΡΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΡ ΡΠ½ΠΎΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ (ΠΌΠΎΠΆΠ΅ ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅, Π½ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΡΠ΅ Π΄ΠΎΠ²ΡΡΡΠ²Π° Π»Π΅ΡΠ½ΠΎ) Π² ΠΏΡΠ»Π΅Π½ ΡΠΆΠ°Ρ, ΠΊΠΎΠΉΡΠΎ Π΄ΠΎΡΠΈ Π°Π²ΡΠΎΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅. Π Π°Π±ΠΎΡΠΈ, Π½ΠΎ Π½Π΅ Π΄Π°ΠΉ ΠΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π΅ΡΠΎ.
ΠΡΠ΅ΡΠΊΠ°ΡΠ° Π΅: ΡΠΎΠ»ΡΡΠ° Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°Π·ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Π΅ ΡΡΡΠΈΠΏΠ°Π»Π° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΈ Π½Π°ΡΠ°Π»Π°, ΡΠ΅ Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π³Π»Π΅Π΄Π°. Π ΠΎΠ»ΡΡΠ° Π½Π΅ Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π’Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΠΈΠ³ΡΠ°. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈ ΠΌΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Π·Π΅ΠΌΠ° ΠΈΠ³ΡΠ°ΡΠ°?
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ, ΠΏΡΠ°Π² ΡΠΈ. Play Π²Π·Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΠΏΠΎ-ΡΠΎΡΠ½ΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ) Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π° ΠΊΠΎΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅.
ΠΠΊΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ»Ρ, ΡΠ° Π΄ΠΎΡΠΈ ΠΈ Ρ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π²ΠΈΠ΅ ΠΎΠ±ΡΠΈΡΠ°ΡΠ΅ ΡΠ΅Π±Π΅ ΡΠΈ (ΠΈ ΡΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π²Π°ΡΠΈΡ ΠΊΠΎΠ΄) Π½Π° ΠΆΠ°Π»ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅. Π ΠΎΠ»ΡΡΠ° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΡΠ΄Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΡΡΠ΅Π· ΠΈΠ³ΡΠ°. Π ΠΎΠ»ΡΡΠ° ΠΏΡΠ°Π²ΠΈ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΉ ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΠΊΡΠ΄Π΅ΡΠΎ ΠΉ ΡΠ΅ ΠΊΠ°ΠΆΠ΅.
ΠΠ°ΡΠΎ Π΅ ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ° Π² Ansible ΠΈ Π·Π°ΡΠΎ COBOL Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ ΠΎΡ Ansible, ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π² Π³Π»Π°Π²Π°ΡΠ° Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΈ jinja. ΠΠ°ΡΠ΅Π³Π° Π½Π΅ΠΊΠ° ΠΊΠ°ΠΆΠ΅ΠΌ Π΅Π΄Π½ΠΎ Π½Π΅ΡΠΎ - Π²ΡΡΠΊΠΎ Π²Π°ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π²Ρ ΡΠ»Π΅Π΄ ΡΠ΅Π±Π΅ ΡΠΈ Π½Π΅Π·Π°Π»ΠΈΡΠΈΠΌΠ° ΡΠ»Π΅Π΄Π° ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π²ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½ΠΈΡΠΎ ΠΏΠΎ Π²ΡΠΏΡΠΎΡΠ°. Π©ΠΎΠΌ Π΄Π²Π΅ΡΠ΅ βΡΠ»Π΅Π΄ΠΈβ ΡΠ΅ ΠΏΡΠ΅ΡΠ΅ΠΊΠΎΡ Π°, Π²ΡΠΈΡΠΊΠΎ ΠΈΠ·ΡΠ΅Π·Π½Π°.
ΠΠ΅Π»Π΅ΠΆΠΊΠ° Π·Π° Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈΡΠ΅: ΡΠΎΠ»ΡΡΠ° ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊ. Π―ΠΆΡΠ΅ delegate_to
ΠΈ ΠΈΠΌΠ° ΡΠ°Π·ΡΠΌΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π―ΠΆΡΠ΅ meta: end host/play
. ΠΠΎ! Π‘ΠΏΠΎΠΌΠ½ΡΡΠ΅ Π»ΠΈ ΡΠΈ, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅? ΠΠ°Π±ΡΠ°Π²ΠΈΡ
Π·Π° delegate_to
. ΠΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ ΠΈ ΠΊΡΠ°ΡΠΈΠ² Ansible ΠΊΠΎΠ΄. ΠΠΎΠ΅ΡΠΎ Π΅ Π»Π΅ΡΠ½ΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΏΠΈΡΠ°Π½Π΅, Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π»Π΅ΡΠ½ΠΎ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅. Π ΡΠ°ΠΊΠ°, ΠΎΡΠ΅ Π²Π΅Π΄Π½ΡΠΆ:
play ΠΈ ΡΠ°ΠΌΠΎ play ΡΠ΅ΡΠ°Π²Π° Π½Π° ΠΊΠΎΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°.
Π ΡΠΎΠ·ΠΈ ΡΠ°Π·Π΄Π΅Π» ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ ΠΌΠ΅ Ρ ΠΎΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ³ΡΠ° ΠΈ ΡΠΎΠ»Ρ. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ»ΠΈ.
ΠΠ°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ»ΠΈ
ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΠΈΠ³ΡΠ°:
- hosts: somegroup
pre_tasks:
- some_tasks1:
roles:
- role1
- role2
post_tasks:
- some_task2:
- some_task3:
ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ foo. Π ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ foo: name=foobar state=present
. ΠΡΠ΄Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΡΠΎΠ²Π°? Π² ΠΏΡΠ΅Π΄ΠΈ? ΠΏΠΎΡΡ? Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ»Ρ?
...Π ΠΊΡΠ΄Π΅ ΠΎΡΠΈΠ΄ΠΎΡ Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅?
ΠΡΠ½ΠΎΠ²ΠΎ Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ β ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π·Π° ΠΈΠ³ΡΠ°. ΠΠΊΠΎ ΠΏΠ»Π°Π²Π°ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ³ΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ Π²ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ "Π½Π΅ΡΡΠ°Π±ΠΈΠ»Π΅Π½".
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π·Π° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅: Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π·Π° Ρ ΠΎΡΡΠΎΠ²Π΅, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΡΠ°ΠΌΠΎΡΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ pre_tasks, tasks, role, post_tasks. ΠΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΠΈΠ³ΡΠ° ΡΠ΅Π³Π° Π½Π΅ ΡΠ° Π²Π°ΠΆΠ½ΠΈ Π·Π° Π½Π°Ρ.
Π Π΅Π΄ΡΡ Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈ ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ»ΠΈ: pre_tasks
, roles
, tasks
, post_tasks
. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΠΎ ΡΠ΅Π΄ΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π΅ ΠΌΠ΅ΠΆΠ΄Ρ tasks
ΠΈ roles
Π½Π΅ Π΅ ΡΡΠ½ΠΎ, ΡΠΎΠ³Π°Π²Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΊΠ°Π·Π²Π°Ρ, ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ°Π·Π΄Π΅Π» tasks
, ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π½Π΅ roles
... ΠΠΊΠΎ ΠΈΠΌΠ° roles
, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΠ° ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»ΠΈ pre_tasks
/post_tasks
.
ΠΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π²ΡΠΈΡΠΊΠΎ Π΄Π° Π΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΠΎ ΡΡΠ½ΠΎ: ΠΏΡΡΠ²ΠΎ pre_tasks
, ΡΠΎΠ³Π°Π²Π° roles
, ΡΠΎΠ³Π°Π²Π° post_tasks
.
ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠΌΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π½Π° Π²ΡΠΏΡΠΎΡΠ°: ΠΊΡΠ΄Π΅ Π΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°? foo
ΠΏΠΈΡΠ°? Π’ΡΡΠ±Π²Π° Π»ΠΈ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ»Π° ΡΠΎΠ»Ρ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»? ΠΠ»ΠΈ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ Π΄Π΅Π±Π΅Π»Π° ΡΠΎΠ»Ρ Π·Π° Π²ΡΠΈΡΠΊΠΎ? Π Π°ΠΊΠΎ Π½Π΅ Π΅ ΡΠΎΠ»Ρ, ΡΠΎΠ³Π°Π²Π° ΠΊΡΠ΄Π΅ Π΄Π° ΠΏΠΈΡΠ° - Π² pre ΠΈΠ»ΠΈ post?
ΠΠΊΠΎ Π½ΡΠΌΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° ΡΠ΅Π·ΠΈ Π²ΡΠΏΡΠΎΡΠΈ, ΡΠΎΠ²Π° Π΅ Π·Π½Π°ΠΊ Π·Π° Π»ΠΈΠΏΡΠ° Π½Π° ΠΈΠ½ΡΡΠΈΡΠΈΡ, ΡΠΎΠ΅ΡΡ ΡΡΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ βΠ½Π΅ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΈβ. ΠΠ΅ΠΊΠ° Π΄Π° Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ. ΠΡΡΠ²ΠΎ, Π²ΡΠΏΡΠΎΡ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ: ΠΠΊΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΠΈΠΌΠ° pre_tasks
ΠΈ post_tasks
(ΠΈ Π½ΡΠΌΠ° Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ»ΠΈ), ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π»ΠΈ Π½Π΅ΡΠΎ Π΄Π° ΡΠ΅ ΡΡΡΠΏΠΈ, Π°ΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½Ρ ΠΏΡΡΠ²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΠΎΡ post_tasks
Π©Π΅ Π³ΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΡ Π΄ΠΎ ΠΊΡΠ°Ρ pre_tasks
?
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π²ΡΠΏΡΠΎΡΠ° ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΡΡΠΏΠΈ. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ?
... ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ. Π§Π΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΠΊΡΠΈΠ²Π° Π²Π°ΠΆΠ΅Π½ ΡΠ°ΠΊΡ: Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΡΠ΅ ΠΈΠ·ΡΠΈΡΡΠ²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ»Π΅Π΄ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·Π΄Π΅Π». Π’Π΅Π·ΠΈ. Π²ΡΠΈΡΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΡ pre_tasks
, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ΅Π½ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠΎΠ»ΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠΎΠ»ΠΈΡΠ΅. Π‘Π»Π΅Π΄ post_tasks
ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π°ΠΊΠΎ ΠΏΠ»ΡΠ·Π½Π΅ΡΠ΅ Π·Π°Π΄Π°ΡΠ° ΠΎΡ post_tasks
Π² pre_tasks
, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½. Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π² pre_tasks
ΡΠ΅Π± ΡΡΡΠ²ΡΡΡΡ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½, ΠΈ post_tasks
Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΄ΠΎ Π½Π΅Π³ΠΎ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Π΅ΡΠ΅ ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ° Π² ΡΠ°Π·Π΄Π΅Π»Π° pre_tasks
ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° βΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅β ΡΡΡΠ²ΡΡΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ΅ ΡΡΡΠΏΠΈ.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎ, Π·Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° pre_tasks
ΠΈ post_tasks
? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ), ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΡΠΎΠ»ΡΡΠ°. Π post_tasks
ΡΠ΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ»ΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ).
ΠΠ΄ΠΈΠ½ ΠΏΡΠΎΠ½ΠΈΡΠ°ΡΠ΅Π»Π΅Π½ Π΅ΠΊΡΠΏΠ΅ΡΡ ΠΏΠΎ Ansible ΡΠ΅ Π½ΠΈ ΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ²Π°. meta: flush_handlers
, Π½ΠΎ Π·Π°ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ flush_handlers, Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·ΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΠ΅Π΄Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΡΠΈΠΈΡΠ΅ Π² ΠΈΠ³ΡΠ°ΡΠ°? ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° meta: flush_handlers ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΠΈ Π΄Π°Π΄Π΅ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈ Π½Π΅ΡΠ° Ρ Π΄ΡΠ±Π»ΠΈΡΠ°ΡΠΈ ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, ΠΊΠ°ΡΠΎ Π½ΠΈ Π΄Π°Π²Π° ΡΡΡΠ°Π½Π½ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° when
Ρ block
ΠΈ Ρ.Π½. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅ Π°Π½Π·ΠΈΠ±ΡΠ»Π°, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ Π½ΡΠ°Π½ΡΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π·Π° βΡΠ»ΠΎΠΆΠ½ΠΎβ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π Π΅Π΄Π½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄/ΡΠΎΠ»ΠΈ/ΠΏΠΎΡΡ - Π½Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π½ΡΠ°Π½ΡΠΈ.
Π ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ Π½Π°ΡΠ΅ΡΠΎ βΡΡβ. ΠΡΠ΄Π΅ Π΄Π° Π³ΠΎ ΡΠ»ΠΎΠΆΠ°? ΠΡΠ΅Π΄ΠΈ, ΠΏΠΎΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ»ΠΈ? ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΠΎΠ²Π° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΎΠ²Π° Π΄Π°Π»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° Π·Π° foo. ΠΠΊΠΎ Π³ΠΈ Π½ΡΠΌΠ°, ΡΠΎΠ³Π°Π²Π° foo Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Π½ΠΈΡΠΎ Π² pre, Π½ΠΈΡΠΎ Π² post - ΡΠ΅Π·ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠΌΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ - ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π°.
Π‘Π΅Π³Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ Π½Π° Π²ΡΠΏΡΠΎΡΠ° βΡΠΎΠ»Ρ ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΠ°β ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²Π΅ΡΠ΅ Π΅ Π² ΠΈΠ³ΡΠ°ΡΠ° - Π°ΠΊΠΎ ΠΈΠΌΠ° Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΠΌ, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΊΡΠΌ Π·Π°Π΄Π°ΡΠΈΡΠ΅. ΠΠΊΠΎ ΠΈΠΌΠ° ΡΠΎΠ»ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠΎΠ»Ρ (Π΄ΠΎΡΠΈ ΠΎΡ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ°). ΠΠ΅ΠΊΠ° Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΠ΅ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΈ ΡΠΎΠ»ΠΈΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Ansible Π΄Π°Π²Π° ΡΠ°Π·ΡΠΌΠ½ΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ΄Π½ΠΎ Π²ΡΠΏΡΠΎΡΠΈ Π½Π° Π²ΠΊΡΡΠ°.
ΠΠ°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ»ΠΈ (Π²ΡΠΎΡΠ° ΡΠ°ΡΡ)
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ΠΏΡΡΠ²Π° Π·Π°ΠΏΠΎΡΠ²Π°ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠ½ΠΈΠ³Π°-ΠΈΠ³ΡΠ°. Π’ΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ foo, bar ΠΈ baz. Π’ΠΎΠ²Π° ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ Π΅Π΄Π½Π° ΡΠΎΠ»Ρ Π»ΠΈ ΡΠ° ΠΈΠ»ΠΈ ΡΡΠΈ ΡΠΎΠ»ΠΈ? ΠΠ° Π΄Π° ΠΎΠ±ΠΎΠ±ΡΠΈΠΌ Π²ΡΠΏΡΠΎΡΠ°: Π² ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΎΠ»ΠΈ? ΠΠ°ΠΊΡΠ² Π΅ ΡΠΌΠΈΡΡΠ»ΡΡ Π΄Π° ΠΏΠΈΡΠ΅Ρ ΡΠΎΠ»ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π° ΠΏΠΈΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ?... ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ»Ρ?
ΠΠ΄Π½Π° ΠΎΡ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ (Π²Π΅ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΠΎΠ²Π°) Π΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΠΌ, ΡΠ΅ ΡΠΎΠ»ΡΡΠ° Π΅ ΠΊΠ°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°. ΠΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΎΠ±ΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°? Π’ΠΎΠΉ ΠΏΡΠΈΠ΅ΠΌΠ° Π²Ρ ΠΎΠ΄Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΏΡΠ°Π²ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ ΠΈ Π²ΡΡΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
Π‘Π΅Π³Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΎΡ ΡΠΎΠ²Π° Π² ΡΠΎΠ»ΡΡΠ°? ΠΠΈΠ½Π°Π³ΠΈ ΡΡΠ΅ Π΄ΠΎΠ±ΡΠ΅ Π΄ΠΎΡΠ»ΠΈ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ, ΡΠΎΠ²Π° Π΅ ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π»ΠΈΡ Ansible β Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ. ΠΠΌΠ°ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ? ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ. ΠΠΎ Ρ "ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ Π²ΡΡΡΠ°Π½Π΅" - ΡΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΡΡΠ²ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΊΡΠΌ ΡΠΎΠ»Ρ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Ρ Π΄ΠΎΠΆΠΈΠ²ΠΎΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π² ΡΠ΅ΠΊΡΠΈΡΡΠ° vars Π·Π° ΡΠΎΠ»ΡΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Ρ ΡΡΠ» ΠΆΠΈΠ²ΠΎΡ Π² ΡΠΎΠ»ΡΡΠ°. ΠΠ»ΠΈ Π΄ΠΎΡΠΈ Ρ ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΠΊΠ½ΠΈΠ³ΠΈΡΠ΅-ΠΈΠ³ΡΠΈ (set_fact
/register
). ΠΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ "Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ". ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° βΠ²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡβ ΠΈ βΠ΄Π° Ρ Π²ΡΡΠ½Π΅ΡΠ΅β.
ΠΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π½Π΅ΡΠΎ ΡΠ»Π΅Π΄Π²Π° ΠΎΡ ΡΠΎΠ²Π°: Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π΅ΡΠΎ Π² Ansible, Π±Π΅Π· Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ. ΠΡΠΎΠΌΡΠ½Π°ΡΠ° Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΡΡΡΠ°Π½ΠΈΡΠ΅Π½ Π΅ΡΠ΅ΠΊΡ Π·Π° Π΄Π°Π΄Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π Rust, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΅ unsafe
. Π Π² Ansible ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ
Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠΎΠ»Ρ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ Π΄ΡΠΌΠΈ: Π½Π΅ βΠΏΡΠ΅Π΄Π°ΠΉΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΡΠΎΠ»ΡΡΠ°β, Π° βΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠΎΠ»ΡΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°β. ΠΡΠΌΠ° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ»ΠΈΡΠ΅. ΠΡΠΌΠ° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ»ΠΈ.
ΠΠ±ΡΠΎ: ΡΠΎΠ»ΡΡΠ° Π½Π΅ Π΅ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΠ΅ Π΅ Ρ
ΡΠ±Π°Π²ΠΎΡΠΎ Π½Π° ΡΠΎΠ»ΡΡΠ°? ΠΡΡΠ²ΠΎ, ΡΠΎΠ»ΡΡΠ° ΠΈΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (/default/main.yaml
), Π²ΡΠΎΡΠΎ, ΡΠΎΠ»ΡΡΠ° ΠΈΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅? Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°ΡΠ° Π½Π° ΠΠ°ΡΠ»ΠΎΡ, Π΄ΠΎΡΡΠ° ΠΈΠ·ΠΊΡΠΈΠ²Π΅Π½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΈ Π½Π° Ansible, ΡΠΎΠ»Π΅Π²ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ° Ρ Π½Π°ΠΉ-Π½ΠΈΡΡΠΊ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ (ΠΌΠΈΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° Ansible). Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅, ΡΠ΅ ΡΠ΅ ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ° ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ»ΡΡΠ° ΡΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΌΡΡΡΠΎ Π·Π° Π²Π°Ρ. (ΠΠ°Π»ΠΊΠΎ Π»ΡΠΆΠ° - ΠΈΠΌΠ° ΠΎΡΠ΅ |d(your_default_here)
, Π½ΠΎ Π°ΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ°ΠΌΠΎ ΡΠΎΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅).
ΠΠ°ΠΊΠ²ΠΎ Π΄ΡΡΠ³ΠΎ Π΅ ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ Π² ΡΠΎΠ»ΠΈΡΠ΅? ΠΠ°ΡΠΎΡΠΎ ΠΈΠΌΠ°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ. Π’ΠΎΠ²Π° ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ (Ρ.Π΅. ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈ Π·Π° ΡΠΎΠ»ΡΡΠ°), ΡΠ°ΠΊΠ° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ (ΠΈΠΌΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π», ΠΈΠ»ΠΈ Π°Π½ΡΠΈ-ΠΌΠΎΠ΄Π΅Π» - include_vars
Π·Π°Π΅Π΄Π½ΠΎ Ρ {{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml
.). Π’ΠΎΠ²Π° ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅ Π·Π° files/
, templates/
. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ (library/
). ΠΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° (ΠΊΠΎΡΡΠΎ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°), Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ ΡΡΠΊ Π΅, ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·Ρ
Π²ΡΡΠ»ΡΡ Π² Π΅Π΄Π½Π° ΠΊΡΠΏΡΠΈΠ½Π°, Π° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΡΠΏΡΠΈΠ½ΠΈ.
ΠΡΠ΅ Π΅Π΄Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡ: ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠΎΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° (ΡΡΠ΅Π· galaxy). Π‘ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° ΠΏΠΎΡΡΠΈ Π·Π°Π±ΡΠ°Π²Π΅Π½ΠΎ.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΎΠ»ΠΈΡΠ΅ ΠΈΠΌΠ°Ρ Π΄Π²Π΅ Π²Π°ΠΆΠ½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ: ΠΈΠΌΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (ΡΠ½ΠΈΠΊΠ°Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΡ) ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ.
ΠΡΡΡΠ°ΠΉΠΊΠΈ ΡΠ΅ ΠΊΡΠΌ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ Π²ΡΠΏΡΠΎΡ: ΠΊΠΎΠ³Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΊΠΎΠ³Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ»ΠΈ? ΠΠ°Π΄Π°ΡΠΈΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ βΠ»Π΅ΠΏΠΈΠ»ΠΎβ ΠΏΡΠ΅Π΄ΠΈ/ΡΠ»Π΅Π΄ ΡΠΎΠ»ΠΈΡΠ΅, ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ Π³ΡΠ°Π΄ΠΈΠ²Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ (ΡΠΎΠ³Π°Π²Π° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΡΠΎΠ»ΠΈ Π² ΠΊΠΎΠ΄Π°). ΠΡΠΏΡΠΈΠ½Π° Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΡΠΌΠ΅ΡΠ΅Π½ΠΈ Ρ ΡΠΎΠ»ΠΈ, Π΅ Π½Π΅Π΄Π²ΡΡΠΌΠΈΡΠ»Π΅Π½Π° ΠΏΠΎΠΌΠΈΡ. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠ°ΡΠ΅ ΠΊΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΡΠΈΠ» - ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΠ°, ΠΈΠ»ΠΈ ΡΠΎΠ»Ρ. Π ΠΎΠ»ΠΈΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΠΎ-βΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ΅Π½β (Π²Π°ΠΆΠ΅Π½ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½) ΠΊΠΎΠ΄ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Π² ΡΠΎΠ»ΠΈ, Π° ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΡΠ΅ ΠΏΠΈΡΠ°Ρ Π² ΡΡΠΈΠ» Π½Π° Π·Π°Π΄Π°ΡΠ°.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ import_role ΠΊΠ°ΡΠΎ Π·Π°Π΄Π°ΡΠ°, Π½ΠΎ Π°ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΎΠ²Π°, Π±ΡΠ΄Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΠΎΠ±ΡΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ ΡΡΠ²ΡΡΠ²ΠΎ Π·Π° ΠΊΡΠ°ΡΠΎΡΠ° Π·Π°ΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°.
ΠΠ΄ΠΈΠ½ ΠΏΡΠΎΠ½ΠΈΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠΈΡΠ°ΡΠ΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΡΠΎΠ»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Ρ ΡΠΎΠ»ΠΈ, ΡΠΎΠ»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΡΠ΅Π· galaxy.yml ΠΈ ΠΈΠΌΠ° ΡΡΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎ ΠΈ ΡΠΆΠ°ΡΠ½ΠΎ include_role
β ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌ Π²ΠΈ, ΡΠ΅ ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ΅Π½ΠΈΡΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Π°Π½Π·ΠΈΠ±ΡΠ», Π° Π½Π΅ Π²ΡΠ² ΡΠΈΠ³ΡΡΠ½Π°ΡΠ° Π³ΠΈΠΌΠ½Π°ΡΡΠΈΠΊΠ°.
ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΊΠ° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π΄ΡΡΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ΡΠΎ: ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ. ΠΠ° Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΅ ΠΏΠΎΡΡΠΈ ΠΈΠ·ΠΊΡΡΡΠ²ΠΎ. ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ ΠΈ Π΄ΡΠ°Π³?
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΡΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅, Π΅ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ:
- hosts: group1
tasks:
- foo:
notify: handler1
handlers:
- name: handler1
bar:
ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠΎΠ»ΡΡΠ° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² rolename/handlers/main.yaml. ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΡΠΎΠ²ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² ΠΈΠ³ΡΠ°ΡΠ°: pre/post_tasks ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ Π½Π° ΡΠΎΠ»ΠΈ, Π° ΡΠΎΠ»ΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΠΎΡ ΠΈΠ³ΡΠ°ΡΠ°. ΠΠ±Π°ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° "ΠΊΡΡΡΡΠΎΡΠ°Π½ΠΈ ΡΠΎΠ»ΠΈ" ΠΊΡΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ wtf, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²ΡΠ°ΡΡΠ½Π΅ΡΠΎ Π½Π° ΡΡΠΈΠ²ΠΈΠ°Π»Π΅Π½ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ. (ΠΡΡΠ³ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° Π½Π΅ ΠΏΠΎΠ²ΡΠ°ΡΡΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ).
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° Π΅, ΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° (ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎ) (ΡΠ°Π³ΠΎΠ²Π΅ ΠΏΠ»ΡΡ/ΠΌΠΈΠ½ΡΡ ΠΈ when
), Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ - ΡΡΠ΅Π· ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ (ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π°Π½Π΅ΡΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ). ΠΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠΎΠ²Π°? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΡΡΡ, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅, Π°ΠΊΠΎ Π½ΡΠΌΠ° ΠΏΡΠΎΠΌΡΠ½Π°, ΡΠΎΠ³Π°Π²Π° Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ. ΠΠ°ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΡΠΌΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΡΡΡΠΏΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π° Π΄ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠΎΡΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π°, ΡΡΠ»ΡΠ³Π°ΡΠ° Π½Π΅ Π΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π°. Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΎΡΡΠ°Π²Π° ΡΡΡ ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°.
Π‘ΠΈΡΡΠ°ΡΠΈΡΡΠ° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½Π° (ΠΏΠΎ-ΡΠΎΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π΄Π° ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅ ΠΈ Ρ.Π½., Π½ΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ βΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π°Π½Π·ΠΈΠ±ΠΈΠ»Π½ΠΎβ ΠΏΠΎΠ΄ Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΡΠΎΡΠΌΠ°). ΠΠΎ ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³Π° ΠΎΠ±ΡΠ° ΠΈΡΡΠΎΡΠΈΡ: ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ Π³ΠΎ .service
-ΡΠ°ΠΉΠ» ΠΈ ΡΠ΅Π³Π° Π³ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ daemon_reload
ΠΈ state=started
. Π Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΠΌΡΡΡΠΎ Π·Π° ΡΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ. ΠΠΎ Π°ΠΊΠΎ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, Π° Π·Π°Π΄Π°ΡΠ° Π² ΠΊΡΠ°Ρ Π½Π° ΡΠΏΠΈΡΡΠΊ ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ»Ρ, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠΉ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ. ΠΠΎΡΠΈ ΠΊΠ½ΠΈΠ³Π°ΡΠ° Ρ ΠΈΠ³ΡΠΈ Π΄Π° ΡΠ΅ ΡΡΡΠΏΠΈ ΠΏΠΎ ΡΡΠ΅Π΄Π°ΡΠ°. Π’ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ (Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠ° Ρ Π°ΡΡΠΈΠ±ΡΡΠ° restarted, Π·Π°ΡΠΎΡΠΎ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡΠ° ΡΠ΅ Π³ΡΠ±ΠΈ), Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ state=started, ΠΎΠ±ΡΠ°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ Π½Π° ΠΊΠ½ΠΈΠ³ΠΈΡΠ΅ Π·Π° ΠΈΠ³ΡΠΈ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°, Π·Π°ΡΠΎΡΠΎ Π±ΡΠΎΡΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°.
ΠΡΡΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° Π΅, ΡΠ΅ Π½Π΅ Π·Π°Π΄ΡΡΡΡΠ²Π° ΠΈΠ·Ρ ΠΎΠ΄Π°. ΠΡΠΌΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ - Π½ΡΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΠΏΡΡΠ½Π°ΡΠΎ ΠΈΠ»ΠΈ Π΄ΠΎΠ±ΡΠ΅ Π² ΠΈΠ·Ρ ΠΎΠ΄Π° - ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅. Π’ΠΎΠ²Π° ΡΡΡΠΎ Π΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ - Π°ΠΊΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ°ΡΠ½Π° Π³ΡΠ΅ΡΠΊΠ° Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΈ ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎΠ³Π°Π²Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ, Ρ.Π΅. ΠΏΡΠΈ Π½ΡΠΊΠΎΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ - ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΄ΠΊΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ Π² ΠΆΠΈΠ²ΠΎΡΠ° ΡΠΈ ΠΏΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ° ΠΏΠ΅ΡΠ°ΡΠ½Π° Π³ΡΠ΅ΡΠΊΠ° Π² ΠΈΠΌΠ΅ΡΠΎ ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ΅ ΡΡΡΠΏΠΈ. Π Π°ΠΊΠΎ Π½Π΅ Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π²ΡΠΎΡΠΈ ΠΏΡΡ, Π½ΡΠΌΠ° ΠΏΡΠΎΠΌΡΠ½Π°.
ΠΡΠ΄Π΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠ° Ρ ΡΠΈΠΊΡΠ», ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΈΠΌΠ° Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅? ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³Π°Π΄Π°Π΅ΡΠ΅ Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΎ, Π½ΠΎ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΈΠ΄Π²Π°Ρ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ°.
... Π’Π°ΠΊΠ° ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ. ΠΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π΅ΡΠΎ ΠΊΡΠ°ΡΠΈΠ²ΠΎ (Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΡΠΊΡΠ°ΡΠ΅Π½ΠΈΡ) Π±Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π±Π΅Π· ΡΡΡ . ΠΠΊΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎ, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Ρ ΡΡΡ .
Π Π°Π·ΡΠΆΠ΄Π°ΡΠΈΡΡ ΡΠΈΡΠ°ΡΠ΅Π» ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π°, ΡΠ΅ Π½Π΅ ΡΠΌΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ listen
ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ° notify Π·Π° Π΄ΡΡΠ³ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π° import_tasks (ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈ include_role Ρ with_items), ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² Ansible Π΅ Turing-complete, ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΠΎΡ include_role ΡΠ΅ ΠΏΡΠ΅ΡΠΈΡΠ°Ρ ΠΏΠΎ Π»ΡΠ±ΠΎΠΏΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΠΎΡ ΠΈΠ³ΡΠ°, ΠΈ Ρ.Π½. .d. - Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π΅ βΠΎΡΠ½ΠΎΠ²Π°ΡΠ°β).
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ WTF, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄. ΠΠΊΠΎ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π²ΠΈ Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° Ρ delegate_to
ΠΈ ΠΈΠΌΠ° notify, ΡΠΎΠ³Π°Π²Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π±Π΅Π· delegate_to
, Ρ.Π΅. Π½Π° Ρ
ΠΎΡΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π²ΡΠ·Π»ΠΎΠΆΠ΅Π½Π° ΠΈΠ³ΡΠ°. (ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° delegate_to
ΠΠ΄ΠΈΠ½ ΠΈ ΡΡΡ).
ΠΡΠ΄Π΅Π»Π½ΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΡΠΎΠ»ΠΈ. ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ, ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ΄Π΅Ρ, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΈ ΡΠΎΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ansible-galaxy install
ΠΈ ΠΎΡΠΈΠ΄Π΅. Π Π°Π±ΠΎΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΠ‘ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊΠ° ΡΠ΅, ΠΌΠΎΠ΅ΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅: Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΡΡΠΊΠ° ΡΠΎΠ»Ρ Ρ ΠΌΠ°ΡΠ° include_vars
, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ 100500 1 ΡΠ»ΡΡΠ°Ρ, Π΅ ΠΎΠ±ΡΠ΅ΡΠ΅Π½ Π½Π° Π±Π΅Π·Π΄Π½Π° ΠΎΡ ΡΠ³Π»ΠΎΠ²ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠ»ΡΡΠ°ΠΈΡΠ΅. Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠΊΡΠΈΡΠΈ Ρ ΠΌΠ°ΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π½ΠΎ ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΠΈΠ»ΠΈ ΠΈΠΌΠ°ΡΠ΅ Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ
ΠΎΠ΄Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ»ΠΈ ΠΈΠΌΠ°ΡΠ΅ βΠΏΠΎΠΊΡΠΈΡΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈβ. ΠΠΎΠ΅ΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π΅, ΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΠΎΠ»ΡΡΠ° Π΄Π° Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½Π° (ΡΠΈΠΊΠ»ΠΎΠΌΠ°ΡΠΈΡΠ½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ XNUMX).
ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π°ΠΊΠΎ (ΠΈΠ·ΡΠΈΡΠ½ΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΈ - Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠ° when
ΠΈΠ»ΠΈ ΡΠΎΡΠΌΠ° include_vars
ΠΏΠΎ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ), ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° Π΅ ΡΠΎΠ»ΡΡΠ°. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, Π½ΠΎ, ΠΏΠΎΠ²ΡΠ°ΡΡΠΌ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ°, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅. Π’Π°ΠΊΠ° ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±ΡΠ° ΡΠΎΠ»Ρ Ρ galaxy (ΡΠ°Π±ΠΎΡΠΈ!) Ρ ΠΊΡΠΏ when
ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π΅ ΠΎΡ βΡΠΎΠ±ΡΡΠ²Π΅Π½Π°ΡΠ°β ΡΠΎΠ»Ρ ΠΎΡ ΠΏΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠΌΠ΅Π½ΡΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠΎΠ»ΡΡΠ° Ρ galaxy Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ°, Π΅ ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅Ρ Π΄Π° ΠΏΠΈΡΠ΅Ρ Π½Π΅ΡΠΎ. ΠΠΎΠΌΠ΅Π½ΡΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΡΠ°Π²Π° ΠΏΠΎ-Π»ΠΎΡΠΎ, Π΅ ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΡΡΡΠΏΠΈ ΠΈ ΠΈΠΌΠ°ΡΠ΅ ΡΡΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΠ΅ Π΅ Π·Π°ΡΠ°Π΄ΠΈ βΡΠΎΠ»ΡΡΠ° Ρ Π³Π°Π»Π°ΠΊΡΠΈΠΊΠ°β. ΠΡΠ²Π°ΡΡΡΠ΅ Π³ΠΎ ΠΈ ΠΈΠΌΠ° ΠΏΠ΅Ρ Π²ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ, ΠΎΡΠ΅ΠΌ Π»ΠΈΡΡΠ° ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΡΠ΅ΠΊ when
Π... Π ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠΎΠ²Π°. ΠΠΌΠ΅ΡΡΠΎ 5 Π·Π°Π΄Π°ΡΠΈ, Π»ΠΈΠ½Π΅Π΅Π½ ΡΠΏΠΈΡΡΠΊ, Π² ΠΊΠΎΠΉΡΠΎ Π½ΡΠΌΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ ΡΡΡΠΏΠΈ.
Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΠ°ΡΡΠΈ
- ΠΠ°Π»ΠΊΠΎ Π·Π° ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ°, Π³ΡΡΠΏΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΏΠ»ΡΠ³ΠΈΠ½Π° host_group_vars, hostvars. ΠΠ°ΠΊ Π΄Π° Π·Π°Π²ΡΡΠΆΠ΅ΠΌ Π³ΠΎΡΠ΄ΠΈΠ΅Π² Π²ΡΠ·Π΅Π» ΡΡΡ ΡΠΏΠ°Π³Π΅ΡΠΈ. ΠΠ±Ρ Π²Π°Ρ ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Ansible ΠΏΠ°ΠΌΠ΅Ρ ΠΌΠΎΠ΄Π΅Π». βΠ ΡΠ°ΠΊΠ°, ΠΊΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΈΠΌΠ΅ Π·Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ?β
jinja: {{ jinja }}
β nosql notype nosense ΠΌΠ΅ΠΊ ΠΏΠ»Π°ΡΡΠ΅Π»ΠΈΠ½. ΠΠΌΠ° Π³ΠΎ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅, Π΄ΠΎΡΠΈ ΠΈ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π΅ Π³ΠΎ ΠΎΡΠ°ΠΊΠ²Π°ΡΠ΅. ΠΠ°Π»ΠΊΠΎ Π·Π°!!unsafe
ΠΈ Π²ΠΊΡΡΠ΅Π½ ΡΠΌΠ».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com