samedi 27 janvier 2018

Ansible

Qu'est ce que Ansible?


Ansible est une plate-forme logicielle libre pour la configuration et la gestion des ordinateurs (wikipedia - Ansible). Ansible est utilisé pour créer un environnement dans l'OS
comme le fait Chef.

Comment utiliser Ansible


1. Préparatifs

Créer deux dossiers "CentOsAnsibleHost" et "CentOsAnsibleGuest" comme ça:




Et créer les machines virtuelles.
cd C:\vagrant\CentOsAnsibleHost
vagrant init bento/centos-7.3

N'oubliez pas configurer "private network" dans le Vagrantfile.


Et démarrer la machine virtuelle.
vagrant up

L'autre aussi:
cd C:\vagrant\CentOsAnsibleGuest
vagrant init bento/centos-7.3
Configurer "private network" dans le Vagrantfile. Mais utiliser "192.168.33.11" pour IP de la machine. On a besoin de utiliser un adresse IP différent de l'autre.


Et démarrer la machine virtuelle.
vagrant up


2. Installer Ansible dans la machine hôte (host).

Installer les dépendances d'Ansible dans la machine virtuelle d’adresse IP 192.168.33.10:
$ sudo yum install -y epel-release
$ sudo yum install -y sshpass python-devel python-pip
$ sudo python -m pip install paramiko PyYAML Jinja2 httplib2

Et installer Ansible:
$ sudo yum install ansible --enablerepo=epel-testing

Vérifier si c'est bien installé:
ansible --version

Si un message comme celui-ci apparaît, c'est réussi.

Pour utiliser Ansible, la commande comme celui-ci est utilisé:
ansible 192.168.33.11 -m ping
ansible: la commande d'Ansible.
192.168.33.11: Adresse IP de la machine virtuelle d'invité (guest)
-m: Option de module
ping: Le nom de module

Utiliser cette commande pour ouvrir le fichier de "hosts" d'ansible:
$ sudo vi /etc/ansible/hosts

Et ajouter ça dans le fichier:
[web]
192.168.33.11

Exécuter ces commandes dans la machine d'hôte  (192.168.33.10) et produire une clef publique.
$ sudo ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): /vagrant/id_dsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Exécuter ces commandes dans la machine d'hôte et envoyer la clef publique à l'invité (guest):
$ sudo scp /vagrant/id_dsa.pub vagrant@192.168.33.11:/vagrant
$ sudo scp /vagrant/id_dsa.pub root@192.168.33.11:/vagrant
$ cat /vagrant/id_dsa.pub >> .ssh/authorized_keys

Ecrire la clef public dans le fichier "authorized_keys" dans la machine d'invité.
$ su
(the password is "vagrant")
# cd
# /vagrant/id_dsa.pub >> .ssh/authorized_keys
# su vagrant
$ cd
$ sudo cat /vagrant/id_dsa.pub >> .ssh/authorized_keys

Changer la configuration de la certification d'hôte:
$ sudo vi /etc/ssh/sshd_config
(add "PubkeyAuthentication yes" in the sshd_config file.)
$ sudo systemctl restart sshd

Changer la configuration de la certification d'invité:
$ sudo vi /etc/ssh/sshd_config
(add "PubkeyAuthentication yes" in the sshd_config file.)
$ sudo systemctl restart sshd

Si vous voulez utiliser vagrant, exécuter cette commande comme ça dans la machine virtuelle d’adresse IP 192.168.33.10:
$ sudo ansible 192.168.33.11 -m ping -u vagrant -k
SSH password is vagrant. Ou:
$ sudo ansible 192.168.33.11 -m ping -u root

Si un message comme celui-ci apparaît, c'est réussi.


Les commandes disponibles:
    all : Utiliser tous les serveurs écrits dans ce fichier: /etc/ansible/hosts
    -m ping : Utiliser le ping module
    -s : Utiliser "sudo" pour exécuter les commandes
    -k : Demander le mot de passe.
    -u vagrant : Utiliser user "vagrant"
    -a : les arguments à transmettre au module.
et beaucoup

On peut montrer "hello".
$ sudo ansible 192.168.33.11 -a "/bin/echo hello" -u vagrant -k



3. Playbook

Dans la machine virtuelle d’adresse IP 192.168.33.10, créer "Playbook" dans /vagrant
$ cd /vagrant
$ sudo touch dstat.yaml
$ sudo vi /vagrant/dstat.yaml
Ecrire comme ça dans dstat.yaml et l'enregistrer (:wq):
- hosts: web
  tasks:
   - name: Install dstat
     become: yes
     become_method: sudo
     yum: pkg=dstat state=installed update_cache=true

Exécutez cette commande et utiliser le Playbook.
ansible-playbook -s dstat.yaml -u vagrant -k


dstat a été installé dans la machine virtuelle d’adresse IP 192.168.33.11. :) Exécutez "dstat" dans la machine virtuelle d’adresse IP 192.168.33.11:
$ dstat


Si un message comme celui-ci apparaît, c'est réussi.
Ctrl + c pour arrêter dstat.

Comme vous voyez, nous pouvons contrôler et installer les paquets dans la machine de l'adresse IP 192.168.33.11  à partir de 192.168.33.10.
De cette façon, nous pouvons installer des paquets, créer des environnements et déployer des applications Web automatiquement à partir d'un serveur.


Aucun commentaire:

Enregistrer un commentaire