Skip to content

Latest commit

 

History

History

puppetserver

The Dockerfile for this image is available in the Puppetserver repository here.

You can run a copy of Puppet Server with the following Docker command:

docker run --name puppet --hostname puppet puppet/puppetserver

Although it is not strictly necessary to name the container puppet, this is useful when working with the other Puppet images, as they will look for a master on that hostname by default.

If you would like to start the Puppet Server with your own Puppet code, you can mount your own directory at /etc/puppetlabs/code:

docker run --name puppet --hostname puppet -v ./code:/etc/puppetlabs/code/ puppet/puppetserver

You can find out more about Puppet Server in the official documentation.

See the pupperware repository for running a full Puppet stack using Docker Compose.

Configuration

The following environment variables are supported:

Name Usage / Default
PUPPETSERVER_HOSTNAME The DNS name used on the masters SSL certificate - sets the certname and server in puppet.conf

Defaults to unset.
DNS_ALT_NAMES Additional DNS names to add to the masters SSL certificate
Note only effective on initial run when certificates are generated
PUPPET_MASTERPORT The port of the puppet master

8140
AUTOSIGN Whether or not to enable autosigning on the puppetserver instance. Valid values match [true
CA_ENABLED Whether or not this puppetserver instance has a running CA (Certificate Authority)

true
CA_HOSTNAME The DNS hostname for the puppetserver running the CA. Does nothing unless CA_ENABLED=false

puppet
CA_MASTERPORT The listening port of the CA. Does nothing unless CA_ENABLED=false

8140
CA_ALLOW_SUBJECT_ALT_NAMES Whether or not SSL certificates containing Subject Alternative Names should be signed by the CA. Does nothing unless CA_ENABLED=true.

false
PUPPET_REPORTS Sets reports in puppet.conf

puppetdb
PUPPET_STORECONFIGS Sets storeconfigs in puppet.conf

true
PUPPET_STORECONFIGS_BACKEND Sets storeconfigs_backend in puppet.conf

puppetdb
PUPPETDB_SERVER_URLS The server_urls to set in /etc/puppetlabs/puppet/puppetdb.conf

https://puppetdb:8081
USE_PUPPETDB Whether to connect to puppetdb
Sets PUPPET_REPORTS to log and PUPPET_STORECONFIGS to false if those unset

true
PUPPETSERVER_MAX_ACTIVE_INSTANCES The maximum number of JRuby instances allowed

1
PUPPETSERVER_MAX_REQUESTS_PER_INSTANCE The maximum HTTP requests a JRuby instance will handle in its lifetime (disable instance flushing)

0
PUPPETSERVER_JAVA_ARGS Arguments passed directly to the JVM when starting the service

-Xms512m -Xmx512m
PUPPERWARE_ANALYTICS_ENABLED Set to true to enable Google Analytics

false

Initialization Scripts

If you would like to do additional initialization, add a directory called /docker-custom-entrypoint.d/ and fill it with .sh scripts. These scripts will be executed at the end of the entrypoint script, before the service is ran.

Analytics Data Collection

The puppetserver container collects usage data. This is disabled by default. You can enable it by passing --env PUPPERWARE_ANALYTICS_ENABLED=true to your docker run command.

What data is collected?

  • Version of the puppetserver container.
  • Anonymized IP address is used by Google Analytics for Geolocation data, but the IP address is not collected.

Why does the puppetserver container collect data?

We collect data to help us understand how the containers are used and make decisions about upcoming changes.

How can I opt out of puppetserver container data collection?

This is disabled by default.