تقترح هذه المقالة أتمتة تثبيت docker على Raspberry Pi عبر Ansible باستخدام دور محلي الصنع.
المتطلبات
- تثبيت Raspbian على جهاز Raspberry Pi المستهدف، الإجراء متاح في مقالة سابقة تهيئة وتأمين Raspbian تلقائيًا على Raspberry Pi
تثبيت Docker
استرجاع الدور
لقد طورت دور Ansible لهذه الأتمة، إليك كيفية استرجاعه :
git clone https://gitlab.com/jls42/ansible-rpi-docker.git roles/ansible-rpi-dockerللمزيد من التفاصيل راجع الوثائق على ansible-rpi-docker
إنشاء ملف الجرد المسمى inventory
في مثال الجرد هذا، يمتلك Raspberry Pi عنوان IP 192.168.1.190
[rpi1]192.168.1.190 servername=rpi1إعداد 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نشر Docker
export ANSIBLE_HOST_KEY_CHECKING=Falseansible-playbook -b -i inventory docker-rpi.ymlالنتيجة:
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.35ssetup ------------------------------------------------------------------- 3.35s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~total ----------------------------------------------------------------- 255.70sPlaybook run took 0 days, 0 hours, 4 minutes, 15 secondsjls42@boo:~/rpi$التحقق
نتصل بـ Raspberry Pi لتأكيد نجاح تثبيت Docker
jls42@boo:~/rpi$ ssh pi@192.168.1.190Linux 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 theindividual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.Last login: Sun Dec 9 00:25:01 2018 from 192.168.1.42pi@rpi1:~ $ docker --versionDocker version 18.06.1-ce, build e68fc7aاستمتع!
تمت ترجمة هذا المستند من النسخة الفرنسية إلى اللغة العربية باستخدام النموذج gpt-5-mini. لمزيد من المعلومات حول عملية الترجمة، راجع https://gitlab.com/jls42/ai-powered-markdown-translator