Ubuntu 16.04 的 apt security update 排除指定套件不自動更新

2018-06-28 Ubuntu

最近做某個專案,因為這個專案開發者有在 Tomcat 重啟時加了一些 alert 訊息,某一天就發現這個服務的 Tomcat 在一天內所有的機器都發生自動重啟的狀況(非同時),然後我就被告知是不是有偷偷做什麼事情了 …

 

然後事情發生後幾天都沒有再次自動重啟,但是身為一個有研究精神的工程師還是要追根究柢一下,免得夜長夢多留下技術債,詳細看 syslog 後發現 Tomcat 重啟的 Log 是跟著 apt security update 同一時間發生的,當下直覺是因為有 security issue 所以自動更新,然後再看一下 apt.log 果然發現在同一時段其實是在做 tomcat security update。

 

在確定是因為 security update 後就要在自動升級和線上可用性做選擇 …,若是當自動更新 security update 的話,當下的使用者會被中斷,這應該是要在前端被解決,但本公司沒有 … 並且對這種錯誤非常敏感 (平常程式都常在壞也沒有這麼積極),所以只能犧牲掉自動升級的功能,讓服務在適當的時間排程更新 …

 

在這個 case 我選擇幾個方式來解決:

  • 把不想要自動 Security update 的服務過濾掉
  • 塞排程在可接受的時間進行 Security update

 

實作方面:

  • auto security update exclude service

auto security update 預設會把設定寫在 /etc/apt/apt.conf.d/50unattended-upgrades 這邊

Unattended-Upgrade::Package-Blacklist {
         "apache2";
         "tomcat8";
         "mysql-server";
         "mysql-client";
};

利用黑名單禁止 Unattended 去自動升級某些服務,這點在管理資料庫其實是還蠻重要的

 

除了 blacklist 以外,還有許多針對 apt 其他的參數,可以參考「How to Setup Automatic Security Updates on Ubuntu 16.04

Remove-Unused-Dependencies

Automatic-Reboot

Automatic-Reboot-Time

 

 

搞定。

 

 

 

 

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱