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
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.vagrant init bento/centos-7.3
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
$ 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
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:
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
$ 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
(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
(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
(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
-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):$ sudo touch dstat.yaml
$ sudo vi /vagrant/dstat.yaml
- hosts: web
tasks:
- name: Install dstat
become: yes
become_method: sudo
yum: pkg=dstat state=installed update_cache=true
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.