Honeybadger-এ আমরা apticron ব্যবহার করতাম আমাদের সব সার্ভারের জন্য apt প্যাকেজ আপডেট ট্র্যাক করার জন্য। প্রথমে আমি apticron ইমেইল আমার ইনবক্সে পেতাম, কিন্তু একসময় আমি সিদ্ধান্ত নিলাম আমি চাই সেগুলো আমাদের স্ল্যাক নোটিফিকেশন চ্যানেলে পেতে। স্ল্যাকের একটি হ্যান্ডি ইমেইল অ্যাপ আছে যা ইমেইল রিসিভ করে এবং একটি চ্যানেলে পোস্ট করে, তাই আমি সেটি ট্রাই করলাম। এটি কাজ করল, কিন্তু আমি পছন্দ করিনি কীভাবে ইমেইলগুলো ফাইল হিসেবে দেখাচ্ছে, এবং মেইল হেডার ইত্যাদির শব্দকলি ছিল, তাই আমি কিছু তৈরি করলাম যা আমাকে আরও ভালো লাগবে। এইভাবে AptWatcher জন্মла।
AptWatcher একটি সুপার সিম্পল অ্যাপ যা আমি একটি উইকএন্ডে দ্রুত বানালাম আমাদের সার্ভার থেকে স্ল্যাক নোটিফিকেশন চ্যানেলে apt প্যাকেজ আপডেটের ইনফরমেশন রিলে করার জন্য। এটি শুধু একটি HTTP এন্ডপয়েন্ট প্রদান করে যা একটি সার্ভার থেকে আপডেটের জন্য রেডি প্যাকেজ নাম এবং ভার্সনের একটি লিস্ট শোনায়। এটি সেই লিস্টটি সার্ভার থেকে পূর্বে প্রাপ্ত লিস্টের সাথে তুলনা করে, এবং যদি নতুন লিস্টে কোনো প্যাকেজ পাওয়া যায় যা পুরনো লিস্টে ছিল না, তবে সেগুলো স্ল্যাকে পাঠায় একটি ইনকামিং ওয়েবহুক দিয়ে।
সার্ভারে প্যাকেজের লিস্টটি এই কমান্ড চালিয়ে জেনারেট করা যায়:
$ apt-get upgrade -s | grep ^Inst | awk '{ print $2,$3; }' | tr -d '[]'
এটি একটি প্যাকেজ লিস্ট জেনারেট করে যেটি এইরকম দেখায়:
libxml2-dev 2.9.1+dfsg1-3ubuntu4.7
libxml2 2.9.1+dfsg1-3ubuntu4.7
libnl-genl-3-200 3.2.21-1ubuntu1.1
libnl-3-200 3.2.21-1ubuntu1.1
এবং সেম লিস্ট AptWatcher-এর মাধ্যমে রুট করলে স্ল্যাকে দেখাবে:

ইনস্টলেশন
ইনস্টলেশন রেপোর README-এ Heroku বাটনে ক্লিক করার মতো সহজ, এবং তারপর আপনার সব সার্ভারে একটি ক্রন জব যোগ করা যাতে প্যাকেজ পরিবর্তন রিপোর্ট করে AptWatcher-এ। হোস্ট রেকর্ডها AptWatcher-এ অটোমেটিক্যালি তৈরি হয়ে যাবে जैसे-जैसे রিপোর্ট সার্ভার থেকে আসবে।
Honeybadger-এ আমরা Ansible ব্যবহার করি সব কিছু অটোমেট করার জন্য, তাই আমি apticron কে AptWatcher দিয়ে রিপ্লেস করার জন্য কুইক-এন্ড-ডার্টি পদ্ধতি নিলাম:
$ ansible all -m apt -a 'pkg=apticron state=removed'
$ ansible all -m cron -a "name='Report pending apt changes' special_time=daily job='apt-get upgrade -s | grep ^Inst | awk \\'{ print \\$2,\\$3; }\\' | tr -d \\'[]\\' | curl -u user:pass --data-binary @- https://our.aptwatcher.url/report/\\$(hostname) &> /dev/null'"
এটা হলে, আপনার শুধু অপেক্ষা করতে হবে প্যাকেজ রিপোর্টগুলো স্ল্যাকে দেখানোর জন্য। ইজি-পিজি!