ΠΡΠ΅Π΄ΡΡΠΎΡΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Red Hat Ansible Engine 2.9 Π½ΠΎΡΠΈ Π²ΡΠ»Π½ΡΠ²Π°ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΎΠ±ΡΡΠ΄Π΅Π½ΠΈ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ. ΠΠ°ΠΊΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ, Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° Ansible Network ΠΎΡΠΊΡΠΈΡΠΎ, Ρ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°. ΠΡΠΈΡΡΠ΅Π΄ΠΈΠ½Π΅ΡΠ΅ ΡΠ΅ ΠΊΡΠΌ Π½Π°Ρ - ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅
ΠΠ°ΠΊΡΠΎ Π½Π°ΡΠΊΠΎΡΠΎ ΠΎΠ±ΡΠ²ΠΈΡ
ΠΌΠ΅,
- ΠΡΠΈΡΡΠ° EOS
- Cisco IOS
- Cisco IOS XR
- Cisco NX-OS
- Juniper Junos
- VyOS
ΠΠ° ΠΏΡΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΈΠ·ΡΡΠ»ΠΎ ΠΎΡ Red Hat ΡΡΠ΅Π· Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ Π·Π° Ansible Automation,
ΠΠ°ΠΊΠ²ΠΎ Π½Π°ΡΡΠΈΡ ΠΌΠ΅
ΠΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅ΡΠΈΡΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΡΡΠΈΡ ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. Π’ΠΎΠ²Π° ΡΡΡΠΎ Π³ΠΎ Π½Π°ΡΡΠΈΡ ΠΌΠ΅ ΠΊΠ°ΡΠΎ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΊΠ½ΠΈΠ³ΠΈΡΠ΅ ΠΈ ΡΠΎΠ»ΠΈΡΠ΅ Π½Π° Ansible ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. Π Π΅ΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅:
- ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ Π΅Π΄ΠΈΠ½, Π° ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΠΈ ΠΊΡΠ»ΡΡΡΠ΅Π½ ΡΠ΅Π½ΠΎΠΌΠ΅Π½.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠΈ Π² ΠΌΠ°ΡΠ°Π± Π΅ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎΡΠ°Π΄ΠΈ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½.
ΠΠΎΠ³Π°ΡΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Ρ ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° ΡΠ°ΡΡΠ΅ΠΆ ΠΏΡΠ΅Π΄ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π³ΠΎΠ΄ΠΈΠ½Π°, Π½Π°ΡΠΈΡΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΏΠΎΠΈΡΠΊΠ°Ρ Π° ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
- Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Ansible Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π²ΡΠΎΡΠ°ΡΠ° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΎΡ ΡΠΈΠΊΡΠ»Π° ΡΠ»Π΅Π΄ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΡΠΈ.
- ΠΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΡΠΎΠ³ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ° ΡΠ°Π·ΠΈ ΠΎΡΠ½ΠΎΠ²Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΡΡ Π½Π° ΠΈΡΡΠΈΠ½Π°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ ΠΎΡ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠΈ ΠΎΡ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Ansible ΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π½Π° ΡΠ»ΡΡΠ°Π΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ. ΠΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈΠΌΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΡΠΈ, Π½ΠΎ ΠΈΠΌΠ°Ρ ΠΌΠ°Π»ΠΊΠ° ΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΡΠΎΡΠ΅ΡΠΈ
ΠΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΅ Π·Π°Π±Π΅Π»ΡΠ·Π°Π»ΠΈ, ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Π²ΡΡΡ Ρ ΡΠΎΠ»ΡΡΠ° Π½Π° Ansible Network Engine. ΠΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, 24K ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ, ΡΠΎΠ»ΡΡΠ° Π½Π° Network Engine Π±ΡΡΠ·ΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ ΡΠΎΠ»ΠΈ Π½Π° Ansible Π² Ansible Galaxy Π·Π° ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°ΡΡ ΠΎΡ ΡΠΎΠ²Π° Π² Ansible 2.8, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠΌ Π·Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² Ansible 2.9, ΡΠ°Π·ΠΈ ΡΠΎΠ»Ρ Π½Π° Ansible ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΏΡΡΠ²ΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Network Engine, ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Ansible. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π½Π° ΡΠ°Π·ΠΈ ΡΠΎΠ»Ρ Π΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΡΠ» ΠΊΡΠΏ ΠΏΠ°ΡΡΠ΅ΡΠΈ Π·Π° Π²ΡΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈ Π·Π° ΡΡΠ»Π°ΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π΄Π΅ΠΉΠ½ΠΎΡΡ. ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ, Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΠ°ΡΡΠ΅ΡΠΈ, ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅
Π‘ Π΄Π²Π΅ Π΄ΡΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠΈ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ Π² Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ Π΅ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π² ΠΌΠ°ΡΠ°Π±, Π½ΠΎ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ²Π° Π΅ ΡΡΡΠ΄Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΡΠ΅ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ» Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ°ΠΊΡΠΈ Π² Ansible 2.9 Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π΄Π° Π²ΡΡΡΠ° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ - Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Ansible ΡΠΎΠ»ΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ.
ΠΡ Ansible 2.9, Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΌΡΠ΅ΠΆΠΎΠ² ΠΌΠΎΠ΄ΡΠ», ΠΌΠΎΠ΄ΡΠ»ΡΡ Π·Π° ΡΠ°ΠΊΡΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠΎΠ·ΠΈ ΡΠ°Π·Π΄Π΅Π» ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° Ρ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΡΠ΅ΠΌΠΏΠΎ ΠΈ ΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π° ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π° Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π°. Π ΠΏΠΎ Π΄Π²Π°ΡΠ° Π½Π°ΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ±Π΅ΡΠ΅ΡΠ΅ ΠΈ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½ΠΎΠ²Π° ΠΊΠ»ΡΡΠΎΠ²Π° Π΄ΡΠΌΠ° gather_network_resources
. ΠΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠΎΠΊΠ°ΡΠΎ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΊΡΠΈ:
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π° Π΄ΡΠΌΠ° gather_facts
ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π² ΡΡΠ»Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°. ΠΠΎΡΠΎΡΠ΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ.
- hosts: arista
module_defaults:
eos_facts:
gather_subset: min
gather_network_resources:
- interfaces
gather_facts: True
ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ Π·Π°Π±Π΅Π»ΡΠ·Π°Π»ΠΈ Π½Π΅ΡΠΎ Π½ΠΎΠ²ΠΎ Π² ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ - gather_facts: true
Π²Π΅ΡΠ΅ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΡΠ°ΠΊΡΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ°ΠΊΡΠΈ:
- name: collect interface configuration facts
eos_facts:
gather_subset: min
gather_network_resources:
- interfaces
ΠΠ°ΡΡΡΠ½ΠΈΠΊΡΡ Π²ΡΡΡΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΠΈ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
ansible_facts:
ansible_network_resources:
interfaces:
- enabled: true
name: Ethernet1
mtu: '1476'
- enabled: true
name: Loopback0
- enabled: true
name: Loopback1
- enabled: true
mtu: '1476'
name: Tunnel0
- enabled: true
name: Ethernet1
- enabled: true
name: Tunnel1
- enabled: true
name: Ethernet1
ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊ Ansible ΠΈΠ·Π²Π»ΠΈΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Arista ΠΈ Ρ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ° Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ Π·Π° Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ΠΎΠ»Ρ ΠΏΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ°.
Π€Π°ΠΊΡΠΈΡΠ΅ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Ansible ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΠΊΠ°ΡΠΎ Π²Ρ
ΠΎΠ΄ ΠΊΡΠΌ ΡΠ΅ΡΡΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ» eos_interfaces
Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅.
Π Π΅ΡΡΡΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ
Π ΡΠ°ΠΊΠ°, ΠΈΠ·Π²Π»ΡΠΊΠΎΡ ΠΌΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅, Π²ΠΌΠ΅ΡΡΠΈΡ ΠΌΠ΅ Π³ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΡΡΠ΅ΡΠ½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ Π³ΠΎΡΠΎΠ² ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΡΡΠΈΠ½Π°. Π£ΡΠ°! Π’ΠΎΠ²Π° Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΡΠ±Π²Π° ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΌΠ΅ Π΄Π²ΠΎΠΉΠΊΠΈΡΠ΅ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠ°ΠΊΠ²Π°. Π‘Π΅Π³Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, Π·Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° ΡΠ΅Π·ΠΈ Π½ΠΎΠ²ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΡΠΈ ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅.
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠ΅ΡΡΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»? ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° ΡΠ΅ΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° Π΄Π°Π΄Π΅Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΠ°ΡΠΎ ΡΠ΅ΡΡΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΡΠΎΠ²Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΡΠ° ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΡΠ΅ΡΡΡΡ ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΊΠ°ΡΠΎ Π³ΡΠ°Π΄ΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠ΅ΡΡΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ» ΡΠ° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ΡΡΡΡΠ½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΡΡΠ»ΡΠ³Π° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
ΠΠ° Π΄Π° ΠΎΠ±ΡΡΠ½ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π·Π° ΡΠ΅ΡΡΡΡΠΈ, Π½Π΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½Π° ΠΊΠ½ΠΈΠ³Π°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΠ΄Π΅ΠΌΠΏΠΎΠ΄Π΅Π½ΡΠ½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½ΠΎΠ²ΠΈ ΡΠ°ΠΊΡΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ» eos_l3_interface
.
- name: example of facts being pushed right back to device.
hosts: arista
gather_facts: false
tasks:
- name: grab arista eos facts
eos_facts:
gather_subset: min
gather_network_resources: l3_interfaces
- name: ensure that the IP address information is accurate
eos_l3_interfaces:
config: "{{ ansible_network_resources['l3_interfaces'] }}"
register: result
- name: ensure config did not change
assert:
that: not result.changed
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, Π΄Π°Π½Π½ΠΈΡΠ΅, ΡΡΠ±ΡΠ°Π½ΠΈ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ, ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΡΠΌ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΡΠ΅ΡΡΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ» Π±Π΅Π· ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°, playbook ΠΈΠ·Π²Π»ΠΈΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΈ Π³ΠΈ ΡΡΠ°Π²Π½ΡΠ²Π° Ρ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΠ΅. Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ½Π°ΡΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ° ΡΠΏΠΎΡΠ΅Π΄ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡΠ° (Ρ.Π΅. ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°) ΠΈ ΡΡΠΎΠ±ΡΠ°Π²Π° Π΄Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»Π°.
ΠΠ΄Π΅Π°Π»Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΠ°ΠΊΡΠΈ Π² ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Ansible ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Ρ ΡΠ΅ΡΡΡΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ» Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π°Π»ΠΈ Π½ΡΠΊΠΎΠΉ ΡΡΡΠ½ΠΎ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ» ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅. Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΡΠ½ΠΎ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΡΡΠ΅Π· Ansible Automation.
Π‘ ΠΊΠ°ΠΊΠ²ΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅?
ΠΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ° 3 ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΡΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Ansible 2.9 ΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ.
1) ΠΠ° Π΄Π°Π΄Π΅Π½ ΠΌΡΠ΅ΠΆΠΎΠ² ΡΠ΅ΡΡΡΡ (ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΡΠ°Π·Π΄Π΅Π» Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ), ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π‘ΠΌΡΡΠ°ΠΌΠ΅, ΡΠ΅ Π°ΠΊΠΎ Ansible ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π½Π° Π΅Π΄Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅. Π’ΠΎΠ²Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΠ΅ΡΡΡΡ (ΠΊΠ°ΡΠΎ LLDP) Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
2) Π Π΅ΡΡΡΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ.
merged
: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅);replaced
: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ;overridden
: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ; Π½Π΅Π½ΡΠΆΠ½ΠΈΡΠ΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° ΡΠ΅ΡΡΡΡΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΡΠΈΡΠΈ;deleted
: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠΈΡΠ°/Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
3) Π Π΅ΡΡΡΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ Π²ΡΡΡΠ°Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈ (ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΠΎΠΉ Π²ΡΡΡΠ° ΡΡΡΠΈΡΠ΅ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π·Π° ΠΈΠ³ΡΠ°.
before
: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°ΡΠ°ΡΠ°;after
: Π°ΠΊΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ΡΡΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ), ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π²ΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ;commands
: ΠΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ, Π·Π° Π΄Π° Π³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π°Ρ Π² ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°? ΠΠ°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ?
Π’Π°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±Ρ Π²Π°ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, Π½ΠΎ ΡΠ΅ Π½Π°Π΄ΡΠ²Π°ΠΌΠ΅, ΡΠ΅ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΈΡΠΊΠ°Ρ Π²ΡΡΡΠ½ΠΎΡΡ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠΈΠΊΡΠ» Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. ΠΠΎ Π·Π°ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ? ΠΠ½ΠΎΠ³ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΡΡΡΠ΅ΠΌΡΡ ΠΊΡΠΌ Π΄ΠΈΠ³ΠΈΡΠ°Π»Π½Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΡΡ ΡΠ²ΠΎΠΈΡΠ΅ ΠΠ’ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈ. ΠΠ° Π΄ΠΎΠ±ΡΠΎ ΠΈΠ»ΠΈ Π»ΠΎΡΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ ΡΡΠ°Π²Π°Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈΠ»ΠΈ ΠΎΡ Π»ΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ, ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π°ΠΏΠΎΠ²Π΅Π΄ Π½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΠΎΡΡΠ·Π½Π°Π²Π°Ρ, ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π½Π΅ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡ ΡΠΈΠ»ΠΎΠ·ΠΈΡΠ΅ ΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π΄ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΡΡΠ΅ΠΏΠ΅Π½. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Red Hat Ansible ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΡΠΎΠ³ΠΈ ΠΈ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΏΠΎ-ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Ρ Π°ΠΊΡΠ΅Π½Ρ Π²ΡΡΡ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ IP Π°Π΄ΡΠ΅ΡΠΈ, VLAN, LLDP ΠΈ Ρ.Π½.), Π° Π½Π΅ Π²ΡΡΡ Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ.
Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π»ΠΈ, ΡΠ΅ Π΄Π½ΠΈΡΠ΅ Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ° ΠΏΡΠ΅Π±ΡΠΎΠ΅Π½ΠΈ? Π Π½ΠΈΠΊΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ. ΠΡΠ°ΠΊΠ²Π°Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΈΠ»ΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π¦Π΅Π»ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΅ Π΄Π° ΠΎΠΏΡΠΎΡΡΡΡ Π³ΠΎΠ»Π΅ΠΌΠΈ Jinja ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΠΈ Π΄Π° Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ JSON ΡΠΎΡΠΌΠ°Ρ. Π‘ ΡΠ΅ΡΡΡΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ Π΄Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΡΠΈ Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ Π»Π΅ΡΠ΅Π½ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΡΡΠΈΠ½Π°. Π§ΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° Π²ΡΡΠΊΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΡΠΌ ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΡΠ΅ ΠΌΡΠ΅ΠΆΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π΅Π½ ΠΏΠ»Π°Π½ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄.
ΠΠ°ΠΊΠ²ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΡΠ΅ΡΡΡΡΠΈ ΡΠ΅ Π΄ΠΎΠΉΠ΄Π°Ρ Π² Ansible Engine 2.9?
ΠΡΠ΅Π΄ΠΈ Π΄Π° Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ Π² Ansible 2.9, Π½Π΅ΠΊΠ° ΡΠΈ ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡ ΠΌΠ΅ ΡΠ΅Π»ΠΈΡ ΠΎΠ±Ρ Π²Π°Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΌΠ΅ 7 ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΡ ΠΌΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Π²ΡΡΠΊΠ°:
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π Π΅ΡΡΡΡΠΈΡΠ΅ Ρ ΡΠ΄Π΅Π±Π΅Π»Π΅Π½ ΡΡΠΈΡΡ ΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² Ansible 2.9.
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ° ΠΎΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΈ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°, Π±Π΅ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΡΠ²ΠΎ Π΄Π° ΡΠ΅ Π·Π°Π΅ΠΌΠ΅ΠΌ Ρ ΡΠ΅Π·ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ, Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ.
Π‘Π»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ ΡΠ΅ΡΡΡΡΠΈ ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ Π΅ΠΊΠΈΠΏΠ° Π½Π° Ansible Network ΠΈ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈΡΠ΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ Red Hat:
Π‘Π»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Ansible:
exos_lldp_global
- ΠΎΡ Extreme Networks.nxos_bfd_interfaces
- ΠΎΡ Cisconxos_telemetry
- ΠΎΡ Cisco
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° ΡΠ΅ΡΡΡΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π° Π² Π½Π°ΡΠ°ΡΠ° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΡΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ. Π’ΠΎΠ΅ΡΡ, Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΌΠΈΡ Ansible, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ Ansible roles ΠΈ playbooks. ΠΠ° Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π΅ΠΊΠΈΠΏΡΡ Π½Π° Ansible ΠΏΡΡΠ½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Module Builder.
ΠΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Ansible 2.10 ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Ansible 2.9 Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°Ρ, Π½ΠΈΠ΅ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Π²ΡΡΡ
Ρ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ΅ΡΡΡΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° Ansible 2.10, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°, Π½Π°ΠΏΡ.
Π Π΅ΡΡΡΡΠΈ ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com