আমি সম্প্রতি একটি সার্ভারে একটি আপস্টার্ট পরিষেবা হিসাবে চলমান একটি ওয়েব অ্যাপের জন্য একটি রিমোট গিট রেপো সেট আপ করেছি up আমি অ্যাপ্লিকেশন কোডটি আপডেট করার জন্য প্রয়োজনীয় ক্রিয়াকলাপের জন্য পোস্ট-রিসিভ হুকটি ব্যবহার করতে চাই এবং তারপরে স্টার্ট সার্ভিসটি পুনরায় চালু করুন। এটি আমার repo.git / hooks / পোস্ট-প্রাপ্ত ফাইল:
#!/bin/bash
export GIT_WORK_TREE=/var/www/current/myapp/
echo "Checking out new files and restarting app"
echo $USER
git checkout -f
sudo /sbin/stop myapp-service
sudo /sbin/start myapp-service
আমি এখানে যে তথ্য পড়েছি তার উপর ভিত্তি করে: AskUbuntu.com , মূল হিসাবে চালিত করার জন্য আপস্টার্ট কমান্ড পাওয়ার উপায়টি আমার ভিজুডো ফাইলটি সম্পাদনা করা। এখানে সম্পর্কিত স্নিপেট:
%sudo ALL=(ALL:ALL) ALL
admin ALL=(ALL:ALL) NOPASSWD: /sbin/start myapp-service /sbin/stop myapp-service
তবে আমি যখন রিমোটের দিকে ধাক্কা খাই, তখন আমি এর মতো আউটপুট পাই:
$ git commit -am "test" && git push prod master
[master 59ffccd] test
1 file changed, 1 insertion(+), 1 deletion(-)
Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 544 bytes, done.
Total 6 (delta 4), reused 0 (delta 0)
remote: Checking out new files on production and restarting app
remote: admin
remote:
remote: sudo: no tty present and no askpass program specified
remote: Sorry, try again.
আমি দেখেছি যে সঠিক ব্যবহারকারী পোস্ট-প্রাপ্তি স্ক্রিপ্টটি সম্পাদন করছে (উপরের মতো প্রতিবেদন হিসাবে অ্যাডমিন)।
কেউ কি আমাকে থামাতে এবং তারপরে একটি গিট-পোস্ট হুক স্ক্রিপ্টে আপস্টার্ট কাজ শুরু করতে সহায়তা করতে পারে? পাইথন, পিএইচপি, বা নোড.জেএস জাভাস্ক্রিপ্ট স্ক্রিপ্টগুলি গ্রহণযোগ্য হবে যদি তারা বাশের চেয়ে সহজেই আপস্টার্ট কমান্ড কার্যকর করতে সক্ষম হয় (আমি একজন নবীন নবাগত)
আমি আমার লেখার লগটি দেখেছিলাম এবং এটি আমার কাছে রয়েছে:
Apr 24 19:35:21 myhost01 sudo: pam_unix(sudo:auth): auth could not identify password for [admin]
Apr 24 19:35:21 myhost01 sudo: pam_unix(sudo:auth): conversation failed
Apr 24 19:35:21 myhost01 sudo: pam_unix(sudo:auth): auth could not identify password for [admin]
Apr 24 19:35:21 myhost01 sudo: pam_unix(sudo:auth): conversation failed
Apr 24 19:35:21 myhost01 sudo: pam_unix(sudo:auth): auth could not identify password for [admin]
Apr 24 19:35:21 myhost01 sudo: admin : 3 incorrect password attempts ; TTY=unknown ; PWD=/home/admin/myapp.git ; USER=root ; COMMAND=/s$
Apr 24 19:35:21 myhost01 sudo: unable to execute /usr/sbin/sendmail: No such file or directory
Apr 24 19:35:21 myhost01 sudo: pam_unix(sudo:auth): conversation failed