|
24 | 24 | exit 1 |
25 | 25 | fi |
26 | 26 |
|
27 | | -# Create puppet user and group, and set permissions on necessary directories |
28 | | -# Used for rootless execution of the container and to match permissions expected by Puppet Server |
29 | | -if command -v apk > /dev/null 2>&1; then |
30 | | - addgroup -g 64604 puppetdb |
31 | | - adduser -G puppetdb -u 64604 -h /opt/puppetlabs/server/data/puppetdb -H -D -s /sbin/nologin puppetdb |
32 | | -else |
33 | | - groupadd --gid 64604 puppetdb |
34 | | - useradd \ |
35 | | - --gid puppetdb \ |
36 | | - --home-dir /opt/puppetlabs/server/data/puppetdb \ |
37 | | - --no-create-home \ |
38 | | - --shell /usr/sbin/nologin \ |
39 | | - --uid 64604 \ |
40 | | - puppetdb |
41 | | -fi |
42 | | - |
43 | | -mkdir -p "$LOGDIR" |
44 | | - |
45 | | -chown -R puppetdb:puppetdb /etc/puppetlabs/puppetdb |
46 | | -chown -R puppetdb:puppetdb /opt/puppetlabs/server/data/puppetdb |
47 | | -chown -R puppetdb:puppetdb /var/log/puppetlabs/puppetdb |
48 | | -chown -R puppetdb:puppetdb /var/run/puppetlabs/puppetdb |
49 | | -chown -R puppetdb:puppetdb "$LOGDIR" |
| 27 | +# The container runs as UID 64604 by default, but any UID works. Everything the |
| 28 | +# server needs to write is root-owned with group 0 mirroring the owner permissions |
| 29 | +mkdir -p "$LOGDIR" "$SSLDIR" |
| 30 | + |
| 31 | +chown -R 0:0 /etc/puppetlabs/puppetdb |
| 32 | +chown -R 0:0 /opt/puppetlabs/server/data/puppetdb |
| 33 | +chown -R 0:0 /var/log/puppetlabs/puppetdb |
| 34 | +chown -R 0:0 /var/run/puppetlabs/puppetdb |
| 35 | +chown -R 0:0 "$LOGDIR" |
| 36 | + |
| 37 | +# group-0 perms for arbitrary UIDs |
| 38 | +for d in /etc/puppetlabs /etc/logrotate.d /var/log/puppetlabs /var/run/puppetlabs /opt/puppetlabs "$LOGDIR"; do |
| 39 | + mkdir -p "$d" |
| 40 | + chgrp -R 0 "$d" |
| 41 | + chmod -R g=u "$d" |
| 42 | + find "$d" -type d -exec chmod g+s {} + |
| 43 | +done |
| 44 | + |
| 45 | +# empty USER lets foreground run under any UID |
| 46 | +sed -i 's/^ *USER="puppetdb"/USER=""/' /etc/default/puppetdb |
50 | 47 |
|
51 | 48 | # We want to use the HOCON database.conf and config.conf files, so get rid of the packaged files |
52 | 49 | rm -f /etc/puppetlabs/puppetdb/conf.d/database.ini |
|
0 commit comments