Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My slides from DevOps-40 meetup Oct 2019

19 views

Published on

My slides from DevOps-40 meetup Oct 2019

Published in: Technology
  • Be the first to comment

  • Be the first to like this

My slides from DevOps-40 meetup Oct 2019

  1. 1. Модуль управления фаерволом для Ansible своими руками Александр Чистяков vdsina.ru
  2. 2. Постановка задачи по-взрослому Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 2 / 40 • Я хочу управлять правилами фаервола в Linux
  3. 3. Постановка задачи по-взрослому Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 3 / 40 • Я хочу управлять правилами фаервола в Linux • Я хочу делать это в 2020-м году, по колено в снегу, несмотря ни на что
  4. 4. Постановка задачи по-взрослому Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 4 / 40 • Я хочу управлять правилами фаервола в Linux • Я хочу делать это в 2020-м году, по колено в снегу, несмотря ни на что • Я попросил у Санты работающий Kubernetes на bare metal (зачем?)
  5. 5. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 5 / 40 • Я добавляю правило, оно работает
  6. 6. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 6 / 40 • Я добавляю правило, оно работает • Я не заблокировал весь трафик (валидация)
  7. 7. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 7 / 40 • Я добавляю правило, оно работает • Я не заблокировал весь трафик (валидация) • Нет противоречий (валидация)
  8. 8. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 8 / 40 • Я добавляю правило, оно работает • Я не заблокировал весь трафик (валидация) • Нет противоречий (валидация) • После перезагрузки система находится в известном состоянии
  9. 9. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 9 / 40 • Я добавляю правило, оно работает • Я не заблокировал весь трафик (валидация) • Нет противоречий (валидация) • После перезагрузки система находится в известном состоянии • Повторное применение не меняет состояние системы (идемпотентность)
  10. 10. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 10 / 40 • Я удаляю правило, оно удаляется
  11. 11. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 11 / 40 • Я удаляю правило, оно удаляется • Что такое удаление?
  12. 12. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 12 / 40 • Я удаляю правило, оно удаляется • Что такое удаление? • Правило исчезло из конфигурации - должно исчезнуть с хоста
  13. 13. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 13 / 40 • Я удаляю правило, оно удаляется • Что такое удаление? • Правило исчезло из конфигурации - должно исчезнуть с хоста • Ansible никогда не был хорош в этом
  14. 14. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 14 / 40 • Я применяю конфигурацию к хосту, где уже есть правила фаервола
  15. 15. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 15 / 40 • Я применяю конфигурацию к хосту, где уже есть правила фаервола • Что делать, если в конфигурации правила нет, а на хосте - есть?
  16. 16. Use cases Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 16 / 40 • Я применяю конфигурацию к хосту, где уже есть правила фаервола • Что делать, если в конфигурации правила нет, а на хосте - есть? • Democracy time! (выдать ошибку, молча исправить, громогласно исправить, ...?)
  17. 17. Немного истории Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 17 / 40 • iptables - это не сам фаервол, а его конфигуратор
  18. 18. Немного истории Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 18 / 40 • iptables - это не сам фаервол, а его конфигуратор • Все остальное - это конфигуратор iptables (мы не должны бояться шаблонизировать шаблонизаторы)
  19. 19. Немного истории Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 19 / 40 • iptables - это не сам фаервол, а его конфигуратор • Все остальное - это конфигуратор iptables (мы не должны бояться шаблонизировать шаблонизаторы) • Пожалуй, лучший из них - Shorewall
  20. 20. Привет из 2001-го Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 20 / 40 • Shorewall - это просто большой bash-скрипт на языке Perl
  21. 21. Привет из 2001-го Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 21 / 40 • Shorewall - это просто большой bash-скрипт на языке Perl • Интеграция с Docker и Kubernetes? Серьезно?
  22. 22. Привет из 2001-го Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 22 / 40 • Shorewall - это просто большой bash-скрипт на языке Perl • Интеграция с Docker и Kubernetes? Серьезно? • Идемпотентность? А что это?
  23. 23. firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 23 / 40 • Работает как сервис
  24. 24. firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 24 / 40 • Работает как сервис • Управляется через D-Bus
  25. 25. firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 25 / 40 • Работает как сервис • Управляется через D-Bus • Имеет свой язык конфигурации (куда же без него!)
  26. 26. firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 26 / 40 • Работает как сервис • Управляется через D-Bus • Имеет свой язык конфигурации (куда же без него!) • Однажды будет работать без iptables
  27. 27. firewalld WAT list Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 27 / 40 • Runtime/permanent configs
  28. 28. Ansible роль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 28 / 40 • https://github.com/kofonfor/ansible- role-firewalld
  29. 29. Ansible роль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 29 / 40 • Я добавляю правило, оно работает • Я не заблокировал весь трафик (валидация) • Нет противоречий (валидация) • После перезагрузки система находится в известном состоянии • Повторное применение не меняет состояние системы (идемпотентность)
  30. 30. Ansible роль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 30 / 40 • Я удаляю правило, оно удаляется
  31. 31. Ansible роль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 31 / 40 • Декларативная конфигурация
  32. 32. Необходимость в модуле Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 32 / 40 • Я добавляю правило, оно работает • Я не заблокировал весь трафик (валидация) • Нет противоречий (валидация) • После перезагрузки система находится в известном состоянии • Повторное применение не меняет состояние системы (идемпотентность)
  33. 33. Необходимость в модуле Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 33 / 40 • Я удаляю правило, оно удаляется
  34. 34. Ansible модуль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 34 / 40 • G(T/S)D
  35. 35. Ansible модуль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 35 / 40 • Тот же формат конфигурации, что у роли
  36. 36. Ansible модуль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 36 / 40 • Тот же формат конфигурации, что у роли • Пишем на Haskell
  37. 37. Ansible модуль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 37 / 40 • Тот же формат конфигурации, что у роли • Пишем на Haskell • Сейчас (кажется) готова заглушка для модуля, которая может принять параметры и вернуть обратно статус (всегда одинаковый)
  38. 38. Ansible модуль для firewalld Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 38 / 40 • Тот же формат конфигурации, что у роли • Пишем на Haskell • Сейчас (кажется) готова заглушка для модуля, которая может принять параметры и вернуть обратно статус (всегда одинаковый) • To be continued...
  39. 39. Выводы Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 39 / 40 • Управление фаерволом - долго, дорого, неаккуратно • Но мы, хотя бы, пытаемся
  40. 40. That’s all, folks! Александр Чистяков, vdsina.ru Модуль управления фаерволом для Ansible своими руками 40 / 40 • alexclear@gmail.com • https://telegram.me/lhommequipleure • https://telegram.me/demeliorator_pod

×