git: e9c5ed32578f - main - sysutils/puppetserver8: New port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 29 Apr 2023 01:36:28 UTC
The branch main has been updated by romain: URL: https://cgit.FreeBSD.org/ports/commit/?id=e9c5ed32578f79b7324aab9ba9fe5d2b76a089a2 commit e9c5ed32578f79b7324aab9ba9fe5d2b76a089a2 Author: Romain Tartière <romain@FreeBSD.org> AuthorDate: 2023-04-28 21:00:54 +0000 Commit: Romain Tartière <romain@FreeBSD.org> CommitDate: 2023-04-29 01:36:10 +0000 sysutils/puppetserver8: New port Puppet master is a Ruby application that compiles configurations for any number of Puppet agent nodes, using Puppet code and various other data sources. (For more info, see Overview of Puppet's Architecture.) Puppet Server is an application that runs on the Java Virtual Machine (JVM) and provides the same services as the classic Puppet master application. It mostly does this by running the existing Puppet master code in several JRuby interpreters, but it replaces some parts of the classic application with new services written in Clojure. --- sysutils/Makefile | 1 + sysutils/puppetserver6/Makefile | 2 +- sysutils/puppetserver7/Makefile | 2 +- sysutils/puppetserver8/Makefile | 93 +++++++++++++++++++++ sysutils/puppetserver8/distinfo | 3 + .../files/patch-ext__bin__puppetserver | 15 ++++ .../puppetserver8/files/patch-ext__cli__foreground | 19 +++++ .../files/patch-ext__cli_defaults__cli-defaults.sh | 12 +++ .../files/patch-ext__config__conf.d__global.conf | 9 ++ .../patch-ext__config__conf.d__puppetserver.conf | 55 +++++++++++++ .../patch-ext__config__conf.d__webserver.conf | 9 ++ .../files/patch-ext__config__logback.xml | 17 ++++ .../files/patch-ext__config__request-logging.xml | 15 ++++ .../files/patch-ext__ezbake-functions.sh | 11 +++ sysutils/puppetserver8/files/pkg-message.in | 17 ++++ sysutils/puppetserver8/files/puppetserver.in | 95 ++++++++++++++++++++++ sysutils/puppetserver8/pkg-descr | 11 +++ sysutils/puppetserver8/pkg-plist | 29 +++++++ 18 files changed, 413 insertions(+), 2 deletions(-) diff --git a/sysutils/Makefile b/sysutils/Makefile index b083a01344eb..4335459241c2 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1061,6 +1061,7 @@ SUBDIR += puppet8 SUBDIR += puppetserver6 SUBDIR += puppetserver7 + SUBDIR += puppetserver8 SUBDIR += pv SUBDIR += pwd_unmkdb SUBDIR += pwgen diff --git a/sysutils/puppetserver6/Makefile b/sysutils/puppetserver6/Makefile index 751c3609d699..e3d21abf31be 100644 --- a/sysutils/puppetserver6/Makefile +++ b/sysutils/puppetserver6/Makefile @@ -31,7 +31,7 @@ NO_ARCH= yes NO_BUILD= yes JAVA_VERSION= 8+ -CONFLICTS_INSTALL= puppetserver7 +CONFLICTS_INSTALL= puppetserver[0-9] SHEBANG_FILES= ext/bin/puppetserver diff --git a/sysutils/puppetserver7/Makefile b/sysutils/puppetserver7/Makefile index c73024cdc921..f88f4174befc 100644 --- a/sysutils/puppetserver7/Makefile +++ b/sysutils/puppetserver7/Makefile @@ -28,7 +28,7 @@ NO_ARCH= yes NO_BUILD= yes JAVA_VERSION= 8+ -CONFLICTS_INSTALL= puppetserver5 puppetserver6 +CONFLICTS_INSTALL= puppetserver[0-9] SHEBANG_FILES= ext/bin/puppetserver diff --git a/sysutils/puppetserver8/Makefile b/sysutils/puppetserver8/Makefile new file mode 100644 index 000000000000..7b38e8445f60 --- /dev/null +++ b/sysutils/puppetserver8/Makefile @@ -0,0 +1,93 @@ +PORTNAME= puppetserver +PORTVERSION= 8.0.0 +CATEGORIES= sysutils java +MASTER_SITES= https://downloads.puppetlabs.com/puppet/ +PKGNAMESUFFIX= 8 +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= puppet@FreeBSD.org +COMMENT= Puppet Server running in the JVM +WWW= https://docs.puppetlabs.com/puppetserver/latest/services_master_puppetserver.html + +LICENSE= APACHE20 + +ONLY_FOR_ARCHS= amd64 + +RUN_DEPENDS= bash>=0:shells/bash \ + puppet8>=8.0:sysutils/puppet8 \ + rubygem-puppetserver-ca>=1:sysutils/rubygem-puppetserver-ca \ + rubygem-semantic_puppet>=1:devel/rubygem-semantic_puppet \ + sudo>=1:security/sudo + +USES= ruby shebangfix +USE_RC_SUBR= puppetserver + +USE_JAVA= yes +NO_ARCH= yes +NO_BUILD= yes +JAVA_VERSION= 8+ + +CONFLICTS_INSTALL= puppetserver[0-9] + +SHEBANG_FILES= ext/bin/puppetserver + +USERS= puppet +GROUPS= puppet + +SUB_LIST= JAVA_HOME=${JAVA_HOME} +SUB_FILES= pkg-message + +post-patch: +.for file in ext/config/logback.xml ext/config/request-logging.xml \ + ext/config/conf.d/global.conf ext/config/conf.d/puppetserver.conf \ + ext/config/conf.d/web-routes.conf ext/config/conf.d/webserver.conf \ + ext/config/conf.d/auth.conf ext/config/services.d/ca.cfg \ + ext/system-config/services.d/bootstrap.cfg ext/bin/puppetserver \ + ext/cli_defaults/cli-defaults.sh ext/cli/foreground + @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \ + -e 's|%%RUBY_SITELIBDIR%%|${RUBY_SITELIBDIR}|' \ + -e 's|%%RUBY_VER%%|${RUBY_VER}|' \ + -e 's|%%JAVA%%|${JAVA}|' \ + -e 's|%%ETCDIR%%|${ETCDIR}|' \ + -e 's|%%DATADIR%%|${DATADIR}|' \ + ${WRKSRC}/${file} +.endfor + @${REINPLACE_CMD} -e 's|#!/opt/puppetlabs/puppet/bin/ruby|#!${RUBY}|' \ + ${WRKSRC}/ext/cli/ca \ + ${WRKSRC}/ext/cli/dropsonde + +do-install: + @${MKDIR} ${STAGEDIR}${DATADIR}/cli/apps + @${MKDIR} ${STAGEDIR}${ETCDIR}/conf.d + @${MKDIR} ${STAGEDIR}${ETCDIR}/services.d + @${MKDIR} ${STAGEDIR}${PREFIX}/etc/puppet/code + @${MKDIR} ${STAGEDIR}/var/log/puppetserver + @${MKDIR} ${STAGEDIR}/var/puppet/server + @${MKDIR} ${STAGEDIR}/var/puppet/server/data + @${MKDIR} ${STAGEDIR}/var/puppetserver + @${MKDIR} ${STAGEDIR}/var/run/puppetserver + ${INSTALL_DATA} ${WRKSRC}/puppet-server-release.jar ${STAGEDIR}${DATADIR}/puppet-server-release.jar + ${INSTALL_DATA} ${WRKSRC}/ext/config/conf.d/global.conf ${STAGEDIR}${ETCDIR}/conf.d/global.conf.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/logback.xml ${STAGEDIR}${ETCDIR}/logback.xml.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/request-logging.xml ${STAGEDIR}${ETCDIR}/request-logging.xml.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/conf.d/puppetserver.conf ${STAGEDIR}${ETCDIR}/conf.d/puppetserver.conf.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/conf.d/web-routes.conf ${STAGEDIR}${ETCDIR}/conf.d/web-routes.conf.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/conf.d/webserver.conf ${STAGEDIR}${ETCDIR}/conf.d/webserver.conf.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/conf.d/auth.conf ${STAGEDIR}${ETCDIR}/conf.d/auth.conf.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/conf.d/metrics.conf ${STAGEDIR}${ETCDIR}/conf.d/metrics.conf.sample + ${INSTALL_DATA} ${WRKSRC}/ext/config/services.d/ca.cfg ${STAGEDIR}${ETCDIR}/services.d/ca.cfg.sample + ${INSTALL_DATA} ${WRKSRC}/ext/system-config/services.d/bootstrap.cfg ${STAGEDIR}${ETCDIR}/services.d/bootstrap.cfg.sample + ${INSTALL_DATA} ${WRKSRC}/ext/bin/puppetserver ${STAGEDIR}${PREFIX}/bin/puppetserver + ${INSTALL_DATA} ${WRKSRC}/ext/ezbake-functions.sh ${STAGEDIR}${DATADIR}/ezbake-functions.sh + ${INSTALL_DATA} ${WRKSRC}/ext/cli/ca ${STAGEDIR}${DATADIR}/cli/apps/ca + ${INSTALL_DATA} ${WRKSRC}/ext/cli/foreground ${STAGEDIR}${DATADIR}/cli/apps/foreground + ${INSTALL_DATA} ${WRKSRC}/ext/cli/gem ${STAGEDIR}${DATADIR}/cli/apps/gem + ${INSTALL_DATA} ${WRKSRC}/ext/cli/irb ${STAGEDIR}${DATADIR}/cli/apps/irb + ${INSTALL_DATA} ${WRKSRC}/ext/cli/reload ${STAGEDIR}${DATADIR}/cli/apps/reload + ${INSTALL_DATA} ${WRKSRC}/ext/cli/ruby ${STAGEDIR}${DATADIR}/cli/apps/ruby + ${INSTALL_DATA} ${WRKSRC}/ext/cli/start ${STAGEDIR}${DATADIR}/cli/apps/start + ${INSTALL_DATA} ${WRKSRC}/ext/cli/stop ${STAGEDIR}${DATADIR}/cli/apps/stop + ${INSTALL_DATA} ${WRKSRC}/ext/cli_defaults/cli-defaults.sh ${STAGEDIR}${DATADIR}/cli/cli-defaults.sh + +.include <bsd.port.mk> diff --git a/sysutils/puppetserver8/distinfo b/sysutils/puppetserver8/distinfo new file mode 100644 index 000000000000..714022b2eed1 --- /dev/null +++ b/sysutils/puppetserver8/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1682476133 +SHA256 (puppetserver-8.0.0.tar.gz) = 645308576da1a7eadc2553dac9cc7da8f3ad6c22a49a08f19153f5a21bb2fd84 +SIZE (puppetserver-8.0.0.tar.gz) = 60976845 diff --git a/sysutils/puppetserver8/files/patch-ext__bin__puppetserver b/sysutils/puppetserver8/files/patch-ext__bin__puppetserver new file mode 100644 index 000000000000..fb17e51c6fde --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__bin__puppetserver @@ -0,0 +1,15 @@ +--- ext/bin/puppetserver.orig 2018-10-03 16:18:58 UTC ++++ ext/bin/puppetserver +@@ -15,6 +15,12 @@ elif [ `uname` == "OpenBSD" ] ; then + USER="_puppet" + INSTALL_DIR="/opt/puppetlabs/server/apps/puppetserver" + CONFIG="/etc/puppetlabs/puppetserver/conf.d" ++elif [ `uname` == "FreeBSD" ] ; then ++ JAVA_BIN="%%JAVA%%" ++ JAVA_ARGS="-Xms2g -Xmx2g" ++ USER="puppet" ++ INSTALL_DIR="%%DATADIR%%" ++ CONFIG="%%ETCDIR%%/conf.d" + else + echo "You seem to be missing some important configuration files; could not find /etc/default/puppetserver or /etc/sysconfig/puppetserver" >&2 + exit 1 diff --git a/sysutils/puppetserver8/files/patch-ext__cli__foreground b/sysutils/puppetserver8/files/patch-ext__cli__foreground new file mode 100644 index 000000000000..a4a4a5ad6649 --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__cli__foreground @@ -0,0 +1,19 @@ +--- ext/cli/foreground.orig 2019-09-17 14:05:56 UTC ++++ ext/cli/foreground +@@ -1,6 +1,6 @@ + #!/usr/bin/env bash + +-restartfile="/opt/puppetlabs/server/data/puppetserver/restartcounter" ++restartfile="/var/puppet/server/data/puppetserver/restartcounter" + cli_defaults=${INSTALL_DIR}/cli/cli-defaults.sh + + if [ ! -e "${INSTALL_DIR}/ezbake-functions.sh" ]; then +@@ -30,7 +30,7 @@ fi + COMMAND="${JAVA_BIN} ${JAVA_ARGS} ${LOG_APPENDER} \ + -cp "$CLASSPATH" \ + clojure.main -m puppetlabs.trapperkeeper.main \ +- --config ${CONFIG} --bootstrap-config ${BOOTSTRAP_CONFIG} \ ++ --config ${CONFIG} --bootstrap-config %%ETCDIR%%/services.d \ + --restart-file "${restartfile}" \ + ${TK_ARGS} \ + ${@}" diff --git a/sysutils/puppetserver8/files/patch-ext__cli_defaults__cli-defaults.sh b/sysutils/puppetserver8/files/patch-ext__cli_defaults__cli-defaults.sh new file mode 100644 index 000000000000..85febc64943c --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__cli_defaults__cli-defaults.sh @@ -0,0 +1,12 @@ +--- ext/cli_defaults/cli-defaults.sh.orig 2019-09-17 14:05:56 UTC ++++ ext/cli_defaults/cli-defaults.sh +@@ -1,7 +1,7 @@ +-INSTALL_DIR="/opt/puppetlabs/server/apps/puppetserver" ++INSTALL_DIR="%%DATADIR%%" + + if [ -n "$JRUBY_JAR" ]; then + echo "Warning: the JRUBY_JAR setting is no longer needed and will be ignored." 1>&2 + fi + +-CLASSPATH="${CLASSPATH}:/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter.jar:/opt/puppetlabs/server/data/puppetserver/jars/*" ++CLASSPATH="${CLASSPATH}:/usr/local/lib/ruby/vendor_ruby/facter.jar:/opt/puppetlabs/server/data/puppetserver/jars/*" diff --git a/sysutils/puppetserver8/files/patch-ext__config__conf.d__global.conf b/sysutils/puppetserver8/files/patch-ext__config__conf.d__global.conf new file mode 100644 index 000000000000..5fc83d8e0ae8 --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__config__conf.d__global.conf @@ -0,0 +1,9 @@ +--- ext/config/conf.d/global.conf.orig 2018-10-01 20:36:05 UTC ++++ ext/config/conf.d/global.conf +@@ -1,5 +1,5 @@ + global: { + # Path to logback logging configuration file; for more + # info, see http://logback.qos.ch/manual/configuration.html +- logging-config: /etc/puppetlabs/puppetserver/logback.xml ++ logging-config: %%PREFIX%%/etc/puppetserver/logback.xml + } diff --git a/sysutils/puppetserver8/files/patch-ext__config__conf.d__puppetserver.conf b/sysutils/puppetserver8/files/patch-ext__config__conf.d__puppetserver.conf new file mode 100644 index 000000000000..335690c0d1cb --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__config__conf.d__puppetserver.conf @@ -0,0 +1,55 @@ +--- ext/config/conf.d/puppetserver.conf.orig 2021-03-12 18:01:54 UTC ++++ ext/config/conf.d/puppetserver.conf +@@ -2,16 +2,20 @@ + jruby-puppet: { + # Where the puppet-agent dependency places puppet, facter, etc... + # Puppet server expects to load Puppet from this location +- ruby-load-path: [/opt/puppetlabs/puppet/lib/ruby/vendor_ruby] ++ ruby-load-path: [ ++ %%PREFIX%%/share/puppetserver/lib, ++ %%RUBY_SITELIBDIR%%, ++ %%PREFIX%%/lib/ruby/vendor_ruby, ++ ] + + # This setting determines where JRuby will install gems. It is used for loading gems, + # and also by the `puppetserver gem` command line tool. +- gem-home: /opt/puppetlabs/server/data/puppetserver/jruby-gems ++ gem-home: /var/puppet/server/data/puppetserver/jruby-gems + + # This setting defines the complete "GEM_PATH" for jruby. If set, it should include + # the gem-home directory as well as any other directories that gems can be loaded + # from (including the vendored gems directory for gems that ship with puppetserver) +- gem-path: [${jruby-puppet.gem-home}, "/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems", "/opt/puppetlabs/puppet/lib/ruby/vendor_gems"] ++ gem-path: [${jruby-puppet.gem-home}, "/var/puppet/server/data/puppetserver/vendored-jruby-gems", "%%PREFIX%%/lib/ruby/gems/%%RUBY_VER%%"] + + # PLEASE NOTE: Use caution when modifying the below settings. Modifying + # these settings will change the value of the corresponding Puppet settings +@@ -26,23 +30,23 @@ jruby-puppet: { + + # (optional) path to puppet conf dir; if not specified, will use + # /etc/puppetlabs/puppet +- server-conf-dir: /etc/puppetlabs/puppet ++ server-conf-dir: %%PREFIX%%/etc/puppet + + # (optional) path to puppet code dir; if not specified, will use + # /etc/puppetlabs/code +- server-code-dir: /etc/puppetlabs/code ++ server-code-dir: %%PREFIX%%/etc/puppet/code + + # (optional) path to puppet var dir; if not specified, will use + # /opt/puppetlabs/server/data/puppetserver +- server-var-dir: /opt/puppetlabs/server/data/puppetserver ++ server-var-dir: /var/puppet/server/data/puppetserver + + # (optional) path to puppet run dir; if not specified, will use + # /var/run/puppetlabs/puppetserver +- server-run-dir: /var/run/puppetlabs/puppetserver ++ server-run-dir: /var/run/puppetserver + + # (optional) path to puppet log dir; if not specified, will use + # /var/log/puppetlabs/puppetserver +- server-log-dir: /var/log/puppetlabs/puppetserver ++ server-log-dir: /var/log/puppetserver + + # (optional) maximum number of JRuby instances to allow + #max-active-instances: 1 diff --git a/sysutils/puppetserver8/files/patch-ext__config__conf.d__webserver.conf b/sysutils/puppetserver8/files/patch-ext__config__conf.d__webserver.conf new file mode 100644 index 000000000000..21e4c5e6d868 --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__config__conf.d__webserver.conf @@ -0,0 +1,9 @@ +--- ext/config/conf.d/webserver.conf.orig 2018-10-01 20:36:05 UTC ++++ ext/config/conf.d/webserver.conf +@@ -1,5 +1,5 @@ + webserver: { +- access-log-config: /etc/puppetlabs/puppetserver/request-logging.xml ++ access-log-config: %%PREFIX%%/etc/puppetserver/request-logging.xml + client-auth: want + ssl-host: 0.0.0.0 + ssl-port: 8140 diff --git a/sysutils/puppetserver8/files/patch-ext__config__logback.xml b/sysutils/puppetserver8/files/patch-ext__config__logback.xml new file mode 100644 index 000000000000..278ccaf5f825 --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__config__logback.xml @@ -0,0 +1,17 @@ +--- ext/config/logback.xml.orig 2018-09-18 17:16:33 UTC ++++ ext/config/logback.xml +@@ -6,12 +6,11 @@ + </appender> + + <appender name="F1" class="ch.qos.logback.core.rolling.RollingFileAppender"> +- <!-- TODO: this path should not be hard-coded --> +- <file>/var/log/puppetlabs/puppetserver/puppetserver.log</file> ++ <file>/var/log/puppetserver/puppetserver.log</file> + <append>true</append> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> + <!-- rollover daily --> +- <fileNamePattern>/var/log/puppetlabs/puppetserver/puppetserver-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> ++ <fileNamePattern>/var/log/puppetserver/puppetserver-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> + <!-- each file should be at most 200MB, keep 90 days worth of history, but at most 1GB total--> + <maxFileSize>200MB</maxFileSize> + <maxHistory>90</maxHistory> diff --git a/sysutils/puppetserver8/files/patch-ext__config__request-logging.xml b/sysutils/puppetserver8/files/patch-ext__config__request-logging.xml new file mode 100644 index 000000000000..4358008fdb47 --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__config__request-logging.xml @@ -0,0 +1,15 @@ +--- ext/config/request-logging.xml.orig 2018-09-18 17:16:33 UTC ++++ ext/config/request-logging.xml +@@ -1,10 +1,10 @@ + <configuration debug="false"> + <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> +- <file>/var/log/puppetlabs/puppetserver/puppetserver-access.log</file> ++ <file>/var/log/puppetserver/puppetserver-access.log</file> + <append>true</append> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> + <!-- rollover daily --> +- <fileNamePattern>/var/log/puppetlabs/puppetserver/puppetserver-access-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> ++ <fileNamePattern>/var/log/puppetserver/puppetserver-access-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> + <!-- each file should be at most 200MB, keep 90 days worth of history, but at most 1GB total--> + <maxFileSize>200MB</maxFileSize> + <maxHistory>90</maxHistory> diff --git a/sysutils/puppetserver8/files/patch-ext__ezbake-functions.sh b/sysutils/puppetserver8/files/patch-ext__ezbake-functions.sh new file mode 100644 index 000000000000..bd4d0a1c26b7 --- /dev/null +++ b/sysutils/puppetserver8/files/patch-ext__ezbake-functions.sh @@ -0,0 +1,11 @@ +--- ext/ezbake-functions.sh.orig 2019-09-17 14:05:56 UTC ++++ ext/ezbake-functions.sh +@@ -126,7 +126,7 @@ init_restart_file() + local group="${GROUP:-puppet}" + + if [ ! -e "$restartfile" ]; then +- /usr/bin/install --directory --owner=$user --group=$group --mode=755 "$restart_file_base_dir" ++ /usr/bin/install -d -o $user -g $group -m 755 "$restart_file_base_dir" + if [ $? -ne 0 ]; then + echo "Unable to create or set permissions for restart file at ${restart_file_base_dir}" 1>&2 + return 1 diff --git a/sysutils/puppetserver8/files/pkg-message.in b/sysutils/puppetserver8/files/pkg-message.in new file mode 100644 index 000000000000..0635f9786fce --- /dev/null +++ b/sysutils/puppetserver8/files/pkg-message.in @@ -0,0 +1,17 @@ +[ +{ type: install + message: <<EOM +Remember to run: + +sysrc puppetserver_enable=yes + +A note to users upgrading to 2.6 who have also modified bootstrap.cfg, please +see the release notes for breaking changes in 2.5. + +https://docs.puppet.com/puppetserver/latest/release_notes.html#puppet-server-25 + +The file bootstrap.cfg has been removed and ca configuration has been moved out +to its own file in ca.cfg. +EOM +} +] diff --git a/sysutils/puppetserver8/files/puppetserver.in b/sysutils/puppetserver8/files/puppetserver.in new file mode 100644 index 000000000000..e32698e335cc --- /dev/null +++ b/sysutils/puppetserver8/files/puppetserver.in @@ -0,0 +1,95 @@ +#!/bin/sh + +# PROVIDE: puppetserver +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Configuration settings for puppetserver in /etc/rc.conf: +# +# puppetserver_enable (bool): +# Set to "NO" by default. +# Set it to "YES" to enable puppetserver +# +# puppetserver_args (str): +# Extra arguments passed to start command +# +# puppetserver_java_home (str): +# Set to "%%JAVA_HOME%%" by default. +# Set the Java virtual machine to run puppetserver +# +# puppetserver_java_opts (str): +# Set to "" by default. +# Java VM args to use. +# +# puppetserver_user (str): +# Set to "puppet" by default. +# User to run puppetserver as. +# +# puppetserver_group (str): +# Set to "puppet" by default. +# Group for data file ownership. +# +# puppetserver_log_file (str): +# Set to "/var/log/puppetserver/puppetserver.log" by default. +# Log file location. +# + +. /etc/rc.subr + +name="puppetserver" +rcvar=puppetserver_enable + +load_rc_config "${name}" + +: ${puppetserver_enable="NO"} +: ${puppetserver_args="--config %%PREFIX%%/etc/puppetserver/conf.d -b %%PREFIX%%/etc/puppetserver/services.d"} +: ${puppetserver_java_home="%%JAVA_HOME%%"} +: ${puppetserver_java_opts=""} +: ${puppetserver_user="puppet"} +: ${puppetserver_group="puppet"} +: ${puppetserver_log_file="/var/log/puppetserver/puppetserver.log"} + +pidfile="/var/run/puppetserver/puppetserver.pid" +command="/usr/sbin/daemon" +java_cmd="${puppetserver_java_home}/bin/java" +procname="${java_cmd}" +command_args="-f -p ${pidfile} ${java_cmd} ${puppetserver_java_opts} -cp %%DATADIR%%/puppet-server-release.jar:%%PREFIX%%/lib/ruby/vendor_ruby/facter.jar clojure.main -m puppetlabs.trapperkeeper.main ${puppetserver_args}" + + +required_files="${java_cmd}" + +start_precmd="puppetserver_prestart" + +# An UTF-8 locale is required +: LC_ALL=${LC_ALL:=C.UTF-8} +case $LC_ALL in + *.UTF-8) + ;; + *.*) + LC_ALL="${LC_ALL%.*}.UTF-8" + ;; + *) + LC_ALL=C.UTF-8 + ;; +esac +export LC_ALL + +puppetserver_prestart() { + if [ ! -f "${puppetserver_log_file}" ]; then + touch "${puppetserver_log_file}" + chown "${puppetserver_user}:${puppetserver_group}" "${puppetserver_log_file}" + chmod 640 "${puppetserver_log_file}" + fi + if [ ! -d "/var/run/puppetserver" ]; then + install -d -o "${puppetserver_user}" -g "${puppetserver_group}" -m 750 "/var/run/puppetserver" + fi + + chown -R "root:${puppetserver_group}" "%%PREFIX%%/etc/puppetserver/conf.d" + chmod 0750 "%%PREFIX%%/etc/puppetserver/conf.d" + + chown "root:${puppetserver_group}" "%%PREFIX%%/etc/puppetserver/logback.xml" + chmod 0640 "%%PREFIX%%/etc/puppetserver/logback.xml" +} + +run_rc_command "$1" diff --git a/sysutils/puppetserver8/pkg-descr b/sysutils/puppetserver8/pkg-descr new file mode 100644 index 000000000000..73a974443f9f --- /dev/null +++ b/sysutils/puppetserver8/pkg-descr @@ -0,0 +1,11 @@ +Puppet master is a Ruby application that compiles configurations +for any number of Puppet agent nodes, using Puppet code and various +other data sources. (For more info, see Overview of Puppet's +Architecture.) + +Puppet Server is an application that runs on the Java Virtual Machine +(JVM) and provides the same services as the classic Puppet master +application. It mostly does this by running the existing Puppet +master code in several JRuby interpreters, but it replaces some +parts of the classic application with new services written in +Clojure. diff --git a/sysutils/puppetserver8/pkg-plist b/sysutils/puppetserver8/pkg-plist new file mode 100644 index 000000000000..329a3c5f8901 --- /dev/null +++ b/sysutils/puppetserver8/pkg-plist @@ -0,0 +1,29 @@ +@(,,750) bin/puppetserver +@sample %%ETCDIR%%/logback.xml.sample +@sample %%ETCDIR%%/request-logging.xml.sample +@sample %%ETCDIR%%/conf.d/auth.conf.sample +@sample %%ETCDIR%%/conf.d/global.conf.sample +@sample %%ETCDIR%%/conf.d/metrics.conf.sample +@sample %%ETCDIR%%/conf.d/puppetserver.conf.sample +@sample %%ETCDIR%%/conf.d/web-routes.conf.sample +@sample %%ETCDIR%%/conf.d/webserver.conf.sample +@sample %%ETCDIR%%/services.d/bootstrap.cfg.sample +@sample %%ETCDIR%%/services.d/ca.cfg.sample +@dir(,puppet,750) etc/puppet/code +%%DATADIR%%/puppet-server-release.jar +@(,,755) %%DATADIR%%/cli/apps/ca +@(,,755) %%DATADIR%%/cli/apps/foreground +@(,,755) %%DATADIR%%/cli/apps/gem +@(,,755) %%DATADIR%%/cli/apps/irb +@(,,755) %%DATADIR%%/cli/apps/reload +@(,,755) %%DATADIR%%/cli/apps/ruby +@(,,755) %%DATADIR%%/cli/apps/start +@(,,755) %%DATADIR%%/cli/apps/stop +@(,,755) %%DATADIR%%/cli/cli-defaults.sh +@(,,755) %%DATADIR%%/ezbake-functions.sh +@dir(puppet,puppet,750) /var/log/puppetserver +@dir(puppet,puppet,755) /var/puppet +@dir(puppet,puppet,750) /var/puppet/server +@dir(puppet,puppet,750) /var/puppet/server/data +@dir(puppet,puppet,750) /var/puppetserver +@dir(puppet,puppet,750) /var/run/puppetserver