היי! שמי דימה, אני מוביל טכנולוגיות בצוות SysOps ב-Wrike. במאמר זה, אספר לכם כיצד ליצור אתר אינטרנט קרוב ככל האפשר למשתמש ולאוטומטי את פריסתו תוך 10 דקות ובמחיר של 5 דולר לחודש. המאמר כמעט ולא קשור לבעיות שאנחנו פותרים בתוך הצוות שלנו. אלא, זהו הניסיון האישי שלי והרשמים שלי מהיכרות עם טכנולוגיה חדשה עבורי. ניסיתי לתאר את השלבים בפירוט רב ככל האפשר כדי שההוראות יהיו שימושיות לאנשים עם רמות ניסיון שונות. אני מקווה שתיהנו. בואו נתחיל!

אז אולי כבר מצאתם דרך פשוטה וזולה לארח אתר אינטרנט. אולי אפילו דרך חינמית, כפי שמתואר כאן.
אבל מה אם אתם עדיין משועממים ורוצים להתנסות בעולם הטכנולוגי החדש והאמיץ? נניח שאתם חושבים על אוטומציה של פריסות ורוצים להאיץ את האתר שלכם ככל האפשר? במאמר זה, נשתמש ב..., אך זה לא הכרחי.
אנחנו משתמשים ב-Gitlab CI/CD לאוטומציה, אבל מה לגבי האצה? בואו נפרוס את האתר ישירות ל-Cloudflare באמצעות.
מה נדרש כדי להתחיל:
גיטלב (שלך או )
ב-Cloudflare
מוּתקָן
חלק 1: התקנת הוגו
אם כבר התקנתם את הוגו, או אם אתם מעדיפים מחולל אתרים סטטי אחר (או שאתם לא משתמשים בו בכלל), תוכלו לדלג על חלק זה.
הורד את הוגו מ
מקם את קובץ ההפעלה של הוגו באחד מהקבצים המוגדרים שבילים
אנו יוצרים אתר אינטרנט חדש:
hugo new site blog.example.comשנה את הספרייה הנוכחית לזו שנוצרה זה עתה:
cd blog.example.comבחר ערכת עיצוב ( או מה שזה לא יהיה)
בואו ניצור את הפוסט הראשון:
hugo new posts/my-amazing-post.mdהוסף תוכן לקובץ שנוצר: תוכן/פוסטים/הפוסט-המדהים-שלי.md.
לאחר סיום הכל, שנה את ערך הטיוטה ל שקריצירת קבצים סטטיים:
hugo -D
עכשיו האתר הסטטי שלנו נמצא בתוך הספרייה ./פּוּמְבֵּי ומוכן לפריסה ידנית ראשונה.
חלק 2: הגדרת Cloudflare
עכשיו בואו נסתכל על ההתקנה הראשונית של Cloudflare. נניח שכבר יש לנו דומיין לאתר. כדוגמה, בואו ניקח blog.example.com.
שלב 1: צור רשומת DNS
ראשית נבחר את הדומיין שלנו, ולאחר מכן את פריט התפריט DNSאנו יוצרים בלוג A-record ומציינים עבורו כתובת IP פיקטיבית (זהו הכתובת הרשמית, אבל הם יכלו לגרום לזה להיראות יותר יפה).

שלב 2: אסימון Cloudflare
הפרופיל שלי -> אסימוני API טאב-> צור אסימון -> צור אסימון מותאם אישית

כאן תצטרכו להגביל את הטוקן לחשבונות ואזורים, אך להשאיר את אפשרות העריכה עבור ההרשאות המפורטות בתמונה.
שמור את האסימון לעיון עתידי, נצטרך אותו בחלק השלישי.
שלב 3: קבל את מזהה חשבון ומזהה אזור
תְחוּם → סקירה כללית → [צד צד ימין]
אלו שלי, בבקשה אל תשתמשו בהם :)
שמור אותם ליד האסימון, נצטרך אותם גם בחלק השלישי.
שלב 4: הפעלת עובדים
תְחוּם → עובדים → ניהול עובדים
בחרו שם ייחודי ואת התוכנית Workers → Unlimited (5 דולר לחודש היום). אם תרצו, תוכלו לעבור לגרסה החינמית מאוחר יותר.
חלק 3: פריסה ראשונה (פריסה ידנית)
ביצעתי את הפריסה הראשונה באופן ידני כדי לברר מה באמת קורה שם. למרות שכל זה יכול להיעשות בצורה פשוטה יותר:
התקנת רנגלר:
npm i @cloudflare/wrangler -gבואו נעבור למדריך הבלוגים שלנו:
cd blog.example.comהשקת רנגלר:
wrangler init — site hugo-workerצור קונפיגורציה עבור wrangler (הזן את הטוקן כשתתבקש):
wrangler config
עכשיו בואו ננסה לבצע שינויים בקובץ שיצרנו זה עתה. wrangler.toml ( רשימה מלאה של הגדרות אפשריות):
אנו מציינים מזהה חשבון ומזהה אזור
אנחנו משתנים מַסלוּל משהו כמו *blog.example.com/*
אנו מציינים שקר עבור עובדים
שנה את הדלי ל-./public (או היכן ממוקם האתר הסטטי שלך)
אם יש לך יותר מדומיין אחד בנתיב, עליך לתקן את הנתיב בסקריפט העובד: אתר-עובדים/אינדקס.js (ראה פונקציה handleEvent)
מצוין, הגיע הזמן לפרוס את האתר באמצעות הפקודה wrangler publish.
חלק 4: אוטומציה של פריסה
מדריך זה נכתב עבור Gitlab, אך הוא מקבל את העיקר והפשטות של פריסות אוטומטיות באופן כללי.
שלב 1: יצירה והגדרה של הפרויקט שלנו
צור פרויקט GitLab חדש והעלה את הספרייה site: blog.example.com כאשר כל התוכן צריך להיות ממוקם בספריית השורש של הפרויקט
אנחנו שואלים משתנה CFAPITOKEN כָּאן: הגדרות → CI / CD → משתנים
שלב 2: צור קובץ .gitlab-ci.yml והפעל את הפריסה הראשונה
צור קובץ .gitlab-ci.yml בשורש עם התוכן הבא:
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #בואו נריץ את הפריסה הראשונה באופן ידני (CI/CD → צינורות → הפעל צינור) או על ידי שליחת קומיט לענף הראשי. וואלה!
מסקנה
ובכן, אולי קצת הגזמתי בחשיבותו, וכל התהליך לקח קצת יותר מעשר דקות. אבל עכשיו יש לכם אתר מהיר עם פריסה אוטומטית וכמה רעיונות חדשים למה עוד תוכלו לעשות עם Workers.
מקור: www.habr.com
