Ouroboros היא תחליף ל Watchtower ששמה דגש על קריאות, וכתובה בפייתון 3. המערכת מנטרת (בין אם את כל או רק חלק) קונטיינרים שרצים ותעדכן אותם (לגרסה האחרונה או על פי תגיות גרסה ספציפיות). הגדרת הקונטייר המתעדכן, הכוללות את הרשתות, ווליומים, משתני סיסבה ועוד ישמרו וישארו בדיוק כפי שהוגדרו עם יצירתו של הקונטיינר. במדריך זה אסביר על שלבי ההתקנה והגדרה של Ouroboros.
שלב א' – התקנת Ouroboros באמצעות Docker-Compose
במדריך זה אשתמש ב docker-compose על מנת להתקין את הקונטיינר ולהבסיר אודות ההגדרות והמאפיינים השונים של המערת. לצורך כך פתחו את קובץ ה docker-compose.yaml שלכם והדביקו פנימה את הטקסט הבא:
version: "3.7"
services:
auto-updater:
image: pyouroboros/ouroboros:latest
container_name: ouroboros
restart: unless-stopped
environment:
- CLEANUP=true #delete old images after update
- DOCKER_SOCKETS="unix://var/run/docker.sock"
- INTERVAL=300
- LOG_LEVEL=info
#make ouroboros self-updating
- SELF_UPDATE=true
#get auto-update config from labels and only labels. If a container is not labeled to auto update, don't autoupdate
- LABEL_ENABLE=true
- LABELS_ONLY=true
- TZ=${TZ}
- NOTIFIERS=""
#this string means every 30 minutes of every hour of every day of every month at every day of the week
- CRON="*/30 * * * *"
labels:
- "traefik.enable=false"
- "com.ouroboros.enable=true" #Yes, it can watch and update itself
volumes:
#allows ouroboros to monitor for changes and to read labels
- /var/run/docker.sock:/var/run/docker.sock ###Comment this line out in Windows
כאשר:
- CLEANUP – קובע האם לבצע ניקוי לאחר העדכון (שכבות).
- INTERVAL – קביעת זמנים לבדיקת עדכונים.(ניתן להשתמש גם ב CRON).
- SELF_UPDATE – כן, הקונטיינר יודע לעדכן את עצמו.
- NOTIFIERS – שליחת נוטיפיקציות (אוסיף דוגמה בהמשך).
- LABEL_ENABLE – האם להשתמש בתגיות של הקונטיינרים כתנאי לעדכון.
- LABELS_ONLY – האם להשתמש רק בתגיות עבור עדכון.
כעת, כתבו את הפקודה הבאה על מנת להתקין את הקונטיינר:
sudo docker-copmose up -d
אם ביצעתם את הכל כראוי, תוכלו לראות שהקונטייר הותקן ורץ:
חלק ב' – שליחת נוטיפיקציות מהמערכת
כפי שציינתי בחלקו הקודם של המדריך, ניתן לשלוח הודעות כאשרהתבצע עדכון. שליחת העדכון מתבצעת באמצעות Apprise. השימוש ב Apprise מאפשר גמישות רבה בכל הנוגע בשליחת ההודעות היות והיא תומכת בשליחת הודעות במגוון ערוצים ותוכנות כמו Telegram, Pushbullet ועוד כפי שניתן לראות כאן.
בדוגמה הבאה אסביר כיצד ניתן לשלוח הודעות ל Terlgram. אך תחילה יש לפתוח Telgram Bot על פי המדריך הבא.
כעת, פתחו את קובץ ה docker-compose שלכם ועדכנו את השורה הבאה תחת Environment:
NOTIFIERS=""
כדי שתראה כך:
NOTIFIERS=tgram://BotToken/ChatId
כאשר:
- BotToken – הטוקן של הבוט.
- ChatId – ה ID שלך כמשתמש עבור קבלת ההתראות.
כעת הריצו את הפקודה הבאה על מנת שהקונטיינר יתעדכן בשינויים:
docker-compose up -d
אם ביצעתם את ההגדרה כראוי, נקבל הודעה ש ouroboros עלה ומתחיל לבדוק עדכונים:
וכאשר קונטיינר התעדכן נקבל את ההודעה הבאה:
חלק ג' – ניהול העדכונים וקביעת החרגות
כפי שציינתי בחלק הראשון של המדריך, אחד הפיצ'רים החשובים של המערכת הוא היכולת לקבוע איזה קונטיינרים יתעדכנו ואיזה לא. את הקביע ניתן לבצע ב-2 דרכים עקריות.
הראשונה – Ignore List הפחות מועדפת עלי, יותר קשה לנהל. ניתן לביצוע על ידי הוספת הגדרה IGNORE למשתני הסביבה בצורה הבאה:
IGNORE="mariadb influxdb mongo postgres"
השניה (והמועדפת עלי) – שחמוש בתגיות:
על מנת לשלוט בעדכונים בצורה נוחה יותר ניתן להוסיף לקונטיינרים השונים את התגית הבאה שתגדיר האם לעדכן או לא:
labels:
- "com.ouroboros.enable=true"
בהצלחה!
Leave a Reply