Install Mosquitto mqtt broker using docker-compose

Install mosquitto using docker-compose

MQTT הנו פרוטוקול העברת הודעות "קל משקל" בעל מודל המושתת על פרוטוקול TCP / IP ומשמש לתקשורת בין מכשירי IOT כגון ESP8266, Raspberry Pi וכו '. MQTT נפוץ מאוד בעיקר במכשירים בעלי  משאבים נמוכים ויישומים המופעלים באמצעות סוללות כמו אוטומציה ביתית, מערכות אזעקה, אבטחה ורשתות חיישנים המופעלות באמצעות סוללה.

Mosquitto הוא מתווך (broker) להודעות קוד פתוח המיישם פרוטוקולי MQTT. בעזרת התמיכה הרבה של הקהילה, וקלות ההתקנה הוא הפך לאחד ממתווכי ה MQTT הפופולריים ביותר.

במדריך זה אסביר כיצד להתקין ולהגדיר קונטיינר של Mosquitto באמצעות docker-compose, אך לפני שנתחיל יש לוודא כי התקנתם docker ו docker-compose על פי המדריך הבא.

שלב א' – הכנת קבצי הקונפיגורציה

היות וה container של Mosquitto משתמש בקבצי הגדרות המכילים את מדיניות ההתחברות (חסימה של התחברות ללא סיסמה) וכן קובץ ססמאות יש לדאוג תחילה להכין תיקיה עם אותם קבצים ורק אז להתקין את הקונטיינר. לשם כך, צרו תיקייה חדשה בשם mosquitto תחת תיקיית הבסיס של docker ובתוכה את 2 הקבצים הבאים.

הראשון, mosquitto.conf יכיל את ההגדרות הכלליות:

כאשר:

  • allow_anonymous false – מגדיר לשרת למנוע התחברות ללא הזדהות.
  • password_file – הנתיב לקובץ הססמאות (יכול להכיל יותר ממשתמש אחד).

כעת צרו קובץ נוסף בשם passwd ללא סיומת. בקובץ זה ינוהלו שמות המשתמש והססמאות של Mosquitto. בלשב הראשון הוסיפו לתוכו משתמשים וססמאות בצורה הבאה:

ושמרו אותו.
שימו לב כי הפרטים שמורים כ clear text אך אל דאגה, לאחר התקנת הקונטיינר נשתמש בכלי שמגיע עם mosqitto ונצפין את תוכנו.

שלב ב' – התקנת הקונטיינר באמצעות docker-compose

ערכו את קובץ ה docker-compose.yaml שלכם והוסיפו פנימה את קטע הקוד הבא:

שמרו את הקובץ, והריצו את הפקודה הבאה:

אם בצעתם הכל כראוי תוכלו לראות שהקונטיינר הותקן ורץ בצורה תקינה:

Mosquitto portainer

כפי שציינתי בשלב הקודם, קובץ הססמאות שהגדרנו הכיל הכל כטקסט פשוט וקריא והגיע הזמן להצפין את התוכן שלו. לצורך כך כתבו את הפקודה הבאה:

החליפו את הנתיב לקובץ הססמאות בזה שלכם.
כעת תוכלו לראות כי הססמאות בקובץ הוצפנו והן נראות כך:

אתחלו את הקונטיינר על מנת שהשינויים יכנסו לתוקף.

במידה ותרצו להוסיף משתמשים, כל שעליכם לעשות הוא לכתוב את הפקודה הבאה:

אם תרצו להסיר משתמש כתבו את הפקודה הבאה:

בהצלחה!

Be the first to comment

Leave a Reply

כתובת האימייל שלך לא תפורסם


*