আমি আমার অ্যাপ্লিকেশন (নোড.জেএস) একটি ভিপিএস (লিনাক্স) এ স্থাপন করেছি। আমি গিট হাবটি সংগ্রহস্থল হিসাবে ব্যবহার করছি। গিট পুশ করে কীভাবে আমি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন স্থাপন করব?
আমি আমার অ্যাপ্লিকেশন (নোড.জেএস) একটি ভিপিএস (লিনাক্স) এ স্থাপন করেছি। আমি গিট হাবটি সংগ্রহস্থল হিসাবে ব্যবহার করছি। গিট পুশ করে কীভাবে আমি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন স্থাপন করব?
উত্তর:
পিএইচপি উদাহরণ:
আপনার গিথুব সংগ্রহস্থলে গিথুব নেভিগেট করুন "অ্যাডমিন" ক্লিক করুন
ট্যাব ক্লিক করুন 'পরিষেবা হুকস' => 'ওয়েবহুক ইউআরএল'
এবং যোগ কর
http://your-domain-name/git_test.php
তারপরে git_test.php তৈরি করুন
<?php
try
{
$payload = json_decode($_REQUEST['payload']);
}
catch(Exception $e)
{
exit(0);
}
//log the request
file_put_contents('logs/github.txt', print_r($payload, TRUE), FILE_APPEND);
if ($payload->ref === 'refs/heads/master')
{
// path to your site deployment script
exec('./build.sh');
}
বিল্ট.শে আপনাকে গিথব থেকে আপনার সাইট পুনরুদ্ধার করতে স্বাভাবিক কমান্ডগুলি লাগাতে হবে
উত্তর / মন্তব্য হিসাবে গিট হুকের কয়েকটি উল্লেখ ছিল, যা অতীতে আমার জন্য কাজ করেছে .. সুতরাং আমার রেসিপিটির জন্য অন্য কারও কাছে আরও সুনির্দিষ্ট হওয়া দরকার।
আমি সাধারণ অটো ডিপ্লোয়মেন্ট সম্পন্ন করতে গিট পোস্ট-রিসিভ হুক এবং নোড-সুপারভাইজারের সংমিশ্রণটি ব্যবহার করি (ধরে নিই যে আপনি সেই মেশিনে গিট রিমোট রিপোজিটরি ব্যবহার করছেন)।
আপনার পোস্ট-রিসিভ হুক সেটআপ করুন
আপনার ভাণ্ডারে: sudo vi hooks/post-receive
এবং এটির মতো দেখতে হবে:
#!/bin/sh
GIT_WORK_TREE=/home/path/to/your/www
export GIT_WORK_TREE
git checkout -f
ফাইল অনুমতি সেট করুন: chmod +x hooks/post-receive
গিট আপনার অ্যাপ ডিরেক্টরিতে ফাইলগুলি রিফ্রেশ করবে রেপোতে চাপ দেওয়ার পরে।
নোড-সুপারভাইজারের সাথে নোড চালান
আপনাকে গ্লোবাল নোড মডিউল হিসাবে আপনার মেশিনে নোড-সুপারভাইজার ইনস্টল করতে হবে: sudo npm install supervisor -g
এখন কেবল নোড-সুপারভাইজারের সাহায্যে আপনার নোড অ্যাপটি চালান এবং এটি আপনার কার্যকরী ডিরেক্টরিতে থাকা ফাইলগুলিতে পরিবর্তনের জন্য নজর রাখবে:
supervisor /home/path/to/your/www/server.js
( supervisor
পরিবর্তে নোট node
)
npm install -l
রিমোট সার্ভারে একটি ডিপ্লাই কৌশল প্রয়োগ করা স্মার্ট। এটি অবশ্যই পোস্ট-রিসিভ হুক ব্যবহার করে আপনার পদ্ধতির সাথে মিলিত হতে পারে।
সম্ভবত এখানে প্রত্যাবর্তন করতে খুব দেরী। তবে আমি এই প্রকল্পটি গিথুবটিতে পেয়েছি এবং আপনি যা করতে চান তা করছেন বলে মনে করছেন তবে আরও পরিষ্কার উপায়ে।
https://github.com/logsol/Github- অটো- ডিপ্লোয়
এটা দেখ. মন্তব্যগুলি এবং অগ্রগতির ক্ষেত্রে অন্যরা কী ভাববে তা জানতে আগ্রহী হবে।
চিয়ার্স,
এস
একটি প্রকল্পে আমি বর্তমানে বিকাশ করছি আমি জেজ হাম্বলের উজ্জ্বল বই "কন্টিনিউয়াস ডেলিভারি" (ভালভাবে পড়ার পক্ষে মূল্যবান) এর কভার গাইডলাইন অনুসরণ করি।
একটি নিয়োজন পাইপলাইন তৈরি একটানা ইন্টিগ্রেশন সার্ভার (আমি Thoughtworks বিনামূল্যে সম্প্রদায়ের সংস্করণ ব্যবহার কিছু ফর্ম ব্যবহার করে এই অর্থ যান ), যে প্রথম মান, জটিলতা জন্য আপনার কোড চেক এবং ইউনিট পরীক্ষা চালানোর জন্য দায়ী। এরপরে একটি ডিপ্লোয়মেন্ট পাইপলাইন অনুসরণ করতে পারে যার ফলস্বরূপ আপনার উত্পাদন সার্ভারগুলিতে ধাক্কা।
এটি খুব জটিল মনে হচ্ছে, তবে তা হওয়ার দরকার নেই, এবং কোড লেখার পুরো প্রক্রিয়াটি তৈরি করে এবং এটি উত্পাদনকে নিরাপদ করে এবং উদ্বেগ মুক্ত করে তোলে (কোন ভয়ঙ্কর মুক্তির দিন নয়!)।
আমি লাইভ সিস্টেমগুলির জন্য একটি সম্পূর্ণ ডিপ্লোয়মেন্ট পাইপলাইন এবং আমার লেখা এনপিএম মডিউলগুলির একটি কাটা ডাউন সংস্করণ ব্যবহার করি এবং উভয়ই একই 1-ক্লিক ডিপ্লোয়মেন্ট কৌশল ভাগ করে।
আমি আপনার সমস্যার একটি নোড-ভিত্তিক সমাধান প্রকাশ করেছি: নোড-সিডি
এটি আপনার ভিপিএসে চলমান একটি সহজ নোড অ্যাপের মধ্যে রয়েছে যা গিথুব পোস্ট- রিসিভ হুকগুলি গ্রহণ করবে এবং আপনার পছন্দ মতো একটি স্ক্রিপ্ট কার্যকর করবে (উদাহরণস্বরূপ একটি শেল স্ক্রিপ্ট যা আপনার অ্যাপ্লিকেশনটিকে মেরে ফেলবে, গিট টানবে এবং এটি পুনরায় চালু করবে)।
এখানে অন্য একটি সহজ নোডজেএস বাস্তবায়ন।
এটি একটি খুব সাধারণ নোড সার্ভার যা আপনার কনফিগার করা হোস্টনাম এবং পোর্টে চলে এবং গিটহাব পোস্টটি ওয়েব হুকগুলি গ্রহণ করতে পরিচালনা করতে পারেন। এবং প্রকৃত পাল / পরীক্ষা / মোতায়েনের ক্রিয়াগুলি আপনার পছন্দসই কিছু করতে কাস্টমাইজ করা যায়। বর্তমান প্রয়োগে, এটি একটি শেল কমান্ড যা নোডজেএস সার্ভার স্ক্রিপ্টে ইনলাইন নির্দিষ্ট করা হয়। এবং পাশাপাশি একটি খুব সাধারণ গোপন_কি ভিত্তিক সুরক্ষা স্কিম রয়েছে।
https://github.com/shyam-habarakada/rscds
আমার স্টেজিং সার্ভারটিতে ইতিমধ্যে নোড ইনস্টল এবং চলমান রয়েছে, তাই এগুলি লেখা দ্রুত এবং সহজ ছিল।
আমি সহজেই স্থাপনার জন্য গিট ব্যবহারের জন্য প্রকল্পটি পেয়েছি।
আমি মনে করি এটি আপনার পক্ষে সঠিক উপায়।
এটা দেখ.
আপনি যদি একটি পাইথন / টর্নেডো-ভিত্তিক সমাধান চান, আমি গিটহাব থেকে পোষ্ট অনুরোধ পরিচালনা করতে একটি স্ক্রিপ্ট লিখেছিলেন Webhook সার্ভিস । আপনি এটি https://github.com/Akobi/ops/tree/master/autodeploy এ খুঁজে পেতে পারেন
এটি কোন জপসন কনফিগারেশন ফাইলটি ব্যবহার করে আপনি কোন রেপোসের কাছ থেকে পুশ করবেন, কোন আদেশটি আপনি মোতায়েন করতে চান এবং কমান্ডগুলি অবশ্যই পরিচালনা করতে হবে তা তালিকাভুক্ত করতে ব্যবহার করে you আপনাকে যা করতে হবে তা হল কনফিগারেশন ফাইলটি আপনার পছন্দ অনুযায়ী চালানো এবং চালানো এই পান্ডুলিপি!
এছাড়াও, আমি আমার স্ক্রিপ্টে এই পোস্টগুলি ফরোয়ার্ড করতে বিপরীত প্রক্সি হিসাবে Nginx ব্যবহার করি। আপনি 'এনগিনেক্স' ফোল্ডারের নীচে একই গিথুব রেপোতে এনগিনেক্স কনফিগারেশনটি পেতে পারেন।
শুভ ঠেলা!
পিএইচপি উত্তরটি আমার মতে সম্পূর্ণরূপে বৈধ, তবে আপনি যদি রুবিকে পছন্দ করেন তবে আমি একটি সমাধান ব্লগ করেছি। এটি পিএইচপি উত্তর হিসাবে একই জিনিস, ঠিক একটি ভিন্ন ভাষায়। আপনি একটি ওয়েব হুক ব্যবহার করেন এবং প্রাসঙ্গিক এইচটিটিপি অনুরোধগুলির জন্য আপনার কাছে একটি সহজ স্ক্রিপ্ট রয়েছে।
http://gilesbokett.blogspot.com/2012/06/heroku-style-depدام-on-ec2.html
আমি আমার নিজস্ব প্রাথমিক ডিপোরিয়াল সরঞ্জাম তৈরি করেছি যা রেপো থেকে স্বয়ংক্রিয়ভাবে নতুন আপডেটগুলি সরিয়ে ফেলতে পারে - https://github.com/jesalg/SlimJim - মূলত এটি গিথুব পোস্ট-রিসিভ-হুক শোনায় এবং একটি প্রক্সি ব্যবহার করে একটি ট্রিগার স্ক্রিপ্ট আপডেট করুন।
আমি https://commando.io এর প্রতিষ্ঠাতা এবং সম্প্রতি আমরা একটি পরিষেবার মাধ্যমে গিটহাবের সাথে একীকরণের ঘোষণা দিয়েছি। ইন্টিগ্রেশন আপনাকে যখন গিটহাব রেপোতে চাপ দেয় তখন সার্ভারগুলিতে মৃত্যুদন্ড কার্যকর করার অনুমতি দেয়। আপনি কোড চাপলে এই ডিগ্রি স্ক্রিপ্টগুলি স্বয়ংক্রিয়ভাবে চালনার উপযুক্ত সুযোগ।
এক্সিকিউশন হ'ল স্ক্রিপ্ট যা আপনি কমান্ডো.ইও-র ভিতরে লিখেছেন যা বাশ, পারল, পাইথন, রুবি, গো, বা নোড.জেজে লেখা যেতে পারে inside আরও পড়তে, এবং দৌড়ের উদাহরণ কার্যকর করার স্ক্রিপ্টটি git pull
দেখতে, আমাদের ব্লগ পোস্ট ঘোষণাটি দেখুন: http://blog.commando.io/run-exections-via-github-push/
ডিপল.ইও এই স্থানটিতে নতুন এবং প্রতিশ্রুতিবদ্ধ প্রতিযোগী বলে মনে হচ্ছে।
বৈশিষ্ট্য (এর ওয়েবসাইট থেকে নেওয়া):
এছাড়াও মনে রাখবেন যে এখানে REPOMAN.IO এর মতো নিখরচায় / সস্তার পরিষেবাগুলি রয়েছে যা আপনার জন্য প্রায় সবগুলি স্বয়ংক্রিয় করে তোলে ।