forked from theforeman/foreman-packaging
/
foreman.postinst
executable file
·96 lines (80 loc) · 2.96 KB
/
foreman.postinst
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/sh
# postinst script for foreman
#
# see: dh_installdeb(1)
[ -n "${DEBUG}" ] && set -x
set -e
. /usr/share/debconf/confmodule
LOGFILE='/var/log/foreman-install.log'
# if this script aborts with an error dpkg can hang if a debconf can
# hang if daemons have been started
trap db_stop EXIT
# Add the "foreman" user and group
getent group foreman >/dev/null || groupadd -r foreman
getent passwd foreman >/dev/null || \
useradd -r -g foreman -d /usr/share/foreman -s /usr/sbin/nologin -c "Foreman" foreman
chown -Rf foreman:foreman '/var/log/foreman'
chown -Rf foreman:foreman '/var/cache/foreman'
chown -Rf foreman:foreman '/var/lib/foreman'
chown -f foreman:foreman '/usr/share/foreman/.ssh'
chmod 700 '/usr/share/foreman/.ssh'
chmod 755 '/var/lib/foreman'
chmod 755 '/var/lib/foreman/db'
chmod 755 '/var/lib/foreman/public'
chmod 755 '/var/lib/foreman/public/assets'
chmod 755 '/var/cache/foreman'
BUNDLE=bundle
[ -h /usr/bin/foreman-ruby ] && BUNDLE="/usr/bin/foreman-ruby /usr/bin/bundle"
# Test for Gemfile.lock to determine the right action.
export HOME=/usr/share/foreman
cd /usr/share/foreman
if [ -f Gemfile.lock ]; then
CMD="$BUNDLE update --jobs 4 --local"
else
CMD="$BUNDLE install --jobs 4 --path ./vendor/ --local --no-prune"
fi
if [ ! -z "${DEBUG}" ]; then
$CMD
else
$CMD 2>&1 >> $LOGFILE
fi
# encryption key used to encrypt DB contents
# move the generated key file to /etc/foreman/ so users back it up, symlink to it from ~foreman
if [ ! -e config/initializers/encryption_key.rb -a ! -e /etc/foreman/encryption_key.rb ]; then
touch config/initializers/encryption_key.rb
chmod 0660 config/initializers/encryption_key.rb
chgrp foreman config/initializers/encryption_key.rb
if [ ! -z "${DEBUG}" ]; then
/usr/sbin/foreman-rake security:generate_encryption_key || true
else
/usr/sbin/foreman-rake security:generate_encryption_key >> $LOGFILE 2>&1 || true
fi
chmod 0640 config/initializers/encryption_key.rb
mv config/initializers/encryption_key.rb /etc/foreman/
fi
if [ ! -e config/initializers/encryption_key.rb -a -e /etc/foreman/encryption_key.rb ]; then
ln -s /etc/foreman/encryption_key.rb config/initializers/
fi
# Generate apipie cache
if [ ! -z "${DEBUG}" ]; then
/usr/sbin/foreman-rake apipie:cache:index || true
else
/usr/sbin/foreman-rake apipie:cache:index >> $LOGFILE 2>&1 || true
fi
# Generate a static session token for signing cookies
if [ ! -f config/initializers/local_secret_token.rb ]; then
touch config/initializers/local_secret_token.rb
chmod 0660 config/initializers/local_secret_token.rb
chgrp foreman config/initializers/local_secret_token.rb
if [ ! -z "${DEBUG}" ]; then
/usr/sbin/foreman-rake security:generate_token || true
else
/usr/sbin/foreman-rake security:generate_token >> $LOGFILE 2>&1 || true
fi
chmod 0640 config/initializers/local_secret_token.rb
fi
chmod 755 /usr/share/foreman/script/npm_install_plugins.js
# Own all the core files
chown -Rf foreman:foreman '/usr/share/foreman'
#DEBHELPER#
exit 0