An introduction to ansible

What is Ansible / Advantages

  • DevOps tool developed by Red Hat
  • Facilitates large scale automation and maintenance of infrastructure
  • Declarative and Reproducible
  • Idempodent: makes changes only if needed (ie. it can be run multiple times without breakage)
  • Does not require anything installed on servers (other than Python3)
  • Huge community / ecosystem, and resultant compatability with most underlying software
  • Can keep hosts in sync while having variations between them using per-group/host variables
  • Store secrets in-repo with ansible-vault

Disadvantages

Nothing is without its dis-advantages :)

  • Slow execution
  • SSH is the only well-supported way of accessing remote systems
  • The time taken for even basic checks to occur (like if a file exists)
  • Pickiness of yaml indentation

What will be covered

  • Basics of Ansible
  • How the inventory works
  • Synchronization of multiple-hosts with ansible (with a webserver example)
  • Per-Host variables and ansible vault
  • A quick demo of ansible web UI using ansible semaphore

Explain what declarative and reprooducible mean

explain how ansible in general gives instructions to reach a certain state while TF and others have a certain state they want to reach and decide how to do it as required