Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Алексей Чернов «Ansible для управления конфигур...

DotNetRu
February 28, 2019

Алексей Чернов «Ansible для управления конфигурацией Windows»

Алексей расскажет от том, как он и его команда применили подходы давно ставшие стандартом в мире Linux для автоматизации Windows инфраструктуры. Начнём с краткого обзора экосистемы Ansible и перейдём к практическому примеру настройки окружения и последующего развёртования ASP.NET приложения.

DotNetRu

February 28, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Обо мне • Занимаюсь всем, что как-то связано с вебом

    примерно с 2004 • Perl, PHP, немного RoR !3
  2. Обо мне • Занимаюсь всем, что как-то связано с вебом

    примерно с 2004 • Perl, PHP, немного RoR • JavaScript, Автотесты, Автоматизация !4
  3. Предыстория • Два года назад оказался в разработке продуктов под

    Windows • Непривычно низкий уровень автоматизации деплоя !7
  4. Предыстория • Два года назад оказался в разработке продуктов под

    Windows • Непривычно низкий уровень автоматизации деплоя • Фейлы деплоя приводят фейлам автотестов !8
  5. !9

  6. !11

  7. Задачи автоматицации деплоя • Ежедневно производится много билдов приложений •

    Большинство продуктов под Windows • Большая инфраструктура !14
  8. !19

  9. Требования • Единая кодовая база • Все должны знать, как

    это работает • Возможность запуска по кнопке !23
  10. Попытки решения • Объединить Powershell-скрипты в один репозиторий
 Fail: Уткнулись

    в холивары и форки • Перенести скрипты на CI-сервер (TeamCity) !27
  11. Попытки решения • Объединить Powershell-скрипты в один репозиторий
 Fail: Уткнулись

    в холивары и форки • Перенести скрипты на CI-сервер (TeamCity)
 Fail: проблемы версионирования и совместной работы !28
  12. !29

  13. !30

  14. !31

  15. !32

  16. !40

  17. !41

  18. !42

  19. !45

  20. • Проверить, существует ли виртуальная машина? • Установлен ли msi

    пакет? • Надо ли заново качать билд артефакты? !53
  21. Почему Ansible • Идемпотентность • Agent-less architecture • YAML -

    декларативный и human-readable • Cross-platform* !56
  22. Минусы Ansible • Для запуска нужен Linux // теперь есть

    WSL • Иногда сложно отлаживать !60
  23. !61

  24. Что нужно • Python и pip • pip install ansible

    • pip install pywinrm[credssp] • На управляемых хостах: ConfigureRemotingForAnsible.ps1 -EnableCredSSP !67
  25. !70

  26. !72

  27. !75

  28. !76

  29. !77

  30. !79

  31. !80

  32. !83

  33. !84

  34. !85

  35. !87

  36. !90

  37. !91

  38. !92

  39. !95

  40. !96

  41. !97

  42. Проверка конфигов • Syntax Check, Diff, Check mode • ansible-lint

    • Тесты - важно, если вы деплоите на продакшн !113
  43. Проблемы • Сложные Powershell cкрипты • У всех разные реализации

    • Непонятно, установилось или нет • Где искать логи? • Много коммуникации (знаниями обладают лишь несколько человек) !119
  44. Проблемы • Сложные Powershell cкрипты Декларативные YAML конфиги • У

    всех разные реализации Общие конфигурируемые роли • Непонятно, установилось или нет Можно посмотреть в TeamCity • Где искать логи? Лог Ansible всегда доступен в TeamCity • Много коммуникации (знаниями обладают лишь несколько человек)
 Все заинтересованные лица знают, где лежат и как работают плейбуки !120
  45. О чем не говорили • Infrastructure provisioning: AWS, Azure, VMWare,

    Openstack • Многие фичи Ansible: Handlers, Tags, etc… !122
  46. О чем не говорили • Infrastructure provisioning: AWS, Azure, VMWare,

    Openstack • Многие фичи Ansible: Handlers, Tags, etc… • Деплой на продакшн !123