The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

Π’ прСдстоящСм выпускС Red Hat Ansible Engine 2.9 вас ΠΆΠ΄ΡƒΡ‚ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… описаны Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ansible Network Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ сообщСства. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ β€” заглянитС Π½Π° доску Π·Π°Π΄Π°Ρ‡ Π½Π° GitHub ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ развития для выпуска Red Hat Ansible Engine 2.9 Π½Π° страницС wiki для Ansible Network.

Как ΠΌΡ‹ Π½Π΅Π΄Π°Π²Π½ΠΎ объявили, Red Hat Ansible Automation Platform Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ansible Tower, Ansible Engine ΠΈ вСсь ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Ansible Network. БСйчас Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ популярных сСтСвых ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ рСализуСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ansible. НапримСр:

  • Arista EOS
  • Cisco IOS
  • Cisco IOS XR
  • Cisco NX-OS
  • Juniper Junos
  • VyOS

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Red Hat Ρ‡Π΅Ρ€Π΅Π· подписку Ansible Automation, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ здСсь.

Π§Π΅ΠΌΡƒ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ

Π’ послСдниС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³ΠΎΠ΄Π° ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сСти. Π•Ρ‰Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠ°Ρ… ΠΈ ролях Ansible со стороны ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. И Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выяснили:

  • ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ устройства Π½Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ².
  • Автоматизация β€” явлСниС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСхничСскоС, Π½ΠΎ Π΅Ρ‰Π΅ ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½ΠΎΠ΅.
  • ΠœΠ°ΡΡˆΡ‚Π°Π±Π½Π°Ρ автоматизация сСтСй слоТнСС, Ρ‡Π΅ΠΌ каТСтся, ΠΈΠ·-Π·Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² проСктирования Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Когда ΠΌΡ‹ обсуТдали наши долгосрочныС ΠΏΠ»Π°Π½Ρ‹ развития большС Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, наши ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ просили ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

  • Π‘Π±ΠΎΡ€ Ρ„Π°ΠΊΡ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ процСссом Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ для Π»ΡŽΠ±Ρ‹Ρ… устройств.
  • ОбновлСниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° устройствС Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ansible ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Ρ†ΠΈΠΊΠ»Π° послС сбора Ρ„Π°ΠΊΡ‚ΠΎΠ².
  • НуТны строгиС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ прСобразования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ устройства Π² структурированныС Π΄Π°Π½Π½Ρ‹Π΅. На этой основС источник истины ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ с сСтСвого устройства.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ„Π°ΠΊΡ‚ΠΎΠ²

Π‘Π±ΠΎΡ€ Ρ„Π°ΠΊΡ‚ΠΎΠ² с сСтСвых устройств с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ происходит Π½Π°ΡƒΠ³Π°Π΄. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² Ρ€Π°Π·Π½ΠΎΠΉ стСпСни оснащСны возмоТностями сбора Ρ„Π°ΠΊΡ‚ΠΎΠ², Π½ΠΎ Ρƒ Π½ΠΈΡ… ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Ρ‚ β€” ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ совсСм Π½Π΅Ρ‚ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для парсинга ΠΈ стандартизации прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°Ρ€Π°Ρ… ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ пост КСна Π‘Π΅Π»Π΅Π½Ρ†Ρ‹ (Ken Celenza) ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ слоТно ΠΈ ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΊΡ‚ΠΎΠ².

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Ρ€ΠΎΠ»ΡŒΡŽ Ansible Network Engine. ЕстСствСнно, 24 тысячи Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ спустя Ρ€ΠΎΠ»ΡŒ Network Engine быстро стала ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных Ρ€ΠΎΠ»Π΅ΠΉ Ansible Π² Ansible Galaxy для сцСнариСв Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сСти. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ пСрСнСсли ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· этого Π² Ansible 2.8, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ понадобится Π² Ansible 2.9, эта Ρ€ΠΎΠ»ΡŒ Ansible прСдоставила ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² парсингС ΠΊΠΎΠΌΠ°Π½Π΄, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ сборС Π΄Π°Π½Π½Ρ‹Ρ… для сСтСвых устройств.

Если Π²Ρ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π² использовании Network Engine, это ΠΎΡ‡Π΅Π½ΡŒ эффСктивный способ сбора, парсинга ΠΈ стандартизации Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΠ² для использования Π² Ansible. ΠœΠΈΠ½ΡƒΡ этой Ρ€ΠΎΠ»ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ парсСров для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ для всСй сСтСвой активности. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ слоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ парсСры, посмотритС Π½Π° 1200 с лишним парсСров ΠΎΡ‚ рСбят ΠΈΠ· Cisco.

Π’ Π΄Π²ΡƒΡ… словах, для ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΊΡ‚Ρ‹ ΠΎΡ‚ устройств ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого слоТно, ΠΊΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ² ΠΈ сСтСвых ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„Π°ΠΊΡ‚ΠΎΠ² сСти Π² 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

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, собранныС с устройства Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ рСсурсов Π±Π΅Π· прСобразования. ΠŸΡ€ΠΈ запускС ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ значСния с устройства ΠΈ сравниваСт ΠΈΡ… с ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ выполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) ΠΈ выдаСтся сообщСниС, измСнилась Π»ΠΈ конфигурация.

Π˜Π΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ способ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ β€” ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„Π°ΠΊΡ‚Ρ‹ Π² Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ansible ΠΈ пСриодичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… вмСстС с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ рСсурса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π­Ρ‚ΠΎ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ значСния Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ измСнСния ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, хотя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Ansible Automation.

Π§Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ рСсурса ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…?

Для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сСтСй ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ 3 Π³Π»Π°Π²Π½Ρ‹Ρ… отличия ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСсурса Π² Ansible 2.9 ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий.

1) Для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСтСвого рСсурса (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ„Π°ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… сСтСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠœΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, Ссли Ansible ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ рСсурса Π½Π° ΠΎΠ΄Π½ΠΎΠΉ сСтСвой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π²Π΅Π·Π΄Π΅. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ использованиС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСсурсов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сСтСй Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ рСсурс (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, LLDP) Π²ΠΎ всСх сСтСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ модулями.

2) ΠœΠΎΠ΄ΡƒΠ»ΠΈ рСсурсов Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ состояния.

  • merged: конфигурация объСдинСна с прСдоставлСнной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ);
  • replaced: конфигурация рСсурса Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ;
  • overridden: конфигурация рСсурса Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ; лишниС экзСмпляры рСсурсов Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹;
  • deleted: конфигурация рСсурса Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π°/восстановлСна ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

3) ΠœΠΎΠ΄ΡƒΠ»ΠΈ рСсурса Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния. Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ сСтСвого рСсурса внСс (ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ») Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² сСтСвом устройствС, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊ.

  • before: конфигурация Π½Π° устройствС Π² Π²ΠΈΠ΄Π΅ структурированных Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ;
  • after: Ссли устройство измСнилось (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ), ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ°ΡΡΡ конфигурация Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ структурированных Π΄Π°Π½Π½Ρ‹Ρ…;
  • commands: Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π½Π° устройствС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ привСсти Π΅Π³ΠΎ Π² ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС.

The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

Π§Ρ‚ΠΎ всС это Π·Π½Π°Ρ‡ΠΈΡ‚? ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ?

Π’ этом постС описываСтся ΠΌΠ½ΠΎΠ³ΠΎ слоТных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, Π½ΠΎ ΠΌΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² Π²Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ просят ΠΎ сборС Ρ„Π°ΠΊΡ‚ΠΎΠ², Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹ эти ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ? БСйчас ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ трансформациСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свои ИВ-срСды Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ конкурСнтоспособными. Π₯ΠΎΡ€ΠΎΡˆΠΎ это ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сСтСвыС ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ становятся сСтСвыми Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ β€” ΠΈΠ· собствСнного интСрСса ΠΈΠ»ΠΈ ΠΏΠΎ вСлСнию Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ автоматизация ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сСтСвых шаблонов Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ разрознСнности ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Red Hat Ansible Automation Platform прСдоставляСт строгиС ΠΈ Π½ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… рСсурсов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° сСтСвом устройствС. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ постСпСнно ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… способов ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π±ΠΎΠ»Π΅Π΅ соврСмСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° тСхнологиях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, IP-адрСса, VLAN, LLDP ΠΈ Ρ‚ Π΄.), Π° Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π½Π΄ΠΎΡ€Π°.

Π—Π½Π°Ρ‡ΠΈΡ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ Π΄Π½ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сочтСны? Ни Π² ΠΊΠΎΠ΅ΠΌ случаС. ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ сСтСвых рСсурсов Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Π½Π΅ Π²ΠΎ всСх случаях ΠΈ Π½Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π½Π΄ΠΎΡ€Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΅Ρ‰Π΅ понадобятся сСтСвым ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ. ЦСль ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСсурсов β€” ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ большиС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Jinja ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСструктурированныС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ устройства Π² структурированный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON. Π‘ модулями рСсурсов ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ сСтям Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свою ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² структурированныС ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для чтСния источник истины. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структурированныС ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ устройствС ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с нСзависимыми структурированными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ вывСсти сСти Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ «инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Β».

КакиС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ рСсурсов появятся Π² Ansible Engine 2.9?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π² Ansible 2.9, Π΄Π°Π²Π°ΠΉΡ‚Π΅ вспомним, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ вСсь объСм Ρ€Π°Π±ΠΎΡ‚.

ΠœΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ 7 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ сСтСвыС рСсурсы:

The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: рСсурсы, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΆΠΈΡ€Π½Ρ‹ΠΌ, Π±Ρ‹Π»ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ansible 2.9.
На основС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² ΠΎΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ сообщСства Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ сначала Π·Π°Π½ΡΡ‚ΡŒΡΡ Ρ‚Π΅ΠΌΠΈ модулями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ сСти, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ интСрфСйсами.
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ рСсурсов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ansible Network ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Red Hat:

The Inside Playbook. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Ansible Engine 2.9

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ сообщСством Ansible:

  • exos_lldp_global β€” ΠΎΡ‚ Extreme Networks.
  • nxos_bfd_interfaces β€” ΠΎΡ‚ Cisco
  • nxos_telemetry β€” ΠΎΡ‚ Cisco

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, концСпция ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСсурсов вписываСтся Π² Π½Π°ΡˆΡƒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ возмоТности ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² сам Ansible, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сСтСвых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π° Π΅Ρ‰Π΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠΎΠ² Ansible. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСсурсов, ΠΊΠΎΠΌΠ°Π½Π΄Π° Ansible выпустила инструмСнт Module Builder.

ΠŸΠ»Π°Π½Ρ‹ Π½Π° Ansible 2.10 ΠΈ дальшС

ПослС выпуска Ansible 2.9 ΠΌΡ‹ займСмся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСсурсов для Ansible 2.10, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для дальнСйшСй настройки Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ сСти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ACL, OSPF ΠΈ BGP. План развития Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, сообщитС ΠΎΠ± этом Π² сообщСствС Ansible Network.

РСсурсы ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€Π΅ΡΡ-Ρ€Π΅Π»ΠΈΠ· ΠΎΠ± Ansible Automation Platform
Π‘Π»ΠΎΠ³ Ansible Automation Platform
Π‘ΡƒΠ΄ΡƒΡ‰Π΅Π΅ доставки ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² Ansible
Π Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ansible

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com