4 ms·
Author here. Quite surprised to see this. Another related tool I'm working on is: https://github.com/ianmiell/shutitfile https://github.com/ianmiell/shutitfil
by zwischenzug 10y ago
Author here. Quite surprised to see this.
Another related tool I'm working on is:
https://github.com/ianmiell/shutitfile https://github.com/ianmiell/shutitfile
Why this over Ansible? It's a long story :)
Mainly because not everyone is a great or even decent programmer, so I wanted an easy way in for them for the situation I was in. Hence automation for everyone. But I don't think this is a serious competitor for Ansible.
Happy to answer questions as they arise.
- zwischenzug 10y agoThere are some videos here: https://www.youtube.com/watch?v=zVUPmmUU3yY https://www.youtube.com/watch?v=zVUPmmUU3yY https://www.youtube.com/watch?v=UGp16yvSrFE https://www.youtube.com/watch?v=UGp16yvSrFE And I've blogged quite a bit about ShutIt use cases here: http://zwischenzugs.wordpress.com/ http://zwischenzugs.wordpress.com/ and the genesis of ShutIt and Docker: https://www.youtube.com/watch?v=-qHwL8C9UoA https://www.youtube.com/watch?v=-qHwL8C9UoA
- zwischenzug 10y agoAlso, I'm looking for contributors. If you have an interest in usable automation, an expertise in terminal internals, or just want to get involved, please get in touch. @ianmiell
- themckman 10y ago> Why this over Ansible? It's a long story :) As someone who just spent the last year of his life using Ansible, something tells me I already know this story. I feel for you.
- Rafert 10y agoAs someone who hasn't done much with it yet, care to elaborate? It seemed easier for me to grok than Chef.
- Azeralthefallen 10y agoMy life resolves around Ansible and has for the last year and a half. Ansible is a great tool, unfortunately it has a bunch of short comings. Especially now some of these are becoming a major issue. - Its dependence on Python 2.X, unfortunately all the newer OS's have Python 3.X installed by default. While i have a role for installing this manually it isn't super nice. - My main devops project consists of 11 different environments, and it manages nearly 2k servers. Trying to write environment agnostic roles is an absolute nightmare. Furthermore my group_vars, host_vars, and dynamic inventories have turned into spaghetti. Why? Because of how confusing variable precedence becomes, when you get into extremely complex hierarchy of group_vars which can randomly break. - It is really hard to handle cases where playbooks/roles fail and deal with it cleanly. Blocks have helped a bit, but there is no way to grab the exception that caused the playbook to fail. - The yaml syntax becomes messy fast, Jinja2 is powerful but there are times i wish you could just shove a single line of python into places to prevent the huge mess of with_items, register, set_fact, etc. - AWS modules are a very mixed bag. A lot of them are missing features, and there is some very weird issues that apparently boto is the cause of (e.g. they should move to boto3). Even then i need to do a huge amount of boilerplate to launch ec2 instances. - There is no way to share a common group_vars between inventories (all is specific to inventory). Which leads to a lot of duplication. (Yes the symlink trick does work, but causes a bunch of other issues). I still love Ansible and i would pick it over Chef/Puppet. Salt is also another decent one that has made a lot of progress lately.
- zwischenzug 10y agoThat's interesting - I just received a request for ShutIt to work with Python3. Regarding failure, ShutIt drops to a shell on error (if there's a tty), so you can correct manually before continuing (pause_point). These can also be triggered directly for debugging purposes. I don't like YAML for anything complicated. The bash scripts I saw embedded in YAML felt wrong. Why not just use shell? Env-agnosticism (eg 'install' packages rather than yum/apt) was built in because it was created in a bi-OS env (ubuntu and CentOS).
- ams6110 10y agoI use ansible to manage several hundred servers. So not your scale, but I've felt some of this. I stopped trying to write completely agnostic roles. This does result in some duplication but much less hair-pulling overall. Yes ansible is what made me grow to dislike yaml.
- was_boring 10y agoDoes this provide automatic subcommands? For example if I write a module/script can I just do `shutit <custom command here>` from within any directory? The use case is a heroku/docker type cli without needing to mess with the Python args module and setting up a bash alias
- zwischenzug 10y agoInteresting idea - if you give me a specific use case (github issue?) I'll work on something.
- y4mi 10y agomore like "why would you use this instead of fabric" [0]... ansible has a different focus, but fabric looks pretty much the same to me [0] http://www.fabfile.org/ http://www.fabfile.org/
- blacksmith_tb 10y agoSince configuration management isn't a typical part of my day job, this is appealing - I have used Chef and Ansible a little, but haven't needed them badly enough to really choose one, which makes ShutIt attractive to me, especially recording sessions. This may be a 'careful what you wish for' but I am curious if you think it would be possible to parse the shell history file on a box to produce a recording retroactively? It would probably have to be interactive, press return to add this command or space to ignore it etc., but it would provide for backing up everything you'd done to a server, which I have certainly wished I had an easy way to do (short of manually poring over my history and cherry-picking the things that mattered).
- zwischenzug 10y agoYes that's somewhat possible, but YMMV. Contact me if you want via Github (ianmiell)