urd

urd2.let.rug.nl

Platform: Ubuntu 18.04.2 LTS (Bionic Beaver)


Afspraken groot overleg 5 juni 2019:

Vraag: wie doet wat en wanneer?


Snelle oplossing voor urd2

Nieuw bestand /etc/apache2/conf-enabled/local.conf:

<Macro User $who $where>
  <Directory /net/homepages/$where/www>
    <If "%{SCRIPT_USER} == '$who'">
      <IfModule mpm_itk_module>
        AssignUserId $who $who
      </IfModule>
    </If>
  </Directory>
</Macro>
Use User f109308 alfa
Use User p107437 gosse
Use User p141988 vannoord
Use User p209327 kleiweg
Use User p218615 wieling
Use User p266548 rikvannoord
Use User p278972 atoral
Use User p282832 JURIsays

Installeren:

a2dismod suexec
rm -r /etc/apache2/suexec
apt-get install libapache2-mpm-itk
a2enmod macro
a2enmod mpm_itk
systemctl reload apache2

Users verwijderen: JURIsays alfa atoral gosse kleiweg rikvannoord vannoord wieling


Voorstel voor aanpassingen op urd

Alle aanpassingen, alles wat niet standaard is, zoveel mogelijk opslaan onder /var/local (of een andere plek waar nu niets staat). En voor zover het niet mogelijk is, documentatie over aanpassingen opslaan onder /var/local

Lokale configuratiebestanden voor Apache in /var/local/apache2/conf-available plaatsten, en symlinken naar /etc/apache2/conf-available:

mkdir -p /var/local/apache2/conf-available
mv /etc/apache2/conf-enabled/local.conf /var/local/apache2/conf-available
ln -s /var/local/apache2/conf-available/local.conf /etc/apache2/conf-available
a2enconf local

/net/homepages verplaatsen naar /net/urd/www/html en /net/urd mounten op urd* (naar analogie van de default docroot /var/www/html)
READMEs die nu in /net/homepages staan verplaatsen naar /net/urd/www

Onder /net/urd is naast www plaats voor directories voor andere services die we later zouden willen draaien op urd.

Aanpassingen aan Apache:

Zie eerst boven, bij snelle oplossing

Het gebruik van de module mpm_itk (ipv suexec) maakt het volgende mogelijk:

Module userdir verwijderen. Omdat onderdelen niet in de homedirectories van gebruikers staan is dit niet nodig. Het was alleen nog nodig voor suexec (misschien ook dat niet, weet ik niet zeker).

a2dismod userdir
rm /etc/apache2/mods-enabled/userdir.*

/var/local/apache2/conf-available/local.conf aanpassen:

# dit wordt gesymlinkt naar /etc/apache2/conf-available
<Macro User $who $where>
  <Directory /net/urd/www/html/$where>
    <If "%{SCRIPT_USER} == '$who'">
      <IfModule mpm_itk_module>
        AssignUserId $who $who
      </IfModule>
    </If>
  </Directory>
</Macro>
Use User f109308 alfa
Use User p107437 gosse
Use User p141988 vannoord
Use User p209327 kleiweg
Use User p218615 wieling
Use User p266548 rikvannoord
Use User p278972 atoral
Use User p282832 JURIsays

In /etc/apache2/sites-available/000-default.conf aanpassen:

DocumentRoot /net/urd/www/html

Het gevolg hiervan is dat de tilde in URLs verdwijnt, en dat gebruikers hun webpagina’s een directory omhoog moeten zetten. De subdirectory www (onder username) verdwijnt.

In /etc/apache2/apache2.conf zijn een aantal redirects toegevoegd, zoals: Redirect permanent /vannoord /~vannoord
Die redirects moeten er weer uit.

Herstarten:

systemctl reload apache2

Momenteel heeft iedereen van groep aistaff schrijfrechten in /net/homepages (dat /net/urd/www/html zou moeten worden). Kwaadwillenden met schrijfrechten daar kunnen een bestaande directory van een ander hernoemen, en een nieuwe directory aanmaken onder de oude naam. Het gebruik van de <If> in de configuratie zorgt ervoor dat iemand op deze manier niet de rechten van een ander kan kapen. (Getest: dit is ook veilig als de verandering gebeurt nadat Apache al is gestart.) Maar misschien moeten we gewoon niet iedereen uit aistaff schrijfrechten geven in die directory.

Aanpassingen voor MySQL:

Alles onder /var/local/mysql zetten

Backup vanuit cron.daily, niet vanuit cron van root:

mkdir /var/local/mysql
mv /var/backups2/mysql /var/local/mysql/backup
rmdir /var/backups2
mv /root/bin/mysqlbackup* /var/local/mysql
ln -s /var/local/mysql/mysqlbackup /etc/cron.daily

Script mysqlbackup aanpassen:

Cronjob voor root van mysqlbackup verwijderen


Benodigde rechten voor GvN en PK


Andere services installeren…?


urd4

Homepages in Docker? In Kubernetes? Welk probleem los je daarmee op?

We zitten met urd juist omdat het webplatform met z’n Docker en Kubernetes de mogelijkheden van homepages te veel beperkt. Het webplatform is ingericht op het hosten van een grote hoeveelheid homepages. De situatie op urd is heel anders, kleinschalig.

Daarnaast willen we urd gebruiken om te experimenteren met nieuwe (web-)technieken. Of niet? Dan hebben we een eenvoudig systeem nodig dat relatief eenvoudig is aan te passen aan onze wensen. Met overal Docker of Kubernetes ertussen wordt dat een stuk ingewikkelder.

urd