What is Ansible?
What is Puppet Labs?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
For automating deployment or system admin tasks, Shell/Perl are more than enough. Specially Perl one liners, that I use heavily, even to make changes in xml files. But quite often the need is to just check the state of system and run scripts without fear. Thats where I actually needed some scripting language with "state mechanism" associated with it. Salt provided me above similar kind of experience. I tested salt first on a small scenario. Installation of 60 RPMS on a machine. I was pleased that I could achieve that in around 25 lines of code using salt. And eventually I was also able to keep data and code separate. This was another plus point. henceforth I was able to use salt to deploy a large potion Datacenter (apps deployment). I am still working towards orchestration and finding it quite promising. The use of pure python whenever needed to deal with more complex scenario is awesome.
Ansible is the deployment tool for people who don't like deployment tools. It's close to scripting, doesn't pollute your servers with agents or centralized servers, and just makes immediate sense. The entire stack at Cloudcraft.co is orchestrated by Ansible. What does that mean? Beyond the obvious of installing packages and configuring services, Ansible coordinates all the machines into a working deployment: It adds API servers to the loadbancer pool, opens ports on the DB server for the backend servers to connect, gracefully upgrades services in a rolling fashion for zero-downtime deployments etc. And it's so easy to use, it's easier to use than doing things by hand, meaning it's a deployment tool you'll actually use every time!
I'm using puppet to configure my servers. This makes it really simple to ensure that I have the same environment. There is a bit of a learning curve, but the repeatability definitely makes it worth the effort. I found puppet to be a little easier to pick up relative to chef, but I've used both. They're both great solutions.
I really like that there are a lot of modules available on the puppet forge that are being actively maintained.
We provision all servers with puppet. We have one central Puppet server which uses puppet modules referenced by a Puppetfile. Those puppet modules are partly from forge and partly self written.
All modules which are self written, have to be tested using rspec-puppet and beaker.
When it comes to provisioning tens to hundreds of servers, you need a tool that can handle the load, as well as being extremely customisable. Fortunately, Salt has held that gauntlet for us consistently through any kind of issue you can throw at it.
We use Ansible to synchronize the few configuration-options we've taken on our CoreOS-Machines. This makes deployment even easier and the fact that it's Agentless made the decision even easier.
Ansible is used in both the development and production deployment process. A playbook couple with a Vagrantfile, easy deploys a local virtual machine that will mirror the setup in production.
I use Ansible to manage the configuration between all of the different pieces of equipment, and because it's agentless I can even manage things like networking devices all from one repo.
We've built something using SaltStack and Debian Linux to help us deploy and administer at scale the servers we provide for our part- and fully-managed hosting customers.
- Configuration management:
- deploy/install all web/app environments
- simple with Galaxy and playbooks.
- No need any pre-installed agent on remote servers.
Opstax uses puppet for role/profile based configuration management and the distribution of small/static code.
Configures or servers and allows us to be region independent we have 5 regions across the globe.