微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Puppet Enterprise 和 Git 分支

如何解决Puppet Enterprise 和 Git 分支

我们正在使用 Puppet Enterprise,我对如何将特定节点移动到 Git 开发分支以进行 Puppet 代码配置感到困惑。

我们成功地将代码管理器用于生产分支,并且有几十个节点(在 repo 的 nodes.pp 文件中)表现良好。但是,我们一直在生产分支中进行所有更改,我想让我们摆脱这种“习惯”。相反,我希望我们创建一个命名的开发分支,在那里进行编辑,在一个或两个节点上试用它,然后将更改合并到生产中,并将其应用到所有其他节点。

我做了以下事情:

  • 创建了一个名为 PortainerFix 的分支,并在那里进行了更改。

  • 登录到我们的 PE 服务器并运行命令“puppet-code deploy PortainerFix --wait”。

  • 登录到 PE Web 服务器并进入分类区域。我去了开发环境组(在所有环境下)并在固定节点列表下添加了dockerdev1001.foo.com。

然后我想我可以进入 PE Web 服务器上的 dockerdev1001.foo.com 节点并开始运行代理,选择特定环境 PortainerFix,这是下拉列表中的一个选项。

运行是“成功”,但实际上它没有应用我所做的分支更改。它似乎仍在使用生产分支。

登录到节点本身。我看到的唯一环境是 /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 系统上手动删除 portainer 容器和映像时,然后运行 ​​puppet,然后它正确地抓取了新的 portainer 版本并启动它就好了。所以,这是我们在利用 Puppet 管理 Docker 服务时需要注意的事情。

约翰

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。