簡體   English   中英

Puppet Enterprise 和 Git 分支機構

[英]Puppet Enterprise and Git branches

我們正在使用 Puppet Enterprise,我對如何將特定節點移動到 Git 開發分支進行 Puppet 代碼配置感到困惑。

我們成功地將代碼管理器用於生產分支,並且有幾十個運行良好的節點(在 repo 的 nodes.pp 文件中)。 但是,我們一直在生產分支中進行所有更改,我想讓我們擺脫這種“習慣”。 相反,我希望我們創建一個命名的開發分支,在那里進行編輯,在一兩個節點上進行嘗試,然后將更改合並到生產中,並將其應用到所有其他節點。

我做了以下事情:

  • 創建了一個名為 PortainerFix 的分支,並在那里進行了更改。

  • 登錄到我們的 PE 服務器並運行命令“puppet-code deploy PortainerFix --wait”。

  • 登錄到 PE web 服務器並進入分類區域。 我去了開發環境組(在所有環境下)並在固定節點列表下添加了 dockerdev1001.foo.com。

然后我想我可以 go 進入 PE web 服務器上的 dockerdev1001.foo.com 節點並開始運行代理,該代理是在 pulldown.x 環境中選擇的一個選項

運行是“成功”,但實際上它沒有應用我所做的分支更改。 它似乎仍在使用生產分支。

我登錄到節點本身。 我看到的唯一環境是/etc/puppetlabs/code/environments/production。 如果我運行命令“puppet agent -t --environment=PortainerFix”,它會顯示“信息:使用配置的環境'PortainerFix'”,並成功返回,但同樣,它不會使預期更改為主機。 生產環境仍然是 /etc/puppetlabs/code/environments 中唯一的環境。

我究竟做錯了什么?? 我希望在節點上看到 /etc/puppetlabs/code/environments/PortainerFix,並且它確實應用了該配置。

我已經弄清楚了問題所在。 如果它對其他人有用,我將解釋解決方案。 事實證明,我上面的步驟工作正常,但我實現的代碼更改卻沒有。

我有一個 Docker::services 調用:

docker::services { 'portainer':
    create             => true,
    service_name       => 'portainer',
    image              => 'portainer/portainer-ce:2.0.1',
    replicas           => '1',
    publish            => ['9000:9000', '8000:8000'],
    mounts             => ["type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock",
                           "type=bind,source=/portainer_data,target=/data",
                          ],
   env                => ["AGENT_SECRET=myKey${env}-${hostname}"],
    extra_params       => ['--network portainer_agent_network'],
}

我將圖像版本從 2.0.1 更改為 2.1.1。 我期待它會下載新圖像並啟動新容器,但它沒有采取任何行動。 所以我認為它沒有正確抓住分支。

但是,當我手動刪除 Docker 系統上的搬運工容器和圖像時,然后運行 puppet,然后它正確地抓取了新的搬運工版本並啟動它就好了。 因此,在利用 Puppet 管理 Docker 服務時,我們需要注意這一點。

約翰

暫無
暫無

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

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