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.

Ansible and other stuff

122 views

Published on

My talk on Ansible at ITGM Mar 2018

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Ansible and other stuff

  1. 1. Ansible: the good parts Alex Chistyakov, a fool on the hill
  2. 2. Outline - Ansible was good, now it’s dead - Ansible was never good - Miscellaneous 2
  3. 3. Ansible was good - I’ve been using Ansible past four years 3
  4. 4. Ansible was good - I’ve been using Ansible past four years - Is it even legal? 4
  5. 5. Ansible was good - I’ve been using Ansible past four years - Is it even legal? - Authored and co-authored 200+ publicly available Ansible roles in various repos 5
  6. 6. Ansible was never good - How come, Red Hat Inc.? 6
  7. 7. Ansible was never good - How come, Red Hat Inc.? - 6 years since initial release 7
  8. 8. Ansible was never good - How come, Red Hat Inc.? - 6 years since initial release - And still no decent Linux firewall configuration module? 8
  9. 9. A perfect escape plan: Stonic - https://github.com/stonicio/stonic 9
  10. 10. A perfect escape plan: Stonic - https://github.com/stonicio/stonic - 0 security bugs so far 10
  11. 11. A perfect escape plan: Stonic - https://github.com/stonicio/stonic - 0 security bugs so far - 100% reliability 11
  12. 12. A perfect escape plan: Stonic - https://github.com/stonicio/stonic - 0 security bugs so far - 100% reliability - https://github.com/kelseyhightower/nocode 12
  13. 13. Stonic was never good - Originally intended to be Python-based 13
  14. 14. Stonic was never good - Originally intended to be Python-based - Probably only Golang is worse than Python 14
  15. 15. Stonic was never good - Originally intended to be Python-based - Probably only Golang is worse than Python - (PHP does not count because it’s not a programming language) 15
  16. 16. Stonic was never good - Originally intended to be Python-based - Probably only Golang is worse than Python - (PHP does not count because it’s not a programming language) - And if it is, why there is no local PHP Meetup in SPb.? 16
  17. 17. Even better escape plan: s1onique - Probably a French word meaning “Let’s write it from the ground up” 17
  18. 18. Even better escape plan: s1onique - Probably a French word meaning “Let’s write it from the ground up” - 0 lines of code so far 18
  19. 19. Even better escape plan: s1onique - Probably a French word meaning “Let’s write it from the ground up” - 0 lines of code so far - An umbrella organization for some future PoCs (Inshallah) 19
  20. 20. Breakdown and milestones - Develop a firewall configuration module for Ansible finally 20
  21. 21. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Haskell 21
  22. 22. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Kotlin 22
  23. 23. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Scala/Native 23
  24. 24. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Racket 24
  25. 25. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Rust (QUIA POSSUMUS!) 25
  26. 26. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Rust (QUIA POSSUMUS!) - We Release When It’s Ready (mañana) 26
  27. 27. I’m agile - Rewriting Ansible in any language is like this: 27
  28. 28. Let’s collect some requirements - We need a way to describe a desired state declaratively 28
  29. 29. Let’s collect some requirements - We need a way to describe a desired state declaratively - … and safely! (so, static typing or a linter) 29
  30. 30. Let’s collect some requirements - We need a way to describe a desired state declaratively - … and safely! (so, static typing or a linter) - We need a way to enforce the desired state 30
  31. 31. Let’s collect some requirements - We need a way to describe a desired state declaratively - … and safely! (so, static typing or a linter) - We need a way to enforce the desired state - Ansible, really? Are you kidding? 31
  32. 32. OK, but the firewall is still there - Writing an Ansible module seems to be simple 32
  33. 33. OK, but the firewall is still there - Writing an Ansible module seems to be simple - Except when it’s not 33
  34. 34. OK, but the firewall is still there - Writing an Ansible module seems to be simple - Except when it’s not - The desired state should be clearly defined (how?) 34
  35. 35. OK, but the firewall is still there - Writing an Ansible module seems to be simple - Except when it’s not - The desired state should be clearly defined (how?) - The desired state should be enforced unambiguously 35
  36. 36. We need a plan again - A desired state is just a complex data structure expressed in YAML 36
  37. 37. We need a plan again - A desired state is just a complex data structure expressed in YAML - An Ansible module is just a Python program 37
  38. 38. We need a plan again - A desired state is just a complex data structure expressed in YAML - An Ansible module is just a Hylang program 38
  39. 39. We need a plan again - A desired state is just a complex data structure expressed in YAML - An Ansible module is just a MAL program 39
  40. 40. We need a plan again - A desired state is just a complex data structure expressed in YAML - An Ansible module is just a MAL program - Because this world was written in Lisp! 40
  41. 41. Conclusions - No CM system for old men - I’m so tired 41
  42. 42. Questions? - alexclear@gmail.com - Skype, Telegram: demeliorator - A Telegram channel (updated occasionally): http://t.me/lhommequipleure 42

×