blob: f850f3e01c3db2a452d275d1574e232bbdd75613 (
plain)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
post_install() {
# Make sure stoqserver's home exists
if [ ! -d '/usr/share/stoqserver' ]; then
mkdir -p '/usr/share/stoqserver'
fi
#Crete script stoqsconf
if [ ! -d '/usr/share/stoqserver/stoqsconf' ]; then
cat << 'EOF' > /usr/bin/stoqsconf
#!/bin/bash
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-p|--port)
PORT="$2"
shift # past argument
shift # past value
;;
-D|--directory)
DIR="$2"
shift # past argument
shift # past value
;;
-h|--help)
HELP="$2"
shift # past argument
shift # past value
echo "help text"
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
if [[ -n $1 ]]; then
echo "Invalid argument."
else
#Create pgpass file
if [ ! -f ${DIR}/.pgpass ]; then
createuser -p ${PORT} -dsR stoqserver
PG_PASSWORD="`cat /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c32`"
psql -p $PORT -c "ALTER USER stoqserver WITH PASSWORD '${PG_PASSWORD}';"
echo "*:*:*:stoqserver:${PG_PASSWORD}" > ${DIR}/.pgpass
chmod 0600 ${DIR}/.pgpass
fi
#Create a ssh key for remote support
if [ ! -f ${DIR}/.ssh/id_rsa ]; then
if [ ! -f ${DIR}/.ssh/ ]; then
mkdir -p ${DIR}/.ssh
fi
ssh-keygen -t rsa -N "" -f ${DIR}/.ssh/id_rsa
fi
fi
EOF
chmod 777 /usr/bin/stoqsconf
fi
# Create .stoq dir and configuration if they don't exist
if [ ! -f /usr/share/stoqserver/.stoq/stoq.conf ]; then
mkdir -p /usr/share/stoqserver/.stoq
cat <<EOF > /usr/share/stoqserver/.stoq/stoq.conf
[General]
logfile = /usr/share/stoqserver/.stoq/stoqserver.log
[Database]
rdbms = postgres
address =
port = 5432
dbname = stoq
dbusername = stoqserver
[Backup]
key =
EOF
fi
# Create stoqserver user if it doesn't exist
if ! getent group stoqserver >/dev/null; then
useradd -d '/usr/share/stoqserver' -s /bin/bash stoqserver
passwd -l stoqserver >/dev/null
fi
if ! getent group stoqserver | grep &>/dev/null "postgres"; then
gpasswd -a postgres stoqserver
fi
# Fix directory permissions
chown -R stoqserver:stoqserver /usr/share/stoqserver
chmod g+rwx -R /usr/share/stoqserver
grep -q 'files = /etc/supervisor/conf.d/\*.conf' /etc/supervisord.conf || echo 'files = /etc/supervisor/conf.d/*.conf' >> /etc/supervisord.conf
}
post_upgrade() {
post_install $1
# FS#23858, fix postgres user shell issue
stoqserver_shell=$(getent passwd stoqserver | cut -d: -f7)
if [ "$stoqserver_shell" = "/sbin/nologin" ]; then
chsh -s /bin/bash stoqserver
fi
}
post_remove() {
if getent passwd stoqserver >/dev/null; then
userdel stoqserver
fi
if getent group stoqserver >/dev/null; then
groupdel stoqserver
fi
}
|