How can Cook fit into the chain of continuous delivery tools?

I am learning Puppet as our future deployment and provisioning tool in our store, but now I'm stuck on how to make a smart chain of continuous integration / delivery tools with deployment through Puppet.

In any of our environments (dev, test, qa, demo, prod), we have a number of components. We should be able to deploy each component separately and, possibly, even in parallel.

I would like to start (via a script) deployment of a package with one component (= Puppet module) and collect the result and success status. Just waiting for the scheduled agent to pull or make a puppet test on each node in the environment is not good enough, as it can pick up other pending changes (I don’t know if there is another component also during the deployment process).

In my tool chain, I would like the deployment output and the state of component A and component B to be recorded separately and not mixed.

So my question is: can I use a puppet to deploy one named package (module) at a time?

And if not, then where was I wrong when I traveled along this path?

I understand that a Puppet master layout with modules and manifests replicated to each node could possibly do this, but IMHO is a Puppet master layout that can hit the target of Puppet.

PS: I think what I'm trying to achieve is called "Directed Orchestration" in a very instructive video by Damon Edwards on Integrating DevOps Tools into the Platform Delivery Service (at around 22:30).

+4
source share
3 answers

not requiring skill. Puppet type of defeat from the target of Puppets.

Only if you take off

  • The rich DSL doll can offer
  • So many community peer-reviewed modules

, - .

#update manifests etc (version control is the source of truth)
ssh user@host git pull
#run puppet
ssh user@host sudo puppet-apply
+1
  • , : () ?

, , puppet apply. moduledir , .

  /scratch/user/puppet/local/  # This is your modulepath for local deployment

  # Following contains the manifests for a module name "localmod"
  /scratch/user/puppet/local/localmod/manifests/init.pp 

  # example content of init.pp
  class localmod {
    notify{"I am in in local module....":}
  }

puppet apply:

 puppet apply -v --modulepath=/scratch/user/puppet/local -e "include localmod"
 echo $? # Get the exit status of the above command
+3

. , .

/, maven/ ant (Build) ant/capistrano/chrome/bash/msdeploy () "Installer".

/ Chef/Puppet/CFEngine.

, ,... " ( )"

, . ( )

Jenkins Build Pipeline Integration . , Java- ant , " dev", Capistrano , - "Configure Dev", - DEV. - . .

+2
source

All Articles