X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=etc%2Fsv%2Fsympa%2Flocal.sh;fp=etc%2Fsv%2Fsympa%2Flocal.sh;h=a82f18a14411c16045bd6638a43e53204dd48142;hb=3ad6118386977e346d81042e924e5db9c5f15b7d;hp=0000000000000000000000000000000000000000;hpb=22f04b9fac14adc3d3fc98273ba126c3a51792c3;p=lhc%2Fateliers.git diff --git a/etc/sv/sympa/local.sh b/etc/sv/sympa/local.sh new file mode 100644 index 0000000..a82f18a --- /dev/null +++ b/etc/sv/sympa/local.sh @@ -0,0 +1,159 @@ +home=/home/sympa + +"$tool"/local/runit-sv-configure postgres +"$tool"/local/runit-sv-start postgres +while ! sudo -u postgres psql 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