diff --git a/course/05.IT_operations_and_automation-1.pdf b/course/05.IT_operations_and_automation-1.pdf deleted file mode 100644 index 5b4e8f61d1a170ead9149ad34e4df799fbe03df5..0000000000000000000000000000000000000000 Binary files a/course/05.IT_operations_and_automation-1.pdf and /dev/null differ diff --git a/course/06.Observability_monitoring_telemetry.pdf b/course/06.Observability_monitoring_telemetry.pdf new file mode 100644 index 0000000000000000000000000000000000000000..09461b5e6bde86dd13cf869e07785bd239ed1218 Binary files /dev/null and b/course/06.Observability_monitoring_telemetry.pdf differ diff --git a/course/06.Observability_monitoring_telemetry.with_notes.pdf b/course/06.Observability_monitoring_telemetry.with_notes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c627fa42f9da3bc2e866c52ff70462446b3981ab Binary files /dev/null and b/course/06.Observability_monitoring_telemetry.with_notes.pdf differ diff --git a/labs/labo6_ansible/lab-ansible/ansible/playbooks/install_docker.yml b/labs/labo6_ansible/lab-ansible/ansible/playbooks/install_docker.yml deleted file mode 100644 index cc02b1194286926631c47e107d14453f3f6105f8..0000000000000000000000000000000000000000 --- a/labs/labo6_ansible/lab-ansible/ansible/playbooks/install_docker.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -- name: Update apt cache - apt: - update_cache: yes - -- name: Install Docker dependencies - apt: - name: - - apt-transport-https - - ca-certificates - - curl - - gnupg - - lsb-release - state: present - -- name: Add Docker GPG key - apt_key: - url: https://download.docker.com/linux/debian/gpg - state: present - -- name: Add Docker repository - apt_repository: - repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" - state: present - -- name: Install Docker - apt: - name: docker-ce - state: present - update_cache: yes - -- name: Start and enable Docker - systemd: - name: docker - state: started - enabled: yes \ No newline at end of file diff --git a/labs/labo6_ansible/lab-ansible/ansible/playbooks/kind-metallb.yml b/labs/labo6_ansible/lab-ansible/ansible/playbooks/kind-metallb.yml index 94d93d8afa67373264ba03f166def29a91cb152b..b2a8e4c7d51128c713e335dbfd2564be62366a66 100644 --- a/labs/labo6_ansible/lab-ansible/ansible/playbooks/kind-metallb.yml +++ b/labs/labo6_ansible/lab-ansible/ansible/playbooks/kind-metallb.yml @@ -1,88 +1,111 @@ --- -- name: Provision KinD and deploy MetalLB - hosts: "{{ target_host | default('testserver') }}" - become: True +- name: Provision KinD cluster and deploy a load-balanced app + hosts: testserver + become: true + vars: + kind_version: "v0.20.0" + kubectl_version: "stable" + metallb_version: "v0.13.7" + delete_existing_cluster: true # flag pour option destroy cluster ou pas tasks: - - name: Install necessary packages - block: - - name: Update apt cache - apt: - update_cache: yes - - - name: Install required packages - apt: - name: - - apt-transport-https - - ca-certificates - - curl - - gnupg - - lsb-release - state: present - - - name: Install KinD - shell: | - curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64 - chmod +x ./kind - mv ./kind /usr/local/bin/kind - args: - creates: /usr/local/bin/kind + - name: S assurer que le repertoire de destinatin existe + file: + path: /home/terraform + state: directory + mode: '0755' + + - name: Copier le fichier de configuration KinD + copy: + src: "manifests/kind-config.yaml" + dest: "/home/terraform/kind-config.yaml" + notify: + - Delete KinD cluster + - Create KinD cluster + - Install MetalLB + - Deploy HTTP-echo application - - name: Install Kubectl + - name: Supprimer le cluster KinD existant (si nécessaire) shell: | - curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" - chmod +x kubectl - mv kubectl /usr/local/bin/kubectl - args: - creates: /usr/local/bin/kubectl + if kind get clusters | grep -q "kind"; then + kind delete cluster + sleep 30 + fi + when: delete_existing_cluster # destroy cluster si deja un présent + register: cluster_deletion + notify: Delete KinD cluster - - name: Configure KinD cluster + - name: Créer le cluster KinD shell: | - kind create cluster --name mycluster - args: - creates: /root/.kube/config - - - name: Configure LoadBalancer service - block: - - name: Copy MetalLB configuration - copy: - src: files/metallb-native.yml - dest: /root/metallb-native.yml - - - name: Apply MetalLB configuration - shell: | - kubectl apply -f /root/metallb-native.yml - args: - creates: /root/metallb-applied - - - name: Check if KinD cluster exists + set -o errexit + cloud-init status --wait + sleep 30 + kind create cluster --config /home/terraform/kind-config.yaml + sleep 30 + register: kind_creation + ignore_errors: yes + notify: Create KinD cluster + + - name: Copier le fichier de configuration MetalLB + copy: + src: "manifests/metallb-config.yaml" + dest: "/home/terraform/metallb-config.yaml" + notify: Deploy MetalLB configuration + + - name: Installer MetalLB shell: | - kind get clusters | grep mycluster - register: kind_cluster_check - changed_when: false - failed_when: kind_cluster_check.rc != 0 + cloud-init status --wait + kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.10/config/manifests/metallb-native.yaml + sleep 30 + kubectl apply -f /home/terraform/metallb-config.yaml + sleep 30 + register: metallb_deployment + ignore_errors: yes + notify: Deploy HTTP-echo application + + - name: Copier le fichier de déploiement HTTP-echo + copy: + src: "manifests/lb-deployment.yaml" + dest: "/home/terraform/lb-deployment.yaml" + notify: Deploy HTTP-echo application - - name: Rebuild KinD cluster + - name: Déployer l'application HTTP-echo et le service LoadBalancer shell: | - kind delete cluster --name mycluster && kind create cluster --name mycluster - when: kind_cluster_check.rc != 0 - notify: Rebuild KinD cluster + cloud-init status --wait + sleep 30 + kubectl apply -f /home/terraform/lb-deployment.yaml + sleep 30 + register: http_echo_deployment + changed_when: "'deployment.apps/http-echo' in http_echo_deployment.stdout" + + - name: Debug HTTP-echo deployment + debug: + msg: "HTTP-echo deployment status: {{ http_echo_deployment.stdout }}" + - name: Debug MetalLB deployment + debug: + msg: "MetalLB deployment status: {{ metallb_deployment.stdout }}" + + - name: Debug KinD cluster creation + debug: + msg: "KinD cluster creation status: {{ kind_creation.stdout }}" + + handlers: - name: Delete KinD cluster + command: kind delete cluster + + - name: Create KinD cluster + command: kind create cluster --config /home/terraform/kind-config.yaml + + - name: Install MetalLB shell: | - kind delete cluster --name mycluster - tags: delete_cluster - -handlers: - - name: Rebuild KinD cluster - shell: | - kind delete cluster --name mycluster && kind create cluster --name mycluster - - - name: Deploy MetalLB - shell: | - kubectl apply -f /root/metallb-native.yml - notify: Expose LoadBalancer IP - - - name: Expose LoadBalancer IP - shell: | - socat TCP-LISTEN:80,fork TCP:$(kubectl get svc -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}'):80 \ No newline at end of file + kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.10/config/manifests/metallb-native.yaml + sleep 30 + kubectl apply -f /home/terraform/metallb-config.yaml + sleep 30 + + - name: Deploy MetalLB configuration + command: kubectl apply -f /home/terraform/metallb-config.yaml + + - name: Deploy HTTP-echo application + command: kubectl apply -f /home/terraform/lb-deployment.yaml \ No newline at end of file diff --git a/labs/labo6_ansible/lab-ansible/ansible/playbooks/main.yml b/labs/labo6_ansible/lab-ansible/ansible/playbooks/main.yml deleted file mode 100644 index 7ec90bc1c28031adf21739a1704130d2d693716e..0000000000000000000000000000000000000000 --- a/labs/labo6_ansible/lab-ansible/ansible/playbooks/main.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- name: Complete setup and deployment - hosts: all - become: True - tasks: - - name: Include Docker installation tasks - include_tasks: install_docker.yml - - - name: Include KinD and MetalLB provisioning tasks - include_tasks: kind-metallb.yml - - - name: Include HTTP-Echo deployment tasks - include_tasks: deploy_http_echo.yml \ No newline at end of file