Modification : vm_{host,hosted,remote} -> {host,local,remote}/ .
[lhc/ateliers.git] / etc / sv / sympa / local.sh
diff --git a/etc/sv/sympa/local.sh b/etc/sv/sympa/local.sh
new file mode 100644 (file)
index 0000000..a82f18a
--- /dev/null
@@ -0,0 +1,159 @@
+home=/home/sympa
+
+"$tool"/local/runit-sv-configure postgres
+"$tool"/local/runit-sv-start     postgres
+while ! sudo -u postgres psql </dev/null
+do sleep 1; done
+~postgres/bin/createuser "$sv"
+sudo -u postgres psql template1 -a -f - <<-EOF
+       \set ON_ERROR_STOP on
+       -- NOTE: pour /usr/share/sympa/lib/Upgrade.pm
+       --       appelant DBI->tables
+       GRANT USAGE  ON SCHEMA pg_catalog                TO $sv;
+       GRANT SELECT ON TABLE  pg_catalog.pg_class       TO $sv;
+       GRANT SELECT ON TABLE  pg_catalog.pg_description TO $sv;
+       GRANT SELECT ON TABLE  pg_catalog.pg_namespace   TO $sv;
+       GRANT SELECT ON TABLE  pg_catalog.pg_tablespace  TO $sv;
+       -- NOTE: pour /usr/share/sympa/bin/create_db.Pg
+       -- CREATE SCHEMA $sv AUTHORIZATION $sv;
+               -- XXX: ne fonctionne pas à cause de cette vermine :
+               --      https://sourcesup.renater.fr/tracker/index.php?func=detail&aid=7459&group_id=23&atid=167
+               -- du coup on met les tables de SYMPA dans le schema public :
+       GRANT USAGE,CREATE ON SCHEMA public TO $sv;
+       EOF
+
+"$tool"/local/adduser "$sv" \
+ --disabled-login \
+ --disabled-password \
+ --group \
+ --home "$home" \
+ --shell /bin/false \
+ --system
+sudo adduser sympa postgres-data
+
+sudo install -d -m 770 -o "$sv" -g "$sv" \
+ "$home" \
+ "$home"/list_data \
+ "$home"/spool
+sudo install -d -m 755 -o root -g root \
+ /etc/sympa \
+ /etc/sympa/x509.d
+sudo install -m 644 -o root -g root \
+ /dev/stdin \
+ /etc/sympa/.gitignore <<-EOF
+       key_passwd
+       EOF
+m4 \
+ --define=VM_DOMAINNAME="$vm_domainname" \
+ --define=HOME="$home" \
+ "$tool"/etc/sympa/sympa.conf.m4 |
+sudo install -m 640 -o "$sv" -g "$sv" /dev/stdin \
+ /etc/sympa/sympa.conf
+sudo install -m 644 -o "$sv" -g "$sv" /dev/stdin \
+ /etc/sympa/facility <<-EOF
+       mail
+       EOF
+
+for host in $(find "$tool"/etc/sympa/host.d \
+ -mindepth 1 -maxdepth 1 -type d \
+ -printf '%f\n')
+ do
+       sudo install -d -m 770 -o "$sv" -g "$sv" \
+        /etc/sympa/"$host"
+       m4 \
+        --define=HOST="$host" \
+        "$tool"/etc/sympa/host.d/"$host"/robot.conf.m4 |
+       sudo install -m 440 -o "$sv" -g "$sv" /dev/stdin \
+        /etc/sympa/"$host"/robot.conf
+       sudo install -d -m 770 -o "$sv" -g "$sv" \
+        "$home"/list_data/"$host"
+ done
+
+sudo debconf-set-selections <<-EOF || true
+       sympa   sympa/app-password-confirm      password
+       sympa   sympa/password-confirm  password
+       # Mot de passe de connexion PostgreSQL pour sympa :
+       sympa   sympa/dbconfig-install  boolean true
+       sympa   sympa/pgsql/app-pass    password
+       ##sympa   sympa/mysql/admin-pass  password
+       sympa   sympa/pgsql/admin-pass  password
+       # Mot de passe de connexion MySQL pour sympa :
+       ##sympa   sympa/mysql/app-pass    password
+       # Faut-il configurer la base de données de sympa avec dbconfig-common ?
+       sympa   sympa/dbconfig-install  boolean true
+       # Nom d'hôte du serveur  pour sympa :
+       sympa   sympa/remote/newhost    string  
+       sympa   sympa/listmaster        string  postmaster@$vm_domainname
+       sympa   wwsympa/wwsympa_url     string  https://$sv.$vm_domainname/wws
+       sympa   wwsympa/webserver_restart       boolean false
+       sympa   sympa/remote/port       string  
+       sympa   sympa/pgsql/manualconf  note
+       # Faut-il sauvegarder la base de données pour sympa avant la mise à jour ?
+       sympa   sympa/upgrade-backup    boolean true
+       sympa   sympa/pgsql/changeconf  boolean false
+       # Nom d'hôte du serveur « sympa » :
+       sympa   sympa/hostname  string  $sv.$vm_domainname
+       sympa   sympa/pgsql/authmethod-user     select  unix socket
+       # Faut-il mettre à jour la base de données pour sympa avec dbconfig-common ?
+       sympa   sympa/dbconfig-upgrade  boolean true
+       sympa   sympa/use_soap  boolean false
+       # Nom de la base de données  pour sympa :
+       sympa   sympa/db/dbname string  $sv
+       sympa   sympa/internal/skip-preseed     boolean true
+       # Type de serveur de bases de données à utiliser avec sympa :
+       sympa   sympa/database-type     select  pgsql
+       # Répertoire pour la base de données  pour sympa :
+       sympa   sympa/db/basepath       string  
+       # Nom d'hôte du serveur de bases de données  pour sympa :
+       sympa   sympa/remote/host       select  /run/postgresql/
+       sympa   wwsympa/fastcgi boolean true
+       sympa   sympa/internal/reconfiguring    boolean false
+       # Identifiant  pour sympa :
+       sympa   sympa/db/app-user       string  $sv
+       # Faut-il purger la base de données pour sympa ?
+       sympa   sympa/purge     boolean false
+       sympa   sympa/remove-error      select  abort
+       sympa   wwsympa/webserver_type  select  Other
+       ##sympa   sympa/mysql/admin-user  string  root
+       # Faut-il défaire la configuration de la base de donnée de sympa avec dbconfig-common ?
+       sympa   sympa/dbconfig-remove   boolean 
+       # Méthode de connexion pour la base de données MySQL de sympa:
+       ##sympa   sympa/mysql/method      select  unix socket
+       # Faut-il réinstaller la base de données pour sympa ?
+       sympa   sympa/dbconfig-reinstall        boolean false
+       sympa   sympa/pgsql/admin-user  string  postgres
+       sympa   sympa/upgrade-error     select  abort
+       sympa   sympa/language  select  fr
+       # Méthode de connexion pour la base de données PostgreSQL de sympa :
+       sympa   sympa/pgsql/method      select  unix socket
+       sympa   sympa/install-error     select  abort
+       #sympa   sympa/pgsql/no-empty-passwords  error   
+       sympa   sympa/pgsql/authmethod-admin    select  unix socket
+       EOF
+sudo install -d -m 755 -o root -g root \
+ /etc/dbconfig-common
+sudo install -m 600 -o root -g root /dev/stdin \
+ /etc/dbconfig-common/sympa.conf <<-EOF
+               dbc_authmethod_admin='ident'
+               dbc_authmethod_user='ident'
+               dbc_basepath=''
+               dbc_dbadmin='postgres'
+               dbc_dbname='sympa'
+               dbc_dbpass=''
+               dbc_dbport=''
+               dbc_dbserver='/run/postgresql'
+               dbc_dbtype='pgsql'
+               dbc_dbuser='$sv'
+               dbc_install='true'
+               dbc_remove=''
+               dbc_ssl=''
+               dbc_upgrade='true'
+       EOF
+
+! sudo etckeeper unclean ||
+sudo etckeeper commit -m "rule_runit_configure $sv"
+
+"$tool"/local/apt-get-install --no-install-recommends sympa
+ # NOTE: évite d'installer apache2 ..
+
+"$tool"/local/insserv-remove sympa