Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows. It includes its own declarative language to describe system configuration. Ansible was written by Michael DeHaan and acquired by Red Hat in 2015. Ansible is agentless, temporarily connecting remotely via SSH or Windows Remote Management (allowing remote PowerShell execution) to do its tasks.
In contrast with other popular configuration-management software such as Chef, Puppet,CFEngine, Ansible uses an agentless architecture, with Ansible software not normally running or even installed on the controlled node. Instead, Ansible orchestrates a node by installing and running modules on the node temporarily via SSH. For the duration of an orchestration task, a process running the module communicates with the controlling machine with a JSON-based protocol via its standard input and output.
Ansible Playbook are YAML files that express configurations, deployment, and orchestration in Ansible and allow Ansible to perform operations on managed nodes. Each Playbook maps a group of hosts to a set of roles. Each role is represented by calls to Ansible tasks. They are like a to-do list for Ansible that contains a list of tasks. Playbooks contain the steps which the user wants to execute on a particular machine.
Ansible Kubernetes Cluster Management:
Kubernetes Clusters don't appear out of thin air. Depending on the type of clusters you're using, they require management for upgrades and integrations. Cluster management can become crippling, especially if, like most organizations, you’re managing multiple clusters (multiple production clusters, staging and QA clusters, etc.).
If you're running inside a private cloud, or on bare metal servers, you will need a way to install Kubernetes and manage individual servers in the cluster. Ansible has a proven track record of being able to orchestrate multi-server applications, and Kubernetes itself is a multi-server application which happens to manage one or thousands of other multi-server applications through containerization.
Projects like Kubespray have used Ansible for custom Kubernetes cluster builds and are compatible with dozens of different infrastructure arrangements.
Even if you use a managed Kubernetes offering, like AKS, EKS, or GKE, Ansible has modules like azure_rm_aks, aws_eks_cluster, and gcp_container_cluster, which manage clusters, along with thousands of other modules which simplify and somewhat standardize cluster management among different cloud providers.
ref:
wiki - https://en.wikipedia.org/wiki/Ansible_(software)
ansible website - https://www.ansible.com/
ansible github - https://github.com/ansible
ansible overview - https://www.ansible.com/overview/how-ansible-works
ansible playbook -
1. https://docs.ansible.com/ansible/latest/user_guide/playbooks.html
2. https://docs.ansible.com/ansible/latest/network/getting_started/first_playbook.html
3. https://github.com/ansible/ansible-examples
ansible and kubernetes -
1. https://www.ansible.com/blog/how-useful-is-ansible-in-a-cloud-native-kubernetes-environment
2. https://github.com/geerlingguy/ansible-for-kubernetes
3. https://victorops.com/blog/ansibles-role-in-a-docker-and-kubernetes-world
How to create your own Kubernetes Cluster using Ansible - https://medium.com/faun/how-to-create-your-own-kubernetes-cluster-using-ansible-7c6b5c031a5d
How useful is Ansible in a Cloud-Native Kubernetes Environment? - https://www.ansible.com/blog/how-useful-is-ansible-in-a-cloud-native-kubernetes-environment
Kubernetes Setup Using Ansible and Vagrant - https://kubernetes.io/blog/2019/03/15/kubernetes-setup-using-ansible-and-vagrant/
Deploy a Production Ready Kubernetes Cluster using Kubespray with Ansible Playbook -
1. https://github.com/kubernetes-sigs/kubespray
2. https://computingforgeeks.com/deploy-production-kubernetes-cluster-with-ansible/
Kubeadm Ansible Playbook - https://github.com/kairen/kubeadm-ansible