--- title: פריסה | Deployment slug: deploying date: 0002/01/02 number: 2.5 sidebar: true photoUrl: http://www.flickr.com/photos/monomaniacgarage/10703829133/ photoAuthor: Monomaniacgarage contents: למדו כיצד לפרוס על Meteor.com.| למדו כיצד לפרוס על Modulus | למדו כיצד לפרוס על שרת משלכם באמצעות Meteor Up. paragraphs: 46 --- הרבה אנשים אוהבים לעבוד על פרוייקט בחשאי, עד שהוא מושלם. אחרים, רוצים להראות אותו לעולם בהקדם האפשרי. אם אתם מסוג האנשים שמעדיפים לפתח בסביבה מקומית כרגע, הרגישו חופשיים לדלג מעל הפרק הזה כרגע. עם זאת, אם אתם רוצים להבין כיצד לפרוס / לפרסם את אפליקציית מטאור באופן מקוון עכשיו, הפרק הזה דואג לכל צרכיכם. בפרק זה נלמד איך לפרוס (deploy) אפליקציית מטאור במספר דרכים שונות. הרגישו בנוח לנסות כל אחת מהדרכים בשלבים שונים של תהליך הפיתוח שלכם, בין אם תעבדו על Microscope או כל אפליקציית מטאור אחרת. בואו נתחיל! <% note do %> ### נעים להכיר: SideBars זהו פרק ***תפריט צד***. פרקים כאלה מאפשרים מבט מעמיק לנושאי מטאור כלליים באופן בלתי תלוי ביתר הספר. אם תרצו להמשיך בבניית אפליקציית מיקרוסקופ, תוכלו לדלג על פרק זה כרגע, ולחזור אליו מאוחר יותר. <% end %> ### פריסת אפליקציות במטאור פריסה (deployment) של אפליקצייה תחת הסאב-דומיין של מטאור (לדוגמא, `http://myapp.meteor.com`) היא האופציה הקלה ביותר, והראשונה שננסה. אופציה זו נוחה על מנת להציג את האפליקציה בשלבים ראשוניים, או על מנת להקים בזריזות סביבת בדיקות. פריסת האפליקציה על שרתי מטאור קלה מאוד. פתחו את הטרמינל שלכם, נווטו לספרייה בה נמצאת אפליקציית מטאור שלכם, וכתבו ~~~bash $ meteor deploy myapp.meteor.com ~~~ כמובן שתצטרכו להחליף את "myapp" לשם לבחירתכם, וגם כזה שאינו נמצא כבר בשימוש. אם זו הפעם הראשונה שבה אתם פורסים אפליקציה, תצטרכו להרשם עם חשבון מטאור. אם הכל עובד כשורה, תוך מספר שניות תוכלו לגשת לאפליקציה שלכם בכתובת `http://myapp.meteor.com`. תוכלו לעיין ב-[תיעוד הרשמי של מטאור](http://docs.meteor.com/#deploying) כדי לקבל מידע נוסף כגון גישה למסד הנתונים של האפליקציה שפרסתם, או לגבי קונפיגורציה של דומיין משלכם עבור האפליקציה. ### פריסה על Modulus [מודולוס modulus.io](https://modulus.io/) הוא אופציה מצוינת לפריסת אפליקציות מבוססות node.js. זהו אחד מספקי התשתית-כשירות (platform-as-a-service) שתומכים באופן רשמי במטאור, וישנם כבר לא מעט אנשים שמריצים אפליקציות מטאור בפרודקשן עליה. תוכלו ללמוד יותר על מודולוס מקריאת ה[מדריך לפריסת אפליקציות מטאור במודולוס](http://help.modulus.io/customer/portal/articles/1647770-using-meteor-with-modulus). ### Meteor Up למרות שהרבה פתרונות מבוססי ענן צצים כל יום, הרבה מהם מגיעים עם בעיות והגבלות. לפיכך, פריסה על שרת עצמאי נותרת האופציה הטובה ביותר לפרוס אפליקציה בפרודקשן. עם זאת, הדבר לא קל, בוודאי אם רוצים לפרוס לסביבת לקוחות אמיתית. [מטאור up](https://github.com/arunoda/meteor-up) (או `mup` בקיצור) הוא עוד ניסיון להקל עליכם המפתחים, באמצעות כלי שורת-פקודה שמבצע התקנה ופריסה עבורכם. בואו נראה כיצד לפרוס אפליקציית מטאור באמצעות Meteor Up. לפני שמתחילים, תצטרכו שרת לדחוף את האפליקציה אליו. אנו ממליצים על [Digital Ocean](http://digitalocean.com), שתוכניות הפריסה שלו מתחילות ב-5$ לחודש, או על[AWS](http://aws.amazon.com/) שמאפשרת לפרוס שרת בסיסי בחינם, אבל מהר מאוד דורשת תשלום, אם כי הדבר מאפשר לשחק עם Meteor Up בשלב זה. לא משנה באיזה שרת תבחרו, תצטרכו את כתובת ה-IP של השרת שלכם, את שם המשתמש שלכם (בדרך כלל: root) ואת הסיסמא. שמרו אותם במקום בטוח, כי תיכף נצטרך אותם! ### איתחול Meteor Up על מנת להתחיל, נצטרך להתקין את מטאור באמצעות `npm` כך: ~~~bash $ npm install -g mup ~~~ עתה ניצור מחיצה נפרדת שתכיל את הגדרות Meteor Up עבור הפריסה הספציפית הזו. אנו משתמשים במחיצה נפרדת בשל 2 סיבות עיקרוניות: קודם כל, עדיף לשמור פרטי התקשרות פרטיים מחוץ למאגר ה-git שלכם, בייחוד אם אתם עובדים על בסיס קוד פומבי. שנית, על ידי שימוש בספריות נפרדות, תוכלו לנהל מספר קונפיגורציות של meteor up במקביל. כך למשל תוכלו לפרוס לסביבת בדיקות ולסביבת פרודקשן (לקוחות) למשל. אם כך, בואו ניצור את המחיצה ונאתחל אותה לפרוייקט Meteor up חדש: ~~~bash $ mkdir ~/microscope-deploy $ cd ~/microscope-deploy $ mup init ~~~ <% note do %> ### שיתוף באמצעות Dropbox דרך מצוינת להבטיח שאתם וכל הצוות שלכם עובדים באותה קונפיגורציה, היא פשוט לשתף את המחציה שמכילה את הגדרות Meteor Up באמצעות דרופבוקס (Dropbox) או שירות דומה אחר. <% end %> ### Meteor Up Configuration כאשר מתחילים פרוייקט חדש, Meteor Up יצור עבורכם שני קבצים:`mup.json` ו-`settings.json`. `mup.json` יכיל את כל העדפות הפריסה שלכם, ולעומתו `settings.json יכיל את כל נתוני האפליקציה שלכם (Oauto token, analytics token וכו'). הצעד הבא שלכם יהיה לשנות את `mup.json` בהתאם להעדפותיכם. הנה דוגמה לקובץ `mup.json` ברירת מחדל שנוצא באמצעות `mup init`, וכל שאתם צריכים הוא להשלים את החסר: ~~~js { //server authentication info "servers": [{ "host": "hostname", "username": "root", "password": "password" //or pem file (ssh based authentication) //"pem": "~/.ssh/id_rsa" }], //install MongoDB in the server "setupMongo": true, //location of app (local directory) "app": "/path/to/the/app", //configure environmental "env": { "ROOT_URL": "http://supersite.com" } } ~~~ <%= caption "mup.json" %> בואו נביט בהעדפות הללו צעד-צעד: **אותנטיקציה עם השרת: Server Authentication** תבחינו ש-Meteor Up תומך באותנטיקציה (אימות זהות) מבוססת סיסמא ומבוססת מפתח פרטי (PEM), כך שניתו להשתמש בכלי באמצעות כמעט כל שירות ענן בנמצא. **הערה חשובה:** אם תבחרו להשתמש באותנטיקציה מבוססת סיסמא, אנא ודאו שהתקנתם`sshpass` כצעד ראשון. השתמשו ([במדריך הזה](https://gist.github.com/arunoda/7790979)) **הגדרת מסד הנתונים MongoDB** הצעד הבא הוא להגדיר את מסד הנתונים שלכם, מסוג MongoDB, עבור האפליקציה. אנו ממליצים על [Compose](https://www.compose.io) או כל ספק MongoDB, כיוון שהם מספקים שירות מקצועי וכלי ניהול טובים. אם החלטתם להשתמש ב-Compose, סמנו את `setupMongo` כ-`false` והוסיפו משתנה סביבה `MONGO_URL` בקובץ `mup.json` בחלק ה-`env` שלו. אם החלטתם לארח את MongoDV באמצעות Meteor Up, כל שעליכם לעשות הוא לסמן את `setupMongo` כ- `true`, ומטאור יעשה את השאר. **נתיב אפליקציית מטאור** כיוון ש-Meteor Up שלנו "חי" במחיצה אחרת, נצטרך להפנות את מטאור למחיצה בה נמצאת האפליקציה שלנו באמצעות ערך ה-`app`. פשוט כתבו בערך זה את הנתיב המלא לאפליקציה, אותו ניתן לקבל כאשר משתמשים בפקודה `pwd` כאשר נמצאים במחיצת האפליקציה בטרמינל. **משתני סביבה** תוכלו לציין את כל משתני הסביבה שלכם (כגון `ROOT_URL`, `MAIL_URL`, `MONGO_URL` וכדומה) בתוך חלק ה- `env` שבקובץ. ### הקמה ופריסה לפני הפריסה, נצטרך להכין את השרת כך שהוא יכול לארח אפליקציית מטאור. הקסם ב-Meteor Up מכניס את התהליך המורכב הזה לפקודה אחת ויחידה! ~~~bash $ mup setup ~~~ פקודה זו תיקח מספר דקות לרוץ, בהתאם לאיכות השרת ולחיבוריות הרשת. לאחר שההכנה לפריסה הצליחה, נוכל סוף סוף לפרוס את האפליקציה שלנו באמצעות: ~~~bash $ mup deploy ~~~ פקודה זו תארוז את אפליקציית מטאור שלנו, ותפרוס אותה לשרת שהקמנו. ### Displaying Logs הדפסות יומן (logs) הינן חשובות מאוד ו-Meteor Up מאפשר דרך קלה מאוד לעקוב אחריהן, שמדמה את הפקודה `tail -f`. פשוט כתבו: ~~~bash $ mup logs -f ~~~ תיאור זה מהווה סקירה לגבי יכולות הכלי Meteor Up. לעוד מידע, אנו מציעים שתבקרו ב-[Meteor Up's GitHub repository](https://github.com/arunoda/meteor-up). שלוש דרכים אלה לפרוס אפליקציות מטאור אמורות להספיק לרוב תרחישי השימוש. כמובן שאנו מודעים לכך שחלקכם תרצו להיות יותר בשליטה ולבנות שרת לאפליקציית מטאור מאפס. זה נושא ליום אחר... ואולי לספר אחר!