簡體   English   中英

解決廚師依賴性

[英]Resolving Chef Dependencies

在我的實驗室中,我目前正在與Cobbler和Chef一起管理20個節點的集群。 Cobbler用於操作系統供應和基本網絡設置,按預期可以正常工作。 我可以使用基於預置的NQA安裝和本地存儲庫鏡像來管理多個OS發行版。

我們還成功安裝了Chef服務器並開始管理節點,但是Chef無法正常工作。 問題是我無法在Chef中設置節點依賴性。 我們的一個重要用例是:

  1. 我們正在這些節點上設置ceph和openstack
  2. Ceph應該在openstack之前安裝,因為openstack使用ceph作為后端存儲
  3. 應該在Ceph osd之前安裝Ceph監視器,因為創建osd需要與監視器對話

Openstack和Ceph之間的依賴性並不重要,因為它是一個節點中的依賴性。 稍后安裝openstack即可解決問題。 但是,ceph監視器和ceph osd之間的依賴關系出現問題。 Ceph osd置備需要一個正在運行的ceph監視器。 因此,ceph osd配方應始終在ceph mon配方在另一個節點中完成后運行。 我們當前的方法只是在“ chef-client”節點中的“ chef-client”運行完全完成之后,在“ ceph-osd”節點中運行“ chef-client”,但是我認為這太麻煩了。 有沒有一種方法可以在Chef中設置這些依賴關系,以便節點將根據其依賴關系進行順序配置? 如果沒有,是否有好的框架可以處理?

在廚師本身中,我不知道編排的方法(不是Job廚師)。

給定您的用例的一種解決方法是使用標簽和搜索。

您監視的配方可以在末端標記節點(使用tag("CephMonitor")或設置要搜索的任何屬性)。

之后,廚師的solr索引必須趕上它(通常在幾分鍾內),並且您可以在Cephosd食譜中使用搜索,您可以執行以下操作:

CephMonitor = search(:node,"tags:CephMonitor") || nil

return if CephMonitor.nil?

[.. rest of the CephOsd recipe, using the CephMonitor['fqdn'] or other attribute from the node ..]

可以使用相同的行為來避免在osd運行之前嘗試運行OpenStack配方。

缺點是需要2或3名廚師才能達到融合基礎架構。

我沒有什么值得推薦的事情,編排,動物園管理員或領事可以幫助代替標簽並觸發運行。

Rundeck可以分批運行在不同節點上的運行,並將其聚合在一項作業中。

哪個最好取決於您在那里的感覺。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM