我怎样才能用厨师客户端 - 服务器架构部署“点播”的代码?(How can I deploy cod

2019-10-17 09:01发布

Here's the scenario:

I can SSH into my Chef-Server . But I can't SSH into any of the Chef-Clients. So this is how I work : I have a workstation to change or create Roles . All the chef-clients are running as daemons , so when they wake up , they notice state changes and start updating themselves .

Now , I need to configure code deployments on these clients . I was thinking I could use application cookbook for that , and add recipes to the roles using my workstation . But won't that result in deployments every time the chef-clients wake up and find revision changes ? I want an On Demand kind of deployment : I want to deploy only when the code is deployment ready , not for any other commit till that point .

How do I achieve this ?

Answer 1:

问题夫妇

当ID代码部署准备好了吗? 你怎么知道的? 如果它是一个重复的过程,你能不能说的代码放到一个秘诀是什么? 如果它不是一个重复的过程中,你需要使它之一,以使其可以实现自动化

IE运行黄瓜测试,如果他们都通过,则部署否则坐视不管?

我们从Artifactory的喂养和使用Web API,以检查提供给我们最新的安装程序。 如果它与先前安装的(通过检查完成/创建注册表项),我们对用户说,这个版本已经安装了,所以我们正在跳绳。 如果它是不一样的,我们安装。 现在,我知道这是不完全相同的情况,但像一些自定义代码将在这里需要的感觉给我。

如果不是这样,杠杆databag值说安装=取决于代码的状态真​​的还是假的。 当你想部署和它设置为false休息的时候你会在databag更新项目的安装项目。 配方只会继续如果值是真的吗?



Answer 2:

为什么不能有一个分支,其中HEAD总是准备好部署? 只有推到这个分支时,你的代码是准备去外面的世界。 然后,你不必担心由厨师正在同步您的存储库的中间,不稳定的状态。 当然,你还必须等待客户端唤醒和同步你看到你的变化之前,因此,如果延迟是一个问题,这是不行的。



文章来源: How can I deploy code 'on-demand' using chef client-server architecture?