Skip to content

Instantly share code, notes, and snippets.

@Magisus
Last active July 28, 2021 18:27
Show Gist options
  • Save Magisus/63ac1f29347681f4f983da199dda8ecc to your computer and use it in GitHub Desktop.
Save Magisus/63ac1f29347681f4f983da199dda8ecc to your computer and use it in GitHub Desktop.
Building and installing FOSS puppetserver
Before you begin, you'll need:
* leiningen (https://leiningen.org/)
* Java 8
* A clone of puppetserver with your changes made (they don't need to be committed for this)
1. In the puppetserver repo, build a new package with ezbake. You can create a Jenkins token by going to your profile on https://jenkins-platform.delivery.puppetlabs.net/ and generating one, then copying it into this command, along with your LDAP username.
=> lein clean && lein install && EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true JENKINS_USER_AUTH="<jenkins username>:<platform jenkins user token>" lein with-profile ezbake,provided ezbake build
2. The end of the output will link to a specific folder in http://builds.delivery.puppetlabs.net/puppetserver/. Your artifacts will appear here when Jenkins has finished building them.
3. On a vmpooler machine (I like using Centos 7):
* Install puppet-agent. Should be fine to use the latest released version for whichever stream you're targeting (I'm assuming 6.x).
=> curl -O http://builds.delivery.puppetlabs.net/puppet-agent/6.24.0/artifacts/el/7/puppet6/x86_64/puppet-agent-6.24.0-1.el7.x86_64.rpm.
=> rpm --install puppet-agent-6.24.0-1.el7.x86_64.rpm
* Install java
=> yum install -y java-1.8.0-openjdk-headless
* Install your new server package
=> curl -O http://builds.delivery.puppetlabs.net/puppetserver/<your version>/artifacts/el/7/puppet6/x86_64/puppetserver-<your version>.el7.noarch.rpm
=> rpm --install puppetserver-<your version>.el7.noarch.rpm
4. To check if your gems are installed, run:
=> /opt/puppetlabs/puppet/bin/gem list
5. If it comes with an executable, that should get installed under `/opt/puppetlabs/puppet/bin` also, so you can test if it works by running from that.
=> /opt/puppetlabs/puppet/bin/dropsonde <....>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment