File: dev-setup

package info (click to toggle)
puppetserver 8.7.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,476 kB
  • sloc: ruby: 5,764; sh: 997; java: 221; xml: 111; makefile: 94
file content (59 lines) | stat: -rwxr-xr-x 1,902 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env bash

set -e

# TODO: Ultimately it'd be nice to not hard-code these paths, because it is
# not guaranteed to match up with the paths in puppetserver.conf or used by the
# REPL.  That said, it doesn't seem like a great ROI to sort it out right now
# because it will probably require introducing a new setting for the vendored gem
# dir into puppetserver.conf.
ROOTDIR="${HOME}/.puppetlabs"
CONFDIR="${ROOTDIR}/etc/puppet"
CODEDIR="${ROOTDIR}/etc/code"

gem_list=()
while read LINE
do
  gem_name=$(echo $LINE |awk '{print $1}')
  gem_version=$(echo $LINE |awk '{print $2}')
  gem_list+=("$gem_name:$gem_version")
done < ./resources/ext/build-scripts/jruby-gem-list.txt

while read LINE
do
  gem_name=$(echo $LINE |awk '{print $1}')
  gem_version=$(echo $LINE |awk '{print $2}')
  gem_list+=("$gem_name:$gem_version")
done < ./resources/ext/build-scripts/jruby-stdlib-gem-list.txt

echo "Installing vendored gems"
lein gem install --no-document "${gem_list[@]}"

echo "Setting up puppet.conf for dev environment"

# TODO: current implementation will simply overwrite puppet.conf.  Might be better
# to add some checks at the beginning of this script, and abort the whole script
# if it already exists.

if [ -z "${MASTERHOST}" ]; then
    echo "    No value specified for environment variable 'MASTERHOST'; using 'localhost' for puppet certname."
    CERTNAME="localhost"
else
    echo "    Found environment variable 'MASTERHOST'; using value '${MASTERHOST}' for puppet certname."
    CERTNAME="${MASTERHOST}"
fi

mkdir -p "${CONFDIR}"
cat > "${CONFDIR}/puppet.conf" <<PUPPET_CONF_CONTENT
[main]
certname = ${CERTNAME}
cadir = ${ROOTDIR}/etc/puppetserver/ca

[agent]
server = ${CERTNAME}
PUPPET_CONF_CONTENT

echo "Creating modules directory for production environment, to avoid misleading pluginsync warning messages."
mkdir -p "${CODEDIR}/environments/production/modules"

echo "DONE!"