0% ont trouvé ce document utile (0 vote)
36 vues5 pages

Lab 3

A simple application of terraform and ansible in a kubernetes cluster

Transféré par

siwar zrelli
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues5 pages

Lab 3

A simple application of terraform and ansible in a kubernetes cluster

Transféré par

siwar zrelli
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Application sur les notions de bases

Terraform et Ansible

Étape 1 : Installation de Terraform


1. Téléchargez Terraform:
wget https://releases.hashicorp.com/terraform/1.6.0/terraform_1.6.0_linux_amd64.zip

unzip terraform_1.6.0_linux_amd64.zip

sudo mv terraform /usr/local/bin/

2. Vérifiez l'installation :

terraform version

Étape 2 : Installation d'Ansible


1. Installez Ansible:
sudo apt update && sudo apt install ansible -y

2. Vérifiez l'installation :
ansible --version

Étape 3 : Récupération des Valeurs des Variables


1. Variables nécessaires pour Terraform :
KUBERNETES_API_ENDPOINT :
Vous pouvez récupérer l'API endpoint en exécutant la commande suivante sur le nœud maître :
kubectl cluster-info | grep 'Kubernetes' | awk '{print $NF}'

Cela vous donnera une sortie similaire à https://10.0.0.10:6443.

TOKEN :
Le token d'accès peut être récupéré avec la commande suivante :

kubectl get secrets -n kube-system | grep bootstrap-token | awk '{print $1}'

Ensuite, utilisez ce nom de secret pour obtenir le token :

kubectl describe secret <TOKEN_NAME> -n kube-system


PATH_TO_CA_CERT :
Le certificat CA est généralement situé dans le dossier /etc/kubernetes/pki. Vous pouvez le copier sur
votre machine locale ou directement dans votre configuration Terraform en utilisant :

cat /etc/kubernetes/pki/ca.crt > ca.crt

Étape 4 : Utilisation de Terraform


Voici un exemple détaillé d'un fichier Terraform «main.tf » qui utilise les variables récupérées :

provider "kubernetes" {

host = "<KUBERNETES_API_ENDPOINT>"

token = "<TOKEN>"

cluster_ca_certificate = file("<PATH_TO_CA_CERT>")

resource "kubernetes_namespace" "example" {

metadata {

name = "example"

}
}

resource "kubernetes_deployment" "nginx" {

metadata {

name = "nginx-deployment"

namespace = kubernetes_namespace.example.metadata[0].name

spec {

replicas = 2

selector {

match_labels = {

app = "nginx"

}
}

template {

metadata {

labels = {
app = "nginx"

spec {

container {

name = "nginx"

image = "nginx:latest"

port {

container_port = 80

Déploiement avec Terraform


Pour déployer vos ressources Kubernetes avec Terraform, exécutez les commandes suivantes :

terraform init

terraform apply -auto-approve


Utilisation d'Ansible

Vous pouvez utiliser Ansible pour gérer vos applications sur Kubernetes.

Playbook deploy.yml

---

- name: Déployer une application sur Kubernetes

hosts: localhost

tasks:

- name: Appliquer le manifeste Kubernetes pour Nginx Deployment

kubernetes.core.k8s:
state: present

definition:

apiVersion: apps/v1
kind: Deployment

metadata:

name: nginx-deployment

namespace: example

spec:

replicas: 2

selector:

matchLabels:

app: nginx

template:

metadata:

labels:
app: nginx

spec:

containers:

- name: nginx

image: nginx:latest
ports:

- containerPort: 80

Exécution du Playbook Ansible


Pour exécuter le playbook, utilisez la commande suivante :

ansible-playbook deploy.yml

Vous aimerez peut-être aussi