हनीबैजर में हम अपने सभी सर्वरों पर apt पैकेज अपडेट की निगरानी के लिए apticron का उपयोग कर रहे थे। पहले 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 में हेरोकू बटन पर क्लिक करने जितनी सरल है, और फिर अपने सभी सर्वरों पर एक क्रॉन जॉब जोड़कर AptWatcher को पैकेज परिवर्तनों की रिपोर्ट करने के लिए कहें। जैसे-जैसे सर्वरों से रिपोर्ट आती हैं, AptWatcher में होस्ट रिकॉर्ड स्वचालित रूप से बन जाएंगे।
हम हनीबैजर में सभी चीजों को स्वचालित करने के लिए 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'"
एक बार यह हो जाने के बाद, आपको बस पैकेज रिपोर्ट के स्लैक में आने का इंतजार करना है। आसान!