ae7c1dc7297037f2519c577d48478d3e8eb2b114
[lhc/ateliers.git] / etc / sv / sympa / local.sh
1 home=/home/sympa
2
3 "$tool"/local/runit-sv-configure postgres
4 "$tool"/local/runit-sv-start postgres
5 while ! sudo -u postgres psql </dev/null
6 do sleep 1; done
7 "$tool"/local/postgresql-user-create "$sv"
8 sudo -u postgres psql template1 -a -f - <<-EOF
9 \set ON_ERROR_STOP on
10 -- NOTE: pour /usr/share/sympa/lib/Upgrade.pm
11 -- appelant DBI->tables
12 GRANT USAGE ON SCHEMA pg_catalog TO $sv;
13 GRANT SELECT ON TABLE pg_catalog.pg_class TO $sv;
14 GRANT SELECT ON TABLE pg_catalog.pg_description TO $sv;
15 GRANT SELECT ON TABLE pg_catalog.pg_namespace TO $sv;
16 GRANT SELECT ON TABLE pg_catalog.pg_tablespace TO $sv;
17 -- NOTE: pour /usr/share/sympa/bin/create_db.Pg
18 -- CREATE SCHEMA $sv AUTHORIZATION $sv;
19 -- XXX: ne fonctionne pas à cause de cette vermine :
20 -- https://sourcesup.renater.fr/tracker/index.php?func=detail&aid=7459&group_id=23&atid=167
21 -- du coup on met les tables de SYMPA dans le schema public :
22 GRANT USAGE,CREATE ON SCHEMA public TO $sv;
23 EOF
24
25 "$tool"/local/adduser "$sv" \
26 --disabled-login \
27 --disabled-password \
28 --group \
29 --home "$home" \
30 --shell /bin/false \
31 --system
32 sudo adduser sympa postgres-data
33
34 sudo install -d -m 770 -o "$sv" -g "$sv" \
35 "$home" \
36 "$home"/list_data \
37 "$home"/spool
38 sudo install -d -m 755 -o root -g root \
39 /etc/sympa \
40 /etc/sympa/x509.d
41 sudo install -m 644 -o root -g root \
42 /dev/stdin \
43 /etc/sympa/.gitignore <<-EOF
44 key_passwd
45 EOF
46 m4 \
47 --define=LOCAL_DOMAINNAME="$local_domainname" \
48 --define=HOME="$home" \
49 "$tool"/etc/sympa/sympa.conf.m4 |
50 sudo install -m 640 -o "$sv" -g "$sv" /dev/stdin \
51 /etc/sympa/sympa.conf
52 sudo install -m 644 -o "$sv" -g "$sv" /dev/stdin \
53 /etc/sympa/facility <<-EOF
54 mail
55 EOF
56
57 for host in $(find "$tool"/etc/sympa/host.d \
58 -mindepth 1 -maxdepth 1 -type d \
59 -printf '%f\n')
60 do
61 sudo install -d -m 770 -o "$sv" -g "$sv" \
62 /etc/sympa/"$host"
63 m4 \
64 --define=HOST="$host" \
65 "$tool"/etc/sympa/host.d/"$host"/robot.conf.m4 |
66 sudo install -m 440 -o "$sv" -g "$sv" /dev/stdin \
67 /etc/sympa/"$host"/robot.conf
68 sudo install -d -m 770 -o "$sv" -g "$sv" \
69 "$home"/list_data/"$host"
70 done
71
72 sudo debconf-set-selections <<-EOF || true
73 sympa sympa/app-password-confirm password
74 sympa sympa/password-confirm password
75 # Mot de passe de connexion PostgreSQL pour sympa :
76 sympa sympa/dbconfig-install boolean true
77 sympa sympa/pgsql/app-pass password
78 ##sympa sympa/mysql/admin-pass password
79 sympa sympa/pgsql/admin-pass password
80 # Mot de passe de connexion MySQL pour sympa :
81 ##sympa sympa/mysql/app-pass password
82 # Faut-il configurer la base de données de sympa avec dbconfig-common ?
83 sympa sympa/dbconfig-install boolean true
84 # Nom d'hôte du serveur pour sympa :
85 sympa sympa/remote/newhost string
86 sympa sympa/listmaster string postmaster@$local_domainname
87 sympa wwsympa/wwsympa_url string https://$sv.$local_domainname/wws
88 sympa wwsympa/webserver_restart boolean false
89 sympa sympa/remote/port string
90 sympa sympa/pgsql/manualconf note
91 # Faut-il sauvegarder la base de données pour sympa avant la mise à jour ?
92 sympa sympa/upgrade-backup boolean true
93 sympa sympa/pgsql/changeconf boolean false
94 # Nom d'hôte du serveur « sympa » :
95 sympa sympa/hostname string $sv.$local_domainname
96 sympa sympa/pgsql/authmethod-user select unix socket
97 # Faut-il mettre à jour la base de données pour sympa avec dbconfig-common ?
98 sympa sympa/dbconfig-upgrade boolean true
99 sympa sympa/use_soap boolean false
100 # Nom de la base de données pour sympa :
101 sympa sympa/db/dbname string $sv
102 sympa sympa/internal/skip-preseed boolean true
103 # Type de serveur de bases de données à utiliser avec sympa :
104 sympa sympa/database-type select pgsql
105 # Répertoire pour la base de données pour sympa :
106 sympa sympa/db/basepath string
107 # Nom d'hôte du serveur de bases de données pour sympa :
108 sympa sympa/remote/host select /run/postgresql/
109 sympa wwsympa/fastcgi boolean true
110 sympa sympa/internal/reconfiguring boolean false
111 # Identifiant pour sympa :
112 sympa sympa/db/app-user string $sv
113 # Faut-il purger la base de données pour sympa ?
114 sympa sympa/purge boolean false
115 sympa sympa/remove-error select abort
116 sympa wwsympa/webserver_type select Other
117 ##sympa sympa/mysql/admin-user string root
118 # Faut-il défaire la configuration de la base de donnée de sympa avec dbconfig-common ?
119 sympa sympa/dbconfig-remove boolean
120 # Méthode de connexion pour la base de données MySQL de sympa:
121 ##sympa sympa/mysql/method select unix socket
122 # Faut-il réinstaller la base de données pour sympa ?
123 sympa sympa/dbconfig-reinstall boolean false
124 sympa sympa/pgsql/admin-user string postgres
125 sympa sympa/upgrade-error select abort
126 sympa sympa/language select fr
127 # Méthode de connexion pour la base de données PostgreSQL de sympa :
128 sympa sympa/pgsql/method select unix socket
129 sympa sympa/install-error select abort
130 #sympa sympa/pgsql/no-empty-passwords error
131 sympa sympa/pgsql/authmethod-admin select unix socket
132 EOF
133 sudo install -d -m 755 -o root -g root \
134 /etc/dbconfig-common
135 sudo install -m 600 -o root -g root /dev/stdin \
136 /etc/dbconfig-common/sympa.conf <<-EOF
137 dbc_authmethod_admin='ident'
138 dbc_authmethod_user='ident'
139 dbc_basepath=''
140 dbc_dbadmin='postgres'
141 dbc_dbname='sympa'
142 dbc_dbpass=''
143 dbc_dbport=''
144 dbc_dbserver='/run/postgresql'
145 dbc_dbtype='pgsql'
146 dbc_dbuser='$sv'
147 dbc_install='true'
148 dbc_remove=''
149 dbc_ssl=''
150 dbc_upgrade='true'
151 EOF
152
153 ! sudo etckeeper unclean ||
154 sudo etckeeper commit -m "rule_runit_configure $sv"
155
156 "$tool"/local/apt-get-install --no-install-recommends sympa
157 # NOTE: évite d'installer apache2 ..
158
159 "$tool"/local/insserv-remove sympa
160
161 sudo -u postgres psql template1 -a -f - <<-EOF
162 \set ON_ERROR_STOP on
163 REVOKE ALL ON DATABASE $sv FROM public;
164 GRANT ALL PRIVILEGES ON DATABASE $sv TO $sv;
165 EOF