Should you want to write your own, Ansible modules can be written in any language that can return JSON (Ruby, Python, bash, etc).
Most importantly, the language remains readable and transparent, and you never have to do things like declare explicit ordering relationships or write code in a programming language. There are lots of advanced possibilities but it's easy to get started. Use the result of one command to decide whether to run another.Set some variables and prompt for others, and set defaults for when they are not set.
Have one server know the IP address of all the others using facts gathered about those particular servers - and use those to dynamically build out configuration files.
Take machines in and out of load balancers and monitoring windows.There’s a LOT more that you can do, including: The Ansible documentation explores this in much greater depth. Other options, like kerberos or identity management systems, can also be used. Lots of options! Root logins are not required, you can login as any user, and then su or sudo to any user.Īnsible's "authorized_key" module is a great way to use ansible to control what machines can access what hosts. Though if you want to use Kerberos, that's good too. Passwords are supported, but SSH keys with ssh-agent are one of the best ways to use Ansible. Typically you'll work with your favorite terminal program, a text editor, and probably a version control system to keep track of changes to your content. Your library of modules can reside on any machine, and there are no servers, daemons, or databases required. Ansible then executes these modules (over SSH by default), and removes them when finished. These programs are written to be resource models of the desired state of the system. EFFICIENT ARCHITECTUREĪnsible works by connecting to your nodes and pushing out small programs, called "Ansible modules" to them. On this page, we'll give you a really quick overview so you can see things in context.
It uses no agents and no additional custom security infrastructure, so it's easy to deploy - and most importantly, it uses a very simple language (YAML, in the form of Ansible Playbooks) that allow you to describe your automation jobs in a way that approaches plain English. Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.ĭesigned for multi-tier deployments since day one, Ansible models your IT infrastructure by describing how all of your systems inter-relate, rather than just managing one system at a time.