Over a million developers have joined DZone.
Platinum Partner

Merging Git Workflow With Puppet Environments

· DevOps Zone

The DevOps Zone is brought to you in partnership with New Relic.  Learn more about the common barriers to DevOps adoption so that you can come up with ways to win over the skeptics and kickstart DevOps.

If you're trying to keep your development team from doing accidental pushes of incorrect code, a short tutorial on how to use Git, Puppet, and some other open source utilities should go a long way in helping junior sysadmins or sysadmin developers with this kind of problem.  The tutorial comes to you from Puppet Labs:

One of the features offered by Puppet is the ability to break up infrastructure configuration into environments. With environments, you can use a single Puppet master to serve multiple isolated configurations. For instance, you can adopt the development, testing and production series of environments embraced by a number of software development life cycles and by application frameworks such as Ruby on Rails, so that new functionality can be added incrementally without interfering with production systems. Environments can also be used to isolate different sets of machines. A good example of this functionality would be using one environment for web servers and another for databases, so that changes made to the web server environment don’t get applied to machines that don’t need that configuration.  --Puppet Labs

This development model should give deployment managers the simple access control they need to generate new environments, test code, and deny access to change the production environment. This process will take advantage of a neat little tool called gitolite.

Source: http://puppetlabs.com/blog/git-workflow-and-puppet-environments

The DevOps Zone is brought to you in partnership with New Relic. Quickly learn how to use Docker and containers in general to create packaged images for easy management, testing, and deployment of software.

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}