TD1

Correction exercice 1

Exercice 1 étape 1
Étape 1 : Initialisation du dépôt Git et premier commit.

git init
git add fichier.c
git commit -m "V1"
git switch -c develop
git add fichier.c
git commit -m "V2"
git switch master
git add fichier.c
git commit -m "V3"
            
Exercice 1 étape 2
Étape 2 : Création d'une branche 'develop' et ajout de fonctionnalités.

git switch -c feature
git add fichier.c
git commit -m "V4"
git switch develop
git add fichier.c
git commit -m "V5"
git switch master
git merge develop
git switch feature
git add fichier.c
git commit -m "V6"
git switch master
git merge feature
git switch develop
git add fichier.c
git commit -m "V7"
git switch -c fix
git add fichier.c
git commit -m "V8"
git add fichier.c
git commit -m "V9"
            
Exercice 1 étape 3
Étape 3 : Fusion de la branche 'develop' dans 'master'.

git switch develop
git add fichier.c
git commit -m "V10"
git merge fix
git switch master
git merge develop
            

Exercice git stash

On suppose qu'on est à l'intérieur d'une branche 'develop' où on a des modifications courantes (pas complètes), puis on nous a contacté pour corriger un problème dans la branche 'master' sur le fichier "main.js".

On va corriger cela et reprendre nos modifs dans la suite.

Donner la séquence de commandes git à effectuer dans ce genre de situation :


# Sauvegarder les modifications en cours
git stash push

# Basculer sur la branche 'master'
git checkout master

# Corriger le fichier main.js
# (apporter les modifications nécessaires)

# Ajouter et committer la correction
git add main.js
git commit -m "Correction du bug sur main.js"

# Revenir sur la branche 'develop'
git checkout develop

# Récupérer les modifications sauvegardées
git stash pop
            

YAML

Convertir les données JSON suivantes vers YAML :


{
    "hosts": "web servers",
    "tasks": [
      {
        "name": "delete file",
        "file": {
          "path": "/var/www/html/index.html",
          "state": "absent"
        }
      },
      {
        "name": "upload app",
        "copy": {
          "src": "index.html",
          "dest": "/var/www/html",
          "mode": 0777,
          "notify": ["Restart"]
        }
      }
    ],
    "handlers": [
      {
        "name": "Restart",
        "service": {
          "name": "apache2",
          "state": "restarted"
        }
      }
    ]
}
            

La conversion en YAML donne :


hosts: web servers
tasks:
  - name: delete file
    file:
      path: /var/www/html/index.html
      state: absent

  - name: upload app
    copy:
      src: index.html
      dest: /var/www/html
      mode: '0777'
      notify:
        - Restart

handlers:
  - name: Restart
    service:
      name: apache2
      state: restarted
            

Remarque : Pour les droits de fichier, '0777' est entre guillemets pour préserver la notation octale en YAML.

Un exemple de YML sur Ansible : Exemple de YML sur Ansible

Pour comprendre l'histoire de notation octale : Exemple de notation octale en YAML

Liste des modules pour Ansible qu'on utilisera pour les TPs :

Module apt :


- name: Installer des paquets
  apt:
    name:
      - package1
      - package2
      - package3
    update_cache: yes
            

Module service :


- name: Gérer un service
  service:
    name: nom_du_service
    state: started
            

Module ping :


- name: Tester la connectivité
  ping:
    data: pong
            

Module shell :


- name: Exécuter une commande shell
  shell: "votre_commande_ici"
  register: result
            

Dans ces exemples, nous utilisons différents modules Ansible pour accomplir des tâches courantes. Assurez-vous de remplacer les valeurs de paramètre par celles qui conviennent à votre contexte.

Notes Complémentaires

Prise de notes sur les éléments non abordés ou mal expliqués dans le cours PDF.