Ansible
Ansible is an open-source Infrastructure-as-Code (IaC) tool that uses YAML files (so-called playbooks) to define configuration and deployment of applications.
Its architecture is based on a push model, where commands are executed from a central control node to target machines, making it easy to manage both small and large-scale environments.
It does need special software to be preinstalled and can just use SSH for communication instead.
"Hello World" Example
The inventory file hosts.ini
defines the target hosts:
[local] localhost ansible_connection=local
The playbook hello_world.yml
contains all instructions:
--- - name: Hello World Playbook hosts: local tasks: - name: Print Hello World debug: msg: "Hello, World!"
Running the playbook:
ansible-playbook -i hosts.ini hello_world.yml