Deployment Automation ওয়েব ডেভেলপমেন্টে একটি গুরুত্বপূর্ণ অংশ, যা বিভিন্ন পরিবেশে (স্টেজিং, প্রোডাকশন) কোড, ফাইল বা অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে পুশ বা আপলোড করার প্রক্রিয়া। Grunt ব্যবহার করে আপনি আপনার ওয়েব প্রোজেক্টের ডিপ্লয়মেন্ট প্রক্রিয়া অটোমেট করতে পারেন, যা সময় বাঁচায় এবং ভুল কমায়। Grunt প্লাগইন ব্যবহার করে ডিপ্লয়মেন্টের কাজ যেমন ফাইল কপি, ফোল্ডার ক্লিন, FTP তে ফাইল আপলোড করা ইত্যাদি কাজ অটোমেট করা যায়।
Deployment Automation এ Grunt এর ভূমিকা
Grunt এর মাধ্যমে বিভিন্ন ডিপ্লয়মেন্ট কাজ যেমন ফাইল কপি করা, ফোল্ডার ক্লিন করা, FTP বা SFTP মাধ্যমে ফাইল আপলোড করা, ডোমেন ডিপ্লয়মেন্ট ইত্যাদি সহজভাবে অটোমেট করা যায়। Grunt একটি প্লাগইন ভিত্তিক টুল, যার মাধ্যমে আপনি বিভিন্ন ডিপ্লয়মেন্ট টাস্কের জন্য প্রয়োজনীয় প্লাগইন ব্যবহার করে কাজগুলো সহজভাবে করতে পারেন।
Grunt দিয়ে Deployment Automation এর প্রাথমিক কাজ
Deployment Automation এর জন্য Grunt এর কয়েকটি প্রাথমিক কাজ হলো:
- ফাইল কপি করা: সোর্স থেকে গন্তব্যে ফাইল কপি করা, যেমন স্টেজিং বা প্রোডাকশন সার্ভারে ফাইল পুশ করা।
- ফোল্ডার ক্লিন করা: পুরনো ফাইল বা ডিরেক্টরি মুছে ফেলা, যাতে নতুন ফাইল সঠিকভাবে ডিপ্লয় করা যায়।
- FTP বা SFTP মাধ্যমে ফাইল আপলোড করা: ফাইলগুলো সরাসরি FTP বা SFTP সার্ভারে আপলোড করা।
- ডিপ্লয়মেন্ট স্ক্রিপ্ট রান করা: সার্ভারে স্ক্রিপ্ট বা কনফিগারেশন ফাইল রান করা।
1. Grunt ব্যবহার করে ফাইল কপি করা
grunt-contrib-copy প্লাগইন ব্যবহার করে আপনি সোর্স ফোল্ডার থেকে গন্তব্যে ফাইল কপি করতে পারেন, যা ডিপ্লয়মেন্টের সময় প্রয়োজনীয় ফাইল ট্রান্সফার করতে সাহায্য করে।
ইনস্টলেশন
npm install grunt-contrib-copy --save-dev
Gruntfile কনফিগারেশন
module.exports = function(grunt) {
grunt.initConfig({
copy: {
main: {
expand: true,
cwd: 'src/', // সোর্স ফোল্ডার
src: ['**/*'], // সব ফাইল
dest: 'dist/', // গন্তব্য ফোল্ডার
},
},
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', ['copy']);
};
এখানে copy টাস্কটি src/ ফোল্ডার থেকে সব ফাইল কপি করে dist/ ফোল্ডারে সেভ করবে। ডিপ্লয়মেন্টে এই কাজটি সোর্স কোড থেকে প্রোডাকশন ফোল্ডারে ফাইল কপি করার জন্য ব্যবহার করা হয়।
2. Grunt দিয়ে ফোল্ডার ক্লিন করা
ফোল্ডার ক্লিন করার জন্য grunt-contrib-clean প্লাগইন ব্যবহার করা হয়। এটি পুরনো ফাইল এবং ডিরেক্টরি মুছে ফেলার জন্য উপযোগী।
ইনস্টলেশন
npm install grunt-contrib-clean --save-dev
Gruntfile কনফিগারেশন
module.exports = function(grunt) {
grunt.initConfig({
clean: {
build: {
src: ['dist/*'] // dist ফোল্ডার পরিষ্কার করা হবে
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.registerTask('default', ['clean']);
};
এখানে clean টাস্ক dist/ ফোল্ডারের সমস্ত ফাইল মুছে ফেলবে, যাতে নতুন ফাইল কপি করার আগে পুরনো ফাইলগুলো সরানো যায়।
3. FTP বা SFTP মাধ্যমে ফাইল আপলোড করা
ফাইল সরাসরি FTP বা SFTP মাধ্যমে সার্ভারে আপলোড করতে grunt-ftp-deploy বা grunt-sftp-deploy প্লাগইন ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো।
grunt-ftp-deploy প্লাগইন ইনস্টলেশন
npm install grunt-ftp-deploy --save-dev
Gruntfile কনফিগারেশন
module.exports = function(grunt) {
grunt.initConfig({
ftp_deploy: {
build: {
auth: {
host: 'your-ftp-server.com',
port: 21,
authKey: 'key1'
},
src: 'dist/', // ফোল্ডার যেখানে আপলোড করার ফাইল রয়েছে
dest: '/public_html/', // সার্ভারের গন্তব্য ফোল্ডার
},
},
aws: grunt.file.readJSON('aws-credentials.json')
});
grunt.loadNpmTasks('grunt-ftp-deploy');
grunt.registerTask('default', ['ftp_deploy']);
};
এখানে ftp_deploy টাস্কটি dist/ ফোল্ডারের সমস্ত ফাইল FTP সার্ভারে public_html/ ফোল্ডারে আপলোড করবে। FTP সার্ভারের জন্য auth তথ্যও এখানে দেওয়া হয়েছে।
4. সার্ভারে স্ক্রিপ্ট রান করা
আপনি যদি চান যে, ডিপ্লয়মেন্টের পরে সার্ভারে কিছু স্ক্রিপ্ট বা কনফিগারেশন ফাইল রান করা হোক, তবে grunt-exec প্লাগইন ব্যবহার করতে পারেন।
grunt-exec প্লাগইন ইনস্টলেশন
npm install grunt-exec --save-dev
Gruntfile কনফিগারেশন
module.exports = function(grunt) {
grunt.initConfig({
exec: {
deploy: {
cmd: 'ssh username@your-server.com "bash deploy_script.sh"'
}
}
});
grunt.loadNpmTasks('grunt-exec');
grunt.registerTask('default', ['exec']);
};
এখানে, exec টাস্কটি ডিপ্লয়মেন্টের পরে deploy_script.sh স্ক্রিপ্টটি সার্ভারে রান করবে।
সারাংশ
Grunt ব্যবহার করে Deployment Automation সম্পূর্ণরূপে অটোমেট করা যায়। এটি ফাইল কপি করা, ফোল্ডার ক্লিন করা, ফাইল আপলোড করা এবং সার্ভারে স্ক্রিপ্ট রান করা যেমন কাজগুলোকে দ্রুত এবং নির্ভুলভাবে সম্পন্ন করে। grunt-contrib-copy, grunt-contrib-clean, grunt-ftp-deploy, এবং grunt-exec প্লাগইন ব্যবহার করে আপনি সম্পূর্ণ ডিপ্লয়মেন্ট প্রক্রিয়া অটোমেট করতে পারেন, যা ডেভেলপমেন্ট প্রক্রিয়া অনেক সহজ করে তোলে।
Read more