[英]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.