cloud-init Generator

קובץ הכנה לשרת Ubuntu Server 24.04 LTS חדש, להדבקה בשדה user-data כשיוצרים את השרת. הוא מכין את השרת, ולא פורס כלום.

הגדרות השרת

מערכת הפעלה

Ubuntu Server 24.04 LTS

הגרסה היחידה שהקובץ נבדק מולה בשלב זה.
אחד בכל שורה, למשל התוכן של ‎~/.ssh/id_ed25519.pub. חובה, כי כניסה בסיסמה מנוטרלת. המפתחות נשארים בעמוד: הם לא נשמרים, לא נכנסים לקישור ולא נשלחים לשום מקום.
המשתמש שאיתו מתחברים ב-SSH. הוא מקבל sudo.
מצב חשיפה
האפליקציות מאזינות רק על 127.0.0.1, וניגשים אליהן דרך SSH tunnel. ‏ufw מתיר SSH.
פותח 2222/tcp. רק במצב חשיפה עם proxy.
כבוי כברירת מחדל: קבוצת docker שקולה להרשאות root. בלעדיה מריצים sudo docker ….
התועלת קטנה כשכניסה בסיסמה מנוטרלת; זמין למי שרוצה.
עוזר בשרתים קטנים; לא מחליף RAM.
שם של IANA, למשל Etc/UTC או Asia/Jerusalem.
ריק משאיר את השם שהספק קובע.

הקובץ שנוצר

הוסיפו לפחות מפתח SSH ציבורי אחד כדי ליצור את הקובץ.

הכנה, לא פריסה

  • אנרוק לא מקים שרתים, לא מתחבר לספקים ולא נכנס לשום מקום. את הקובץ מדביקים בעצמכם כשיוצרים שרת, אצל ספק לבחירתכם.
  • הקובץ לא מפעיל שום Docker Compose. קודם ממלאים את ה-placeholders בקבצי ה-Compose, ואז מפעילים בעצמכם.
  • ‏ufw מגן על שירותים שרצים ישירות על השרת, כמו SSH. הוא לא מסנן פורטים שקונטיינרים של Docker מפרסמים, כי Docker מנתב אותם לפני ש-ufw רואה אותם. אל תפרסמו פורטים שאינכם צריכים.
  • בלי סיסמאות: הסיסמה של המשתמש נעולה, ומתחברים עם המפתח.

היקף נתמך

מערכת הפעלה
‏Ubuntu Server 24.04 LTS בלבד. גרסאות נוספות יתווספו אחרי אימות.
ארכיטקטורה
‏amd64 נבדקת. ‏arm64 נתמכת ב-Docker, אבל ה-images של האפליקציות לא נבדקו.
Schema
ה-schema הרשמי של cloud-config מ-cloud-init ‏26.2, מוצמד במנוע.
Docker
‏Docker Engine ו-Compose plugin מ-download.docker.com. מפתח החתימה מוטמע; טביעת האצבע: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88.

איך משתמשים

  1. מדביקים את מפתח ה-SSH הציבורי ובוחרים אפשרויות.
  2. מעתיקים את הקובץ או מורידים את user-data.yaml.
  3. כשיוצרים שרת Ubuntu 24.04, מדביקים אותו בשדה שהספק קורא לו user data, ‏cloud-init או custom data.
  4. אחרי העלייה הראשונה מתחברים ב-ssh עם שם המשתמש שבחרתם. העלייה הראשונה ארוכה בכמה דקות, כי המערכת מתעדכנת ו-Docker מותקן.

ידוע כמקבלים user-data

ל-cloud-init יש datasource מובנה עבור הספקים האלה. זה מידע ולא המלצה; לא בדקנו אף אחד מהם.

  • AWS EC2
  • Azure
  • Google Cloud
  • DigitalOcean
  • Vultr
  • Akamai (Linode)
  • UpCloud
  • Scaleway
  • Oracle Cloud
  • OpenStack
  • Hetzner

שאלות

מה זה cloud-init?
הכלי הסטנדרטי שמגדיר שרת ענן בעלייה הראשונה שלו. הוא קורא קובץ user-data; קובץ שמתחיל ב-#cloud-config מתאר את ההגדרות ב-YAML.
המפתחות שלי נשלחים לאנשהו?
לא. הקובץ נוצר בדפדפן. המפתחות לא נשמרים, לא נכנסים לקישור של העמוד ולא נשלחים לאנרוק או ל-analytics. קישור משותף מכיל רק את האפשרויות, ואת המפתחות מדביקים מחדש.
מה אם הדבקתי מפתח פרטי בטעות?
השדה מתרוקן מיד ומוצגת אזהרה. שום דבר לא נשמר או נשלח, אבל המפתח היה בלוח ההעתקה, ולכן כדאי להחליף אותו.
הקובץ נבדק?
כל קובץ נבדק בדפדפן מול ה-schema הרשמי של cloud-config בגרסת cloud-init המוצמדת. בדיקת schema מאשרת את המבנה; היא לא מעלה שרת.
למה המשתמש לא בקבוצת docker?
חברות בקבוצת docker שקולה להרשאות root. האפשרות קיימת, אבל כבויה כברירת מחדל; בלעדיה משתמשים ב-sudo docker.
הוא מפעיל את האפליקציות שלי?
לא. הוא מתקין Docker ומכין את השרת. הפעלת Compose היא שלב נפרד, שעושים אחרי שממלאים את ההגדרות שלו.