Puppet facter 無法正確抓到 Ubuntu Container 的 OS 資訊

2018-09-19 Puppet

今天有同事回報在使用 Puppet 做模擬 LAB 的時候,一直出現 OS 版本判別錯誤的問題,安裝 Ubuntu container 卻判定為 Debian,然後少了許多 metadata 可以使用 …

 

嘗試在 Production 環境測試沒有沒有遇到問題,也在 Vagrant 上跑過。

 

只好找工程師的好朋友 Google 一下,果然馬上就找到 Puppet ticketIncorrectly detects OS in docker container」有相同的狀況

When running in a Docker container, facter incorrectly reports the OS.

To reproduce this, start a docker container with the “ubuntu” image, install Facter from the Puppet repository, run “puppet os” and notice it is reported as “Debian”.

 

這時才想到,Puppet 用來判別版本的資訊其中有包含 lsb-release 這個 package … 而 Container 的特點就是 “什麼都沒有” 所以能抓到的資訊自然就少了很多。

 

解決方法很簡單,就是安裝 lsb-release,讓環境有 lsb_release 這個 command

 

就正常了 …

 

不過 Puppet 有把該問題列為 bug 並且提出應該要使用 os-release 作為參考依據才對,所以之後要參考 OS 資訊的人可以往這個方向找問題

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱

%d 位部落客按了讚: