Rechercher

raspberry-piinfrastructure

Installation automatique avec Ansible de Docker sur Raspberry Pi

Installation automatique avec Ansible de Docker sur Raspberry Pi

Cet article propose d’automatiser l’installation de docker sur Raspberry Pi via Ansible avec un rôle fait maison.

Pré-requis

Installation de Docker

Récupération du rôle
J’ai développé un rôle ansible pour cette automatisation, voici comment le récupérer :

git clone https://gitlab.com/jls42/ansible-rpi-docker.git roles/ansible-rpi-docker

Pour plus de détail aller voir la documentation sur ansible-rpi-docker

Création du fichier d’inventaire nommé inventory
Dans cet exemple d’inventaire le Raspberry Pi possède l’ip 192.168.1.190

[rpi1]
192.168.1.190 servername=rpi1

Préparation du playbook docker-rpi.yml

---
- name: "Installation de Docker sur le Raspberry Pi"
  hosts: rpi1
  remote_user: "pi"
  roles:
    - roles/ansible-rpi-docker
  vars:
    docker_version: 18.06.1~ce~3-0~raspbian

Déploiement de Docker

export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -b -i inventory docker-rpi.yml

Ce qui donne :

jls42@boo:~/rpi$ ansible-playbook -b -i inventory docker-rpi.yml

PLAY [Installation de Docker sur le Raspberry Pi] ******************************************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************************************************************************
Sunday 09 December 2018  01:20:47 +0100 (0:00:00.050)       0:00:00.051 *******
ok: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Installe les paquets nécessaires à l'utilisation d'un dépôt HTTPS] *****************************************************************************************************************************************
Sunday 09 December 2018  01:20:50 +0100 (0:00:03.350)       0:00:03.401 *******
changed: [192.168.1.190] => (item=[u'apt-transport-https', u'ca-certificates', u'curl', u'gnupg2', u'software-properties-common'])

TASK [roles/ansible-rpi-docker : Ajoute la clef officielle du dépôt Docker] ****************************************************************************************************************************************************************
Sunday 09 December 2018  01:21:41 +0100 (0:00:51.274)       0:00:54.675 *******
changed: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Ajoute le dépôt Docker] ***********************************************************************************************************************************************************************************
Sunday 09 December 2018  01:21:46 +0100 (0:00:04.766)       0:00:59.442 *******
changed: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Installe le paquet docker-ce] *****************************************************************************************************************************************************************************
Sunday 09 December 2018  01:21:57 +0100 (0:00:10.451)       0:01:09.893 *******
changed: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Installe python-pip] **************************************************************************************************************************************************************************************
Sunday 09 December 2018  01:23:14 +0100 (0:01:17.283)       0:02:27.177 *******
changed: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Installe docker-compose via pip] **************************************************************************************************************************************************************************
Sunday 09 December 2018  01:24:02 +0100 (0:00:48.630)       0:03:15.807 *******
changed: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Configure Docker pour qu'il démarre au boot] **************************************************************************************************************************************************************
Sunday 09 December 2018  01:24:58 +0100 (0:00:55.582)       0:04:11.390 *******
ok: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Ajoute l'utilisateur pi dans le groupe docker] ************************************************************************************************************************************************************
Sunday 09 December 2018  01:24:59 +0100 (0:00:01.089)       0:04:12.480 *******
changed: [192.168.1.190]

TASK [roles/ansible-rpi-docker : Supprime la swap] *****************************************************************************************************************************************************************************************
Sunday 09 December 2018  01:25:00 +0100 (0:00:01.265)       0:04:13.745 *******
changed: [192.168.1.190]

PLAY RECAP *********************************************************************************************************************************************************************************************************************************
192.168.1.190              : ok=10   changed=8    unreachable=0    failed=0

Sunday 09 December 2018  01:25:02 +0100 (0:00:02.002)       0:04:15.748 *******
===============================================================================
roles/ansible-rpi-docker ---------------------------------------------- 252.35s
setup ------------------------------------------------------------------- 3.35s
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
total ----------------------------------------------------------------- 255.70s
Playbook run took 0 days, 0 hours, 4 minutes, 15 seconds
jls42@boo:~/rpi$

Vérification

On se connecte au Raspberry Pi pour confirmer la bonne installation de Docker

jls42@boo:~/rpi$ ssh pi@192.168.1.190
Linux rpi1 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec  9 00:25:01 2018 from 192.168.1.42
pi@rpi1:~ $ docker --version
Docker version 18.06.1-ce, build e68fc7a

Enjoy !