I had the pleasure to test Ansible Tower a few months ago. It looked overall well but did not have as many unique features for us to pay for it.
Are there any mature open source alternatives? I found semaphore (https://github.com/ansible-semaphore/semaphore) and will check it out.
I have not tried Tower, but I looked into semaphore and i’m not convinced by it either, I’m not looking for a GUI to manage ansible, which is what it felt like, I just want an api to run jobs and have accounting/logging of what ran where. I’m already working with a CMDB where I can story my inventory and all the other bits I need to gen configs. My conclusion right now is that you can actually get somewhere very reasonable and with a lot of flexibility and power just by combining 2 pieces:
an inventory system / CMDB
a job runner / logger (ie jenkins, which is already widely used and has an ansible plugin and can function as a dashboard)
You can then add a few more pieces on top of it:
a metric/stats host/infra, to collect metrics from ansible, how many jobs ran, how long they took, etc
you can augment the inventory system based on facts to have a live view of the system
the only thing that may be missing is some more “holistic” dashboard that pulls all of this info together, but in my experience that’s often something nice to have for when you’re bored rather than something actually useful - as long as you have something telling you if job failed and metrics on the status of the hosts, it’s not like I want to spend my time clicking around to look at all my nodes.
I understand this is just my personal taste tho, I’ve never been that much into web GUIs of sort, I like unix philosophy of small things doing their job and everything being, to the extent that it’s possible, a simple flat file that can kept under revision control.
To pitch in, another job runner could be Rundeck. Also, this could be extended with ARA perhaps (https://github.com/openstack/ara). I haven’t set up any of this yet, but a Rundeck / ARA combination seems like a nice proof of concept to work out.
Was about to suggest Rundeck (purely because we already use it for
deployments, jenkins
sounds like a good option too) -
haven't tried this plugin myself but it looks interesting:
Thanks for replies. As I see it and taking into consideration that for some reasons I will have to also run puppet solo (puppet apply …) jobs on hosts alongside ansible runs I have the options to use Rundeck or Jenkins for it.
Is someone able to tell how do they compare to each other? I do not have any experience with them. At the moment I see that both have ansible and puppet modules: