Ansible

- name: Update Kubernetes Deployment Image
  hosts: localhost
  tasks:
    - name: Update deployment image
      community.kubernetes.k8s:
        api_version: apps/v1
        kind: Deployment
        name: nginx-deployment
        namespace: default
        definition:
          spec:
            template:
              spec:
                containers:
                  - name: nginx
                    image: nginx:1.21.6
- name: Scale a Kubernetes Deployment
  hosts: localhost
  tasks:
    - name: Scale deployment to 5 replicas
      community.kubernetes.k8s:
        api_version: apps/v1
        kind: Deployment
        name: nginx-deployment
        namespace: default
        definition:
          spec:
            replicas: 5
- name: Apply Kubernetes manifests
  hosts: localhost
  tasks:
    - name: Apply a manifest file
      community.kubernetes.k8s:
        state: present
        src: /path/to/manifest.yml
- name: Deploy a Kubernetes Service
  hosts: localhost
  tasks:
    - name: Create a Service
      community.kubernetes.k8s:
        api_version: v1
        kind: Service
        name: nginx-service
        namespace: default
        definition:
          metadata:
            labels:
              app: nginx
          spec:
            selector:
              app: nginx
            ports:
              - protocol: TCP
                port: 80
                targetPort: 80
Use the k8s module to deploy a pod:
- name: Deploy a Kubernetes pod
  hosts: localhost
  tasks:
    - name: Create a pod
      community.kubernetes.k8s:
        api_version: v1
        kind: Pod
        namespace: default
        name: nginx-pod
        definition:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
              - name: nginx
                image: nginx:latest
You can use Ansible to install a Kubernetes cluster on remote nodes. Example playbook to install Kubernetes on Ubuntu:
- name: Install Kubernetes Cluster
  hosts: all
  tasks:
    - name: Install dependencies
      apt:
        name: ['apt-transport-https', 'ca-certificates', 'curl']
        state: present

    - name: Add Kubernetes GPG key
      shell: curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

    - name: Add Kubernetes repository
      shell: echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list

    - name: Install Kubernetes packages
      apt:
        name: ['kubelet', 'kubeadm', 'kubectl']
        state: present
Run with:
ansible-playbook -i inventory.ini install_k8s.yml
- name: Deploy Docker Compose Stack
  hosts: all
  tasks:
    - name: Copy docker-compose file
      copy:
        src: ./docker-compose.yml
        dest: /home/user/docker-compose.yml

    - name: Run Docker Compose
      community.docker.docker_compose:
        project_src: /home/user/
- name: Login to a private registry
  hosts: all
  tasks:
    - name: Authenticate Docker
      community.docker.docker_login:
        registry_url: "https://registry.example.com"
        username: my_user
        password: my_password
Add the user to the Docker group:
- name: Add user to Docker group
  hosts: all
  tasks:
    - name: Add user to Docker group
      user:
        name: ansible
        groups: docker
        append: yes
- name: Create and mount Docker volume
  hosts: all
  tasks:
    - name: Create a Docker volume
      community.docker.docker_volume:
        name: my_volume

    - name: Run container with volume
      community.docker.docker_container:
        name: app_container
        image: my_app
        volumes:
          - my_volume:/app/data