一千萬個為什麽

搜索

在HashiCorp堆棧中,添加用戶的適當位置在哪裏?



我正在使用HashiCorp的Packer構建一些自定義Linux映像,稍後將使用HashiCorp的Terraform將其部署到Azure。從這些圖像創建的虛擬機需要創建一組用戶;在這種特殊情況下,我關心的是可能需要插入這些虛擬機的員工的用戶帳戶。

對於這種配置,將這些用戶帳戶添加到Packer腳本中的基礎映像,還是在通過Terraform創建VM時添加它們更有意義?在我看來,在派克處理它更有意義,但有沒有理由不這樣做呢?

轉載註明原文: 在HashiCorp堆棧中,添加用戶的適當位置在哪裏?

一共有 3 個回答:

我不太了解Azure提供的功能,但其他雲提供商提供了一種管理提供的VM外部用戶(通常為IAM權限)的方法。

我不會讓用戶進入系統,而是尋找一種外部管理方式。這使您可以更輕松地移除離開公司的用戶或添加加入的新用戶。

如果Azure不提供設置Active Directory或LDAP來管理用戶對主機的權限的方法。但如果你需要這樣做,我會感到震驚。

我會同意以前的說法:避免使用Packer將用戶映射到基本映像中。同樣,你也應該避免使用 Terraform 來烘焙它們。在配置服務器之後,Terraform不提供執行正在進行的更改的機制。它只包含那些僅運行一次的初始供應腳本。如果您使用Terraform配置腳本來管理用戶,則這些用戶永遠不會再被Terraform更新。在這一點上你可能會將這些變化烘焙到Packer中。

我誠實地建議你在Hashicorp生態系統外進行此項任務。對於機器的正在進行的更改,這正是配置管理系統的設計目的。像Anisble,Chef,Puppet或Salt這樣的實際配置管理工具最適合這項工作。

Packer允許您設置許多機器使用的基本映像。 Terraform將您的架構狀態維護為代碼。但是,當您在機上或非機上新用戶時會發生什麽情況?或者您需要更改他們各自的SSH密鑰,因為他們丟失了他們的計算機?這不應該是一個代碼更改。您也不希望像Terraform配置腳本中存儲的用戶密碼那樣存儲代碼。

在我的公司中,堆棧是:打包器鏡像,Terraform bootstrapping和廚師管理。他們一起工作很好。我承認,我喜歡將更多東西放入Packer和Teraform中,因為它可以更快地啟動旋轉時間。但一個好的CM工具在DevOps世界仍然占有一席之地。

除非存在操作系統特定的需求,否則我會避免將用戶帳戶“烘焙”到Packer 的操作系統映像中。例如,在我的所有部署中都需要一個服務或系統帳戶。

我的建議是使用 Terraform配置器創建用戶帳戶。這樣,您可以在通過Terraform部署虛擬機時更改它們,而無需創建新的Packer映像。這也允許您重復使用相同的Packer映像用於不同用途的用戶帳戶。

最終取決於您的工作流程設置。你想在VM映像上還是在部署過程中進行這些更改?