Ez a cikk végigvezeti Önt a Meteor alkalmazás Ubuntu 14.04-et futtató Vultr VPS-en való üzembe helyezésében. Működhet más Linux-disztribúciókon is (saját felelősségére).
Egy zseniális fickó, Arunoda Susiripala, aki meglehetősen aktív a Meteor közösségben, kifejlesztett egy mupx nevű telepítőeszközt (a "Meteor Up X" rövidítése), amely rendkívül egyszerűvé teszi a Meteor alkalmazás távoli kiszolgálóra való telepítését ssh-n keresztül. A Mupx a mup utódja. Végigvezetjük a folyamaton az elejétől a végéig. Szerencsére a Mup végzi a nehézemelés nagy részét, szóval ez gyerekjáték lesz!
Első lépésünk a mupx telepítése. Ezt a fejlesztői munkaállomáson kell megtennie, nem a VPS-kiszolgálón! Győződjön meg arról, hogy a Node.js már telepítve van, és futtassa:
$ npm install -g mupx
A telepítés befejezése után lépjen be a Meteor projekt mappájába, pl. /projects/myApp, és futtassa a következő parancsokat:
$ mkdir .deploy
$ cd $_
$ mupx init
Azok számára, akik nem ismerik a $_szintaxist, ez egy parancsikon a parancsban használt utolsó argumentumhoz. Tehát ebben az esetben a következőképpen cd $_hajtja végre: cd .deploy.
A következő kimenetet fogja látni:
Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file : settings.json
Empty Project Initialized!
Az inicializálási folyamat két fájlt hoz létre, mup.jsonés settings.json. Az utóbbi fájlt most békén hagyjuk. Menj és nyisd ki mup.json. A cikk írásakor az alapértelmezett így mup.jsonnéz ki:
{
// Server authentication info
"servers": [
{
"host": "hostname",
"username": "root",
"password": "password",
// or pem file (ssh based authentication)
// WARNING: Keys protected by a passphrase are not supported
//"pem": "~/.ssh/id_rsa"
// Also, for non-standard ssh port use this
//"sshOptions": { "port" : 49154 },
// server specific environment variables
"env": {}
}
],
// Install MongoDB on the server. Does not destroy the local MongoDB on future setups
"setupMongo": true,
// Application name (no spaces).
"appName": "meteor",
// Location of app (local directory). This can reference '~' as the users home directory.
// i.e., "app": "~/Meteor/my-app",
// This is the same as the line below.
"app": "/path/to/the/app",
// Configure environment
// ROOT_URL must be set to your correct domain (https or http)
"env": {
"PORT": 80,
"ROOT_URL": "http://myapp.com"
},
// Meteor Up checks if the app comes online just after the deployment.
// Before mup checks that, it will wait for the number of seconds configured below.
"deployCheckWaitTime": 15,
// show a progress bar while uploading.
// Make it false when you deploy using a CI box.
"enableUploadProgressBar": true
}
Meg kell változtatnunk néhány dolgot, hogy a beállítási folyamat működjön.
Először győződjön meg arról, hogy beállította hostVPS IP-címét, például:
"host": "123.123.123.123",
Ha az alapértelmezett 22-től eltérő portszámot kell használnia, akkor ezt a sshOptionsmező használatával teheti meg , például:
"host": "123.123.123.123",
"sshOptions": { "port": 9876 },
Állítsa be az usernameértéket arra a felhasználóra, aki birtokolni szeretné a Meteor alkalmazás telepítését. Azt javaslom, hogy biztonsági okokból távolítsa el a jelszót, és használjon helyette SSH-kulcsot. Törölje az pemértéket tartalmazó sort, és győződjön meg arról, hogy az a titkos SSH-kulcsra mutat, amely megfelel a VPS-re telepített nyilvános SSH-kulcsnak (in /root/.ssh/authorized_keys). Ügyeljen arra, hogy a jelszó sor után vesszőt írjon! Ha az SSH-kulcshoz jelszó van csatolva, távolítsa el a pemsort teljesen, és győződjön meg arról, hogy az SSH privát kulcsa gyorsítótárban van egy ssh-ügynökben (pl. Mac-en ssh-add <path to ssh private key>).
Hagyja setupMongobeállítva az alapértelmezett értéket.
Módosítsa appNamea Meteor alkalmazás nevére. A mi esetünkben:
"appName": "myApp",
... és állítsa be az alkalmazás helyét is ehhez a telepítési mappához képest:
"app": "..",
Végül állítsa be az alkalmazás ROOT_URLszámára kijelölt URL-t. Explicit módon állítsa be a portszámot a szabványos HTTP-portra.
// Configure environment
"env": {
"ROOT_URL": "http://myapp.com",
"PORT": 80
},
Ez az! Mentse el a mup.jsonfájlt, majd futtassa:
$ mupx setup
Ekkor a mupx ssh-t küld a VPS-be, telepíti a Dockert, beállítja a környezetet, és letölti a megfelelő Docker-képfájlokat. Most helyezze üzembe az alkalmazást:
$ mupx deploy
Ha most megnyitja http://123.123.123.123a webhelyet, az alkalmazás megjelenik az oldal betöltésekor.
Többmagos támogatás
Ha a VPS több maggal rendelkezik, a Meteor alkalmazás kihasználhatja ezt. Csak néhány gyors változtatást kell végrehajtanunk.
Először telepítenie kell a fürtcsomagot. Lépjen be a Meteor alkalmazás mappájába (ebben a példában /projects/myApp), és írja be:
$ meteor add meteorhacks:cluster
Most szerkessze a mup.jsonfájlt, és módosítsa a környezeti változó szakaszt, így:
// Configure environment
"env": {
"ROOT_URL": "http://myapp.com",
"PORT": 80,
"CLUSTER_WORKERS_COUNT": "auto"
},
Mivel új csomagot adtunk az alkalmazásához, újra kell telepítenie.
$ mupx setup && mupx deploy
Ha bármikor módosítani szeretné a környezeti változókat mup.jsonanélkül, hogy a teljes alkalmazást üzembe kellene helyeznie, egyszerűen használja az újrakonfigurálási parancsot. Ez akkor hasznos, ha nem történt alkalmazásmódosítás.
$ mupx reconfig
Gratulálunk, a Meteor alkalmazás már működik és fut! Ezenkívül az alkalmazás automatikusan elindul, amikor a VPS újraindul. Tartsa szemmel a Meteor telepítéséről és kezeléséről szóló jövőbeli cikkeket.