[Linux] Premiers pas sur Git et Ansible

 

Premiers pas sur Git et Ansible

 

J’ai eu l’occasion de découvrir Git et Ansible via une formation interne. (merci Cédric!)

 

  • Git

 

Crée un compte sur Github ou sur une instance en local

Une fois le compte validé,crée son premier projet, le mien sera “update_security_centos”.

 

 

Importez ensuite sa clé public.

Aller dans Settings / Profile / SSH and GPG keys

.

 

 

 

Installer le paquet Git sur sa machine

$ sudo apt install git

 

Puis se rendre dans le projet fraîchement crée sur Github et le cloner.

$ git clone git@github.com:BEFA13/projet_ansible.git

 

Le dépôt est vide, on va créer sa structure.

En détail

inventories:

roles:

roles/security_update_centos:

roles/security_update_centos/defaults:

roles/security_update_centos/tasks:

yml:

 

  • Ansible

Installation d’Ansible

http://docs.ansible.com/ansible/latest/intro_installation.html

Pour Ubuntu (16.04)

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

 

Quelques commandes

https://fr.wikipedia.org/wiki/Git

git init​ crée un nouveau dépôt ;
git clone​ clone un dépôt distant ;
git add​ ajoute de nouveaux objets blobs dans la base des objets pour chaque fichier modifié depuis le dernier commit. Les objets précédents restent inchangés ;
git commit​ intègre la somme de contrôle SHA-1 d’un objet tree et les sommes de contrôle des objets commits parents pour créer un nouvel objet commit ;
git branch​ liste les branches ;
git merge​ fusionne une branche dans une autre ;
git log​ affiche la liste des commits effectués sur une branche ;
git push​ publie les nouvelles révisions sur le remote. (La commande prend différents paramètres) ;
git pull​ récupère les dernières modifications distantes du projet (depuis le Remote) et les fusionner dans la branche courante ;
git stash​ stocke de côté un état non commité afin d’effectuer d’autres tâches.

 

Avant d’aller plus loin, un peu de conf manuel

Pour mettre de la couleur

~/projet_ansible$ git config color.ui true

Pour recevoir les notifications par émail

~/projet_ansible$ git config user.email monadresse_email@domaine.tld

Pour afficher le nom de la personne

~/projet_ansible$ git config user.name "BEF"

Pour sélectionner l’éditeur de texte (vim; nano, emacs ..)

~/projet_ansible$ git config core.editor vim

Pour vérifier la config ci dessus (~/projet_ansible$ cat .git/config ou la commande ci dessous)

~/projet_ansible$ git config --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.editor=vim
remote.origin.url=git@github.com:BEFA13/projet_ansible.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
color.ui=true
user.email=monadresse_email@domaine.tld
user.name=BEF

 

Création des fichiers, depuis le répertoire projet_ansible.

~/projet_ansible$ vim roles/security_update_centos/tasks/main.yml

 

Dans le fichiers main.yml, on fait appel au fichier config.yml

~/projet_ansible$ vim roles/security_update_centos/tasks/config.yml

Dans le fichier config.yml, on reprend les directives du module “Manages packages with the yum package manager

 

Une fois les fichiers crées, on fait un status pour voir quel sont les modifications.

~/projet_ansible$ git status

 

Puis on add les fichiers modifiés en rouge.

~/projet_ansible$ git add roles

 

On refait un status et on voit que les fichiers sont passés en vert, ils sont prêts  a être poussés.

~/projet_ansible$ git status

 

Faire un commit des fichiers a pousser.

la fenêtre de l’éditeur va s’ouvrir et vous invite a laisser un message sur les modification apportés, puis enregistrer.

~/projet_ansible$ git status

 

Si on fait un git log, on a le commit, l’auteur, la date et le commentaire.

~/projet_ansible$ git log

 

Puis on pousse les modifications.

/!\ Sur ce tuto, je fais un test,  mais la bonne pratique est de ne jamais pousser avec la branche master.

il faut utiliser une autre branch (avec un git chechout -b nom_de_la_branche) afin qu’après relecture, la branche master puisse être utilisé après validation.

~/projet_ansible$ git push origin master
Décompte des objets: 7, fait.
Delta compression using up to 8 threads.
Compression des objets: 100% (4/4), fait.
Écriture des objets: 100% (7/7), 554 bytes | 0 bytes/s, fait.
Total 7 (delta 0), reused 0 (delta 0)
To git@github.com:BEFA13/projet_ansible.git
 * [new branch] master -> master

 

Sur la page github, il affiche bien un commit pousser

 

Les modules disponibles:

http://docs.ansible.com/ansible/latest/modules_by_category.html

 

 

No votes yet.
Please wait...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.