Name: puppet-agent
Owner: CERN Operations
Description: All of the directions for building a puppet agent package.
Forked from: puppetlabs/puppet-agent
Created: 2016-12-01 16:12:53.0
Updated: 2016-12-01 16:12:55.0
Pushed: 2017-09-12 14:25:16.0
Homepage: null
Size: 5509
Language: Ruby
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
The puppet agent is a collection of software that is required for puppet and its dependencies to run. The full list of software and projects included in the puppet agent can be found in the project definition. This repo is where the puppet-agent vanagon configuration lives. It is used to drive the building of puppet-agent packages for releases.
The Gemfile specifies all of the needed ruby libraries to build a puppet-agent package. Additionally, puppet-agent requires a VM to build within for each desired package.
The location of Vanagon in the Gemfile can be overridden with the environment variable VANAGON_LOCATION
. Can be set prior to bundle install
or updated with bundle update
.
0.3.14
- Specific tag from the Vanagon git repogit@github.com:puppetlabs/vanagon#master
- Remote git location and tagfile:///workspace/vanagon
- Absolute file pathfile://../vanagon
- File path relative to the project directoryIf you wish to build puppet-agent yourself, it should be relatively easy. First
bundle install
, followed by bundle exec build puppet-agent <desired
platform> <vm hostname>
, where the platform is a platform supported by vanagon
and vm hostname is the hostname of a vm of the desired platform. The current
user must be able to ssh into that vm as root (vanagon has facilities to provide
an ssh key beyond what is listed in .ssh/config).
There are multiple ruby versions available to use in puppet-agent. To switch between ruby versions, update the ruby_version
and gem_home
settings in the puppet-agent project config
To switch to ruby 2.3.3:
oj.setting(:ruby_version, "2.3.3")`
oj.setting(:gem_home, File.join(proj.libdir, "ruby", "gems", "2.3.0"))
To switch to ruby 2.1.9:
oj.setting(:ruby_version, "2.1.9")`
oj.setting(:gem_home, File.join(proj.libdir, "ruby", "gems", "2.1.0"))
To build puppet-agent, you'll need the following:
To build puppet-agent on infrastructure outside of Puppet Labs, you'll need to make a few edits in the component and project files. Any references to pl-gcc, pl-cmake, pl-boost, pl-yaml-cpp, etc need to be changed. In many cases, just drop the pl- prefix and ensure that CXX or CC envrionment variables are what they should be.
You also may need to change the source URIs for components. We recognize this is less than ideal at this point, but we wanted to error on the side of getting this work out in public rather than having everything perfect.
If you have your own mirror of the components of puppet-agent, you can also use a rewrite rule. See the Vanagon README for an example.
Tracking branch (master + stable):
Guidelines on Merging Between Branches
Generally, no PR is needed for routine merges from stable to master, but a PR is advised for other merges. Use your judgment of course, and put up a PR if you want review.
Note that for all merges from master or stable, the merge should pick up:
But never:
Here's a sample snippet used for a stable -> master merge:
merge --no-commit --no-ff stable
i in {hiera,facter,puppet,marionette-collective,pxp-agent,cpp-pcp-client}; do git checkout master -- configs/components/$i.json;done
checkout master -- configs/components/windows_puppet.json
commit -m "(maint) Restore promoted components refs after merge from stable"
The GUI installer for OSX includes a custom plugin that captures and sets information such as the puppet master and certificate name for the client. The source for this Xcode project can be found here.
File issues in the Puppet Agent (PA) project on the Puppet Labs Jira site. Issues with individual components should be filed in their respective projects.
Puppet agent is licensed under the Apache-2.0 license.
See MAINTAINERS