Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° выступлСния Π½Π° DevopsConf 2019-10-01 ΠΈ SPbLUG 2019-09-25.

Π­Ρ‚ΠΎ история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ использовалась самописная систСма управлСния конфигурациями ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄ Π½Π° Ansible затянулся Π½Π° 18 мСсяцСв.

Π”Π΅Π½ΡŒ β„– -Π₯Π₯Π₯: Before the beginning

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ инфраструктура прСдставляла собой мноТСство ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ стоящих хостов ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Hyper-V. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ мноТСство дСйствий: ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ диски Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто, ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ DNS, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DHCP, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π’Πœ Π² git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ процСсс Π±Ρ‹Π» частично ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π½ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π’Πœ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ хостами Ρ€ΡƒΠΊΠ°ΠΌΠΈ. Но, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π’Πœ Π² git ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ² Π’Πœ.

Custom Configuration Management Solution

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ идСю, ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈ ΠΊΠ°ΠΊ IaC: мноТСство stateless Π’Πœ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ обнуляли своё состояниС. Π§Ρ‚ΠΎ ΠΈΠ· сСбя прСдставляло ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ конфигурациями Π’Πœ? Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ выглядит просто:

  1. Для Π’Πœ ΠΏΡ€ΠΈΠ±ΠΈΠ²Π°Π»ΠΈ статичСский MAC.
  2. К Π’Πœ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ ISO с CoreOS ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ диск.
  3. CoreOS запускаСт скрипт кастомизации скачав Π΅Π³ΠΎ с WEB сСрвСра Π½Π° основании своСго IP.
  4. Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π²Ρ‹ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· SCP ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π’Πœ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° IP адрСсС.
  5. ЗапускаСтся портянка systemd unit Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ портянка bash скриптов.

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π£ этого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±Ρ‹Π»ΠΎ мноТСство ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

  1. ISO Π² CoreOS Π±Ρ‹Π»ΠΎ deprecated.
  2. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ слоТно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… дСйствий ΠΈ ΠΌΠ°Π³ΠΈΠΈ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ/создании Π’Πœ.
  3. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ПО ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ вСрсии. Π•Ρ‰Π΅ вСсСлСС с модулями ядра.
  4. Π’Πœ Π½Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠΆ Π±Π΅Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈΡΡŒ, Ρ‚.Π΅. появились Π’Πœ Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… смонтирован диск с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.
  5. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ косячил с зависимостями systemd unit ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ CoreOS зависала. Π˜ΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ срСдствами Π² CoreOS ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ это Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ.
  6. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСкрСтами.
  7. CM Π½Π΅ Π±Ρ‹Π»ΠΎ считай. Π‘Ρ‹Π» bash ΠΈ YML ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ CoreOS.

Π§Ρ‚ΠΎ Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π’Πœ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ. Π’Ρ€ΠΎΠ΄Π΅ очСвидная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ пСрсистСнтных дисков Π½Π΅Ρ‚ β€” Π»ΠΎΠ³ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΡƒΠ΄Π°. Ну ΠΎΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ядра Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π»ΠΎΠ³ΠΈ пСрСсылали. Но Π½Π΅Ρ‚, ΠΊΠ°ΠΊ это слоТно всё.

Π”Π΅Π½ΡŒ β„–0: ΠŸΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° обычная разработчСская инфраструктура: jenkins, тСстовыС окруТСния, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ, registry. CoreOS Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»Π°ΡΡŒ для хостинга k8s кластСров, Ρ‚.Π΅. ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ использовалась CoreOS. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π±Ρ‹Π» Π²Ρ‹Π±ΠΎΡ€ стэка. ΠœΡ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ Π½Π°:

  1. CentOS ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ дистрибутив, Ρ‚.ΠΊ. это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠΉ дистрибутив ΠΊ production окруТСниям.
  2. Ansible для управлСния конфигурациями, Ρ‚.ΠΊ. ΠΏΠΎ Π½Π΅ΠΌΡƒ Π±Ρ‹Π»Π° ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ экспСртиза.
  3. Jenkins ΠΊΠ°ΠΊ фрэймворк Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… процСссов, Ρ‚.ΠΊ. ΠΎΠ½ ΡƒΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ использовался для процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
  4. Hyper-V ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π•ΡΡ‚ΡŒ ряд ΠΏΡ€ΠΈΡ‡ΠΈΠ½, выходящих Π·Π° Ρ€Π°ΠΌΠΊΠΈ рассказа, Π½ΠΎ Ссли ΠΊΡ€Π°Ρ‚ΠΊΠΎ β€” ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΠΊΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ своё ΠΆΠ΅Π»Π΅Π·ΠΎ.

Π”Π΅Π½ΡŒ β„–30: ЀиксируСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ договорСнности β€” Agreements as Code

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Когда Π±Ρ‹Π» понятСн стэк, Π½Π°Ρ‡Π°Π»Π°ΡΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄Ρƒ. ЀиксированиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… договорСнностСй Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π° (Agreements as Code!). ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ‚Ρ€ΡƒΠ΄ -> мСханизация -> автоматизация.

1. Configure VMs

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Ansible ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справляСтся с этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π‘ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ конфигурациями Π’Πœ:

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
  2. Π‘ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ список Π’Πœ Π² inventory, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² плэйбуки ΠΈ Ρ€ΠΎΠ»ΠΈ.
  3. НастраиваСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ jenkins slave с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ansible.
  4. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ job, настраиваСм Jenkins.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ процСсс Π³ΠΎΡ‚ΠΎΠ². Договорённости зафиксированы.

2. Create new VM

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π—Π΄Π΅ΡΡŒ всС Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π±Ρ‹Π»ΠΎ. Из линукс Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π’Πœ Π½Π° Hyper-V. Одной ΠΈΠ· ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это процСсс Π±Ρ‹Π»ΠΎ:

  1. Ansbile ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· WinRM ΠΊ windows хосту.
  2. Ansible запускаСт powershell скрипт.
  3. Powershell скрипт создаСт Π½ΠΎΠ²ΡƒΡŽ Π’Πœ.
  4. БрСдствами Hyper-V/ScVMM ΠΏΡ€ΠΈ создании Π²ΠΌ Π² гостСвой ОБ настраиваСтся hostname.
  5. Π’Πœ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DHCP lease отсылаСт свой hostname.
  6. Штатная интСграция ddns & dhcp Π½Π° сторонС Domain Controller настраиваСт DNS запись.
  7. МоТно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π’Πœ Π² ΠΈΠ½Π²Π΅Π½Ρ‚ΠΎΡ€ΠΈ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Ansible.

3. Create VM template

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π—Π΄Π΅ΡΡŒ Π½Π΅ стали Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ β€” взяли packer.

  1. Π’ git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ складываСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ packer, kickstart.
  2. НастраиваСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ jenkins slave с hyper-v ΠΈ Packer.
  3. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ job, настраиваСм Jenkins.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта связка:

  1. Packer создаСт ΠΏΡƒΡΡ‚ΡƒΡŽ Π’Πœ, подцСпляСт ISO.
  2. Π’Πœ загруТаСтся, Packer Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°Π³Ρ€Π·ΡƒΡ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наш kickstart Ρ„Π°ΠΉΠ» с дискСты ΠΈΠ»ΠΈ http.
  3. ЗапускаСтся anaconda с нашим ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ, дСлаСтся пСрвичная настройка ОБ.
  4. Packer доТидаСтся доступности Π’Πœ.
  5. Packer Π²Π½ΡƒΡ‚Ρ€ΠΈ Π’Πœ запускаСт ansible Π² локальном Ρ€Π΅ΠΆΠΈΠΌΠ΅.
  6. Ansible ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π΅ ΠΆΠ΅ Ρ€ΠΎΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π² шагС β„–1 ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚.
  7. Packer экспортируСт шаблон Π’Πœ.

Π”Π΅Π½ΡŒ β„–75: Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠΌ договорСнности Π½Π΅ ломая = Test ansible + Testkitchen

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ договорСнности Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно. Π’Π΅Π΄ΡŒ Ссли Π² ΠΏΠΎΠ΄Π½ΠΎΠ³ΠΎΡ‚Π½ΠΎΠΉ процСссС Ρ‚Ρ‹ Π·Π°Ρ…ΠΎΡ‡Π΅ΡˆΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ β€” Ρ‚Ρ‹ моТСшь Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² случаС инфраструктуру появляСтся тСстированиС этой самой инфраструктуры. Π§Ρ‚ΠΎ Π±Ρ‹ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ знания Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ стали Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ansible Ρ€ΠΎΠ»ΠΈ. НС Π±ΡƒΠ΄Ρƒ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒ Ρ‚.ΠΊ. Π΅ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ события Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉ мСня Ссли смоТСшь ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‡Ρ‚Π°ΡŽΡ‚ Π»ΠΈ YML программисты ΠΎ тСстированиС ansible?(спойлСр это Π±Ρ‹Π» Π½Π΅ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ всС стало слоТнСС Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ansible, ΠΎΡ‚Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° Π³ΠΎΠ΄ ΠΈ Π½Π΅ ΡΠ»Π΅Ρ‚Π΅Ρ‚ΡŒ с ΠΊΠ°Ρ‚ΡƒΡˆΠ΅ΠΊ).

Π”Π΅Π½ΡŒ β„–130: А ΠΌΠΎΠΆΠ΅Ρ‚ CentOS+ansible Π½Π΅ Π½ΡƒΠΆΠ΅Π½? ΠΌΠΎΠΆΠ΅Ρ‚ openshift?

Надо ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ процСсс внСсСния инфраструктуры Π±Ρ‹Π» Π½Π΅ СдинствСнным ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. НапримСр, ΠΏΡ€ΠΈΡˆΠ΅Π» запрос Π½Π° запуск нашСго прилоТСния Π² openshift ΠΈ это Π²Ρ‹Π»ΠΈΠ»ΠΎΡΡŒ Π² исслСдования Π½Π΅ Π½Π° ΠΎΠ΄Π½Ρƒ нСдСлю ЗапускаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Openshift ΠΈ сравниваСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ инструмСнтарий Ρ‡Ρ‚ΠΎ Π·Π°Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΠ»ΠΎ процСсс ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄Π°. Π˜Ρ‚ΠΎΠ³ΠΎΠΌ оказалось, Ρ‡Ρ‚ΠΎ openshift Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ всСх потрСбностСй, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ, Π½Ρƒ ΠΈΠ»ΠΈ хотя Π±Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с ядром.

Π”Π΅Π½ΡŒ β„–170: Openshift Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, рискнСм с Windows Azure Pack?

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Hyper-V Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π΅Π½, SCVMM Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ сильно Π»ΡƒΡ‡ΡˆΠ΅. Но Π΅ΡΡ‚ΡŒ такая ΡˆΡ‚ΡƒΠΊΠ° Windows Azure Pack, которая являСтся надстройкой Π½Π°Π΄ SCVMM ΠΈ ΠΌΠΈΠΌΠΈΠΊΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ Azure. Но Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ выглядит Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌ: докумСнтация с Π±ΠΈΡ‚Ρ‹ΠΌΠΈ ссылками ΠΈ вСсьма скудная. Но Π² Ρ€Π°ΠΌΠΊΠ°Ρ… исслСдования Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² упрощСния ΠΆΠΈΠ·Π½ΠΈ нашСго ΠΎΠ±Π»Π°ΠΊΠ° смотрСли ΠΈ Π½Π° Π½Π΅Π³ΠΎ Ρ‚ΠΎΠΆΠ΅.

Π”Π΅Π½ΡŒ β„–250: Windows Azure Pack Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ. ΠžΡΡ‚Π°Π΅ΠΌΡΡ Π½Π° SCVMM

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Windows Azure Pack выглядСл ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΌ, Π½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ²Π½ΠΎΡΠΈΡ‚ΡŒ WAP c Π΅Π³ΠΎ слоТностями Π² систСму Ρ€Π°Π΄ΠΈ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„ΠΈΡ‡ ΠΈ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π½Π° SCVMM.

Π”Π΅Π½ΡŒ β„–360: Π•Π΄ΠΈΠΌ слона ΠΏΠΎ частям

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Волько спустя Π³ΠΎΠ΄ Π±Ρ‹Π»Π° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΡƒΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Ρ‚ΡŒ ΠΈ начался процСсс ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄Π°. Для этого Π±Ρ‹Π»Π° поставлСна S.M.A.R.T. Π·Π°Π΄Π°Ρ‡Π°. Выписали всС Π’Πœ ΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π° Ansible, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ тСстами.

Π”Π΅Π½ΡŒ β„–450: Какая систСма ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ?

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π‘Π°ΠΌ процСсс Π½Π΅ интСрСсСн. Он Ρ€ΡƒΡ‚ΠΈΠ½Π΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π±Ρ‹Π»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простыми ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠŸΠ°Ρ€Π΅Ρ‚ΠΎ 80% ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π²ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ 20% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. По Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ 80% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΡˆΠ»ΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 20% Π½Π° сам ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄.

Π”Π΅Π½ΡŒ β„–540: Π€ΠΈΠ½Π°Π»

Ansible: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 120 VM c CoreOS Π½Π° CentOS Π·Π° 18 мСсяцСв

Π§Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π·Π° 18 мСсяцСв?

  1. ДоговорСнности стали ΠΊΠΎΠ΄ΠΎΠΌ.
  2. Π ΡƒΡ‡Π½ΠΎΠΉ Ρ‚Ρ€ΡƒΠ΄ -> ΠœΠ΅Ρ…Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ -> Автоматизация.

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