9 ms·
Babushka – Test-Driven Sysadmin
- awinter-py 11y agoa step in the right direction (mockable infrastructure). nice work.
- nikolay 11y agoThis is not a new project, but it's so simple and, yet, practical - I couldn't resist to repost it in hopes.
- nikolay 11y agoBy the way, some guy tried to implement it in pure Bash once [0]. [0]: https://github.com/richo/babashka https://github.com/richo/babashka
- errnoh 11y agoThere's also Marelle [0], written in SWI-Prolog. [0]: http://larsyencken.github.io/marelle/ http://larsyencken.github.io/marelle/
- nikolay 11y agoThanks for reminding me about Marelle! I was really excited about it back then, but then, due to the Prolog dependency, I got a bit more practical.
- visakanv 11y agoLove the name.
- xentronium 11y agoTechnically the toy is called matryoshka, babushka is Russian for grandmother.
- guard-of-terra 11y agoI think they meant it. As in, a grandmother who is full of energy and can do a dozen things before anybody is ever awake. Always coming to the rescue of her grandchildren.
- iamtew 11y agoThey didn't: > It’s true, babushka means “grandmother” in Russian. The thing is, here in Australia, “babushka doll” is the colloquial term for Russian nesting dolls. Deps are intended to be small, tidy chunks of code, nested within each other - hence the name. Last paragraph: http://babushka.me/overview http://babushka.me/overview
- deleted 11y ago[deleted]
- agumonkey 11y agoThe Kate Bush fan in me remembers this.
- mapleoin 11y agoThis is presented as revolutionary somehow, but it's just a stripped-down (early version?) of what the other configuration management tools do: e.g. Chef, puppet, ansible.
- CraigJPerry 11y agoYeah i agree. Although I still haven't found a test framework I like for this so any pointers appreciated! I tried it all ansible based: https://github.com/CraigJPerry/ansible-users/tree/test-cases-as-documentation/tests https://github.com/CraigJPerry/ansible-users/tree/test-cases... I tried it using Python's unittest2 module: https://github.com/CraigJPerry/home-network/blob/v0.1.5/tests/ https://github.com/CraigJPerry/home-network/blob/v0.1.5/test... I like the idea that ansible playbooks should be self testing.
- falcolas 11y agoI'm working from a memory of a podcast, so pull out those pinches of salt: Chef offers a testing suite - it basically offers a running mode which does an audit of what current conforms to the recipes you've passed it, and outputs a list of actions it would take to remedy this. Combined with VMs, this lets you do some basic automated testing to ensure that your script is doing what you intend it to do. I could swear that they also some kind of automated validation against an "inventory", which would make it possible to do automated tests against a known, unchanging target, but at this point I'm probably mis-remembering. They may have just advocated using VMs, images, and audits as validation.
- otterley 11y agoHave you tried Serverspec?
- not_logan 11y agoI can't understand why the Babushka is better (or worse) than popular SCM, such as puppet, chef or ansible?
- lisivka 11y agoCompare it with Systemd instead of puppet: it is stripped down version of Systemd.
- fisle 11y agoSysadmin tool suggests installing itself with sh & curl combo? This makes me suspicious of the tool itself.
- loudmax 11y agoI was thinking the same thing. As a grey haired sysadmin it's disconcerting to see this blasé attitude toward executing local commands from a remote host. In a practical sense, I'm not sure it's as bad as it looks. It is https. And if you weren't going to read the source code, it's not really different from downloading the program before executing it. In this case, its a small shell script, so it's easy to glance through the code to make sure it isn't doing anything sketchy. For large code bases, that isn't always feasible, so at some point you have to simply trust the source, whether you install from a tarball or (ugh) let a shell execute commands from a remote host. Also, if you're the kind of sysadmin that fires up a VM or a container any time you want to experiment with a new piece of software, you can afford to take risks. At worst, they'll steal your public key. It does seem like a bad habit. If you get used to sh+curl install legitimate projects, it isn't such a stretch to sh+curl miscellaneous suggestions on forums.
- wyldfire 11y agoI saw this link elsewhere on HN today: "is curl|bash insecure?" [1] [1] https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-p...
- burke 11y agoI've borrowed this met?/meet API for another tool and found it to be a really useful pattern.