Documents for Baguette infrastructure.
commit
6da92a1b46
|
@ -0,0 +1,144 @@
|
|||
PACKAGE = 'infra-baguette'
|
||||
VERSION = '0.1.0'
|
||||
|
||||
PREFIX := /usr/local
|
||||
BINDIR := $(PREFIX)/bin
|
||||
LIBDIR := $(PREFIX)/lib
|
||||
SHAREDIR := $(PREFIX)/share
|
||||
INCLUDEDIR := $(PREFIX)/include
|
||||
MANDIR := $(SHAREDIR)/man
|
||||
|
||||
Q := @
|
||||
|
||||
all: man/certificats.7 man/infra.7
|
||||
@:
|
||||
|
||||
man/certificats.7: man/certificats.7.scd man
|
||||
@echo '[01;33m MAN > [01;37mman/certificats.7[00m'
|
||||
$(Q)scdoc < 'man/certificats.7.scd' > 'man/certificats.7'
|
||||
|
||||
|
||||
man/certificats.7.install: man/certificats.7
|
||||
@echo '[01;31m IN > [01;37m$(MANDIR)/man7/certificats.7[00m'
|
||||
$(Q)mkdir -p '$(DESTDIR)$(MANDIR)/man7'
|
||||
$(Q)install -m0644 man/certificats.7 $(DESTDIR)$(MANDIR)/man7/certificats.7
|
||||
|
||||
man/certificats.7.clean:
|
||||
@echo '[01;37m RM > [01;37mman/certificats.7[00m'
|
||||
$(Q)rm -f man/certificats.7
|
||||
|
||||
man/certificats.7.uninstall:
|
||||
@echo '[01;37m RM > [01;37m$(MANDIR)/man7/certificats.7[00m'
|
||||
$(Q)rm -f '$(DESTDIR)$(MANDIR)/man7/certificats.7'
|
||||
|
||||
man/infra.7: man/infra.7.scd man
|
||||
@echo '[01;33m MAN > [01;37mman/infra.7[00m'
|
||||
$(Q)scdoc < 'man/infra.7.scd' > 'man/infra.7'
|
||||
|
||||
|
||||
man/infra.7.install: man/infra.7
|
||||
@echo '[01;31m IN > [01;37m$(MANDIR)/man7/infra.7[00m'
|
||||
$(Q)mkdir -p '$(DESTDIR)$(MANDIR)/man7'
|
||||
$(Q)install -m0644 man/infra.7 $(DESTDIR)$(MANDIR)/man7/infra.7
|
||||
|
||||
man/infra.7.clean:
|
||||
@echo '[01;37m RM > [01;37mman/infra.7[00m'
|
||||
$(Q)rm -f man/infra.7
|
||||
|
||||
man/infra.7.uninstall:
|
||||
@echo '[01;37m RM > [01;37m$(MANDIR)/man7/infra.7[00m'
|
||||
$(Q)rm -f '$(DESTDIR)$(MANDIR)/man7/infra.7'
|
||||
|
||||
man:
|
||||
$(Q)mkdir -p man
|
||||
$(DESTDIR)$(PREFIX):
|
||||
@echo '[01;35m DIR > [01;37m$(PREFIX)[00m'
|
||||
$(Q)mkdir -p $(DESTDIR)$(PREFIX)
|
||||
$(DESTDIR)$(BINDIR):
|
||||
@echo '[01;35m DIR > [01;37m$(BINDIR)[00m'
|
||||
$(Q)mkdir -p $(DESTDIR)$(BINDIR)
|
||||
$(DESTDIR)$(LIBDIR):
|
||||
@echo '[01;35m DIR > [01;37m$(LIBDIR)[00m'
|
||||
$(Q)mkdir -p $(DESTDIR)$(LIBDIR)
|
||||
$(DESTDIR)$(SHAREDIR):
|
||||
@echo '[01;35m DIR > [01;37m$(SHAREDIR)[00m'
|
||||
$(Q)mkdir -p $(DESTDIR)$(SHAREDIR)
|
||||
$(DESTDIR)$(INCLUDEDIR):
|
||||
@echo '[01;35m DIR > [01;37m$(INCLUDEDIR)[00m'
|
||||
$(Q)mkdir -p $(DESTDIR)$(INCLUDEDIR)
|
||||
$(DESTDIR)$(MANDIR):
|
||||
@echo '[01;35m DIR > [01;37m$(MANDIR)[00m'
|
||||
$(Q)mkdir -p $(DESTDIR)$(MANDIR)
|
||||
install: man/certificats.7.install man/infra.7.install
|
||||
@:
|
||||
|
||||
uninstall: man/certificats.7.uninstall man/infra.7.uninstall
|
||||
@:
|
||||
|
||||
clean: man/certificats.7.clean man/infra.7.clean
|
||||
distclean: clean
|
||||
dist: dist-gz dist-xz dist-bz2
|
||||
$(Q)rm -- $(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir:
|
||||
$(Q)rm -rf -- $(PACKAGE)-$(VERSION)
|
||||
$(Q)ln -s -- . $(PACKAGE)-$(VERSION)
|
||||
|
||||
dist-gz: $(PACKAGE)-$(VERSION).tar.gz
|
||||
$(PACKAGE)-$(VERSION).tar.gz: distdir
|
||||
@echo '[01;33m TAR > [01;37m$(PACKAGE)-$(VERSION).tar.gz[00m'
|
||||
$(Q)tar czf $(PACKAGE)-$(VERSION).tar.gz \
|
||||
$(PACKAGE)-$(VERSION)/Makefile \
|
||||
$(PACKAGE)-$(VERSION)/project.zsh \
|
||||
$(PACKAGE)-$(VERSION)/man/certificats.7.scd \
|
||||
$(PACKAGE)-$(VERSION)/man/infra.7.scd
|
||||
|
||||
dist-xz: $(PACKAGE)-$(VERSION).tar.xz
|
||||
$(PACKAGE)-$(VERSION).tar.xz: distdir
|
||||
@echo '[01;33m TAR > [01;37m$(PACKAGE)-$(VERSION).tar.xz[00m'
|
||||
$(Q)tar cJf $(PACKAGE)-$(VERSION).tar.xz \
|
||||
$(PACKAGE)-$(VERSION)/Makefile \
|
||||
$(PACKAGE)-$(VERSION)/project.zsh \
|
||||
$(PACKAGE)-$(VERSION)/man/certificats.7.scd \
|
||||
$(PACKAGE)-$(VERSION)/man/infra.7.scd
|
||||
|
||||
dist-bz2: $(PACKAGE)-$(VERSION).tar.bz2
|
||||
$(PACKAGE)-$(VERSION).tar.bz2: distdir
|
||||
@echo '[01;33m TAR > [01;37m$(PACKAGE)-$(VERSION).tar.bz2[00m'
|
||||
$(Q)tar cjf $(PACKAGE)-$(VERSION).tar.bz2 \
|
||||
$(PACKAGE)-$(VERSION)/Makefile \
|
||||
$(PACKAGE)-$(VERSION)/project.zsh \
|
||||
$(PACKAGE)-$(VERSION)/man/certificats.7.scd \
|
||||
$(PACKAGE)-$(VERSION)/man/infra.7.scd
|
||||
|
||||
help:
|
||||
@echo '[01;37m :: infra-baguette-0.1.0[00m'
|
||||
@echo ''
|
||||
@echo '[01;37mGeneric targets:[00m'
|
||||
@echo '[00m - [01;32mhelp [37m Prints this help message.[00m'
|
||||
@echo '[00m - [01;32mall [37m Builds all targets.[00m'
|
||||
@echo '[00m - [01;32mdist [37m Creates tarballs of the files of the project.[00m'
|
||||
@echo '[00m - [01;32minstall [37m Installs the project.[00m'
|
||||
@echo '[00m - [01;32mclean [37m Removes compiled files.[00m'
|
||||
@echo '[00m - [01;32muninstall [37m Deinstalls the project.[00m'
|
||||
@echo ''
|
||||
@echo '[01;37mCLI-modifiable variables:[00m'
|
||||
@echo ' - [01;34mPREFIX [37m ${PREFIX}[00m'
|
||||
@echo ' - [01;34mBINDIR [37m ${BINDIR}[00m'
|
||||
@echo ' - [01;34mLIBDIR [37m ${LIBDIR}[00m'
|
||||
@echo ' - [01;34mSHAREDIR [37m ${SHAREDIR}[00m'
|
||||
@echo ' - [01;34mINCLUDEDIR [37m ${INCLUDEDIR}[00m'
|
||||
@echo ' - [01;34mMANDIR [37m ${MANDIR}[00m'
|
||||
@echo ''
|
||||
@echo '[01;37mProject targets: [00m'
|
||||
@echo ' - [01;33mman/certificats.7 [37m scdocman[00m'
|
||||
@echo ' - [01;33mman/infra.7 [37m scdocman[00m'
|
||||
@echo ''
|
||||
@echo '[01;37mMakefile options:[00m'
|
||||
@echo ' - gnu: false'
|
||||
@echo ' - colors: true'
|
||||
@echo ''
|
||||
@echo '[01;37mRebuild the Makefile with:[00m'
|
||||
@echo ' zsh ./build.zsh -c'
|
||||
.PHONY: all clean distclean dist install uninstall help
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
.\" Generated by scdoc 1.11.1
|
||||
.\" Complete documentation for this program is not available as a GNU info page
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.nh
|
||||
.ad l
|
||||
.\" Begin generated content:
|
||||
.TH "INFRA" "7" "2022-04-23" "Infrastructure Baguette" "Manuel de l'infra de Baguette"
|
||||
.P
|
||||
.SH Liste des machines à toucher lors d'une mise à jour des certificats
|
||||
.P
|
||||
.P
|
||||
.TS
|
||||
allbox;c c c
|
||||
c c c
|
||||
c c c.
|
||||
T{
|
||||
\fBMachine\fR
|
||||
T} T{
|
||||
\fISystème\fR
|
||||
T} T{
|
||||
\fIApplications nécessitant des certificats
|
||||
T}
|
||||
T{
|
||||
team
|
||||
T} T{
|
||||
OpenBSD
|
||||
T} T{
|
||||
smptd
|
||||
T}
|
||||
T{
|
||||
alpha
|
||||
T} T{
|
||||
Alpine
|
||||
T} T{
|
||||
nginx
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
\fRLa machine \fBteam\fR gère les certificats avec \fIacme-client\fR.\&
|
||||
.P
|
||||
.SH Certificats gérés
|
||||
.P
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
\fI*.\&baguette.\&netlib.\&re\fR
|
||||
|
||||
.RE
|
||||
.P
|
||||
.SH Comment mettre à jour
|
||||
.P
|
||||
Si les machines \fIteam\fR et \fIalpha\fR sont dans le \fB.\&ssh/config\fR, un copier/coller fonctionne.\&
|
||||
.P
|
||||
.nf
|
||||
.RS 4
|
||||
ssh team acme-client baguette\&.netlib\&.re
|
||||
NOW=`date "+%Y-%m-%d_%H-%M-%S"`
|
||||
ssh team tar czvf crypto-$NOW\&.tar\&.gz /etc/ssl/bag* /etc/ssl/private/b*
|
||||
scp team:crypto-$NOW\&.tar\&.gz \&.
|
||||
scp crypto-$NOW\&.tar\&.gz alpha:/
|
||||
ssh alpha "cd / && tar xf crypto-$NOW\&.tar\&.gz"
|
||||
ssh alpha "rm /crypto-$NOW\&.tar\&.gz"
|
||||
ssh alpha "pkill -1 nginx" # TODO: réparer le lancement de nginx
|
||||
ssh team "rcctl restart smtpd"
|
||||
ssh team "rcctl restart dovecot"
|
||||
.fi
|
||||
.RE
|
|
@ -0,0 +1,37 @@
|
|||
INFRA(7) "Infrastructure Baguette" "Manuel de l'infra de Baguette"
|
||||
|
||||
# Liste des machines à toucher lors d'une mise à jour des certificats
|
||||
|
||||
|
||||
[- *Machine*
|
||||
:- _Système_
|
||||
:- _Applications nécessitant des certificats
|
||||
|- team
|
||||
:- OpenBSD
|
||||
:- smptd
|
||||
|- alpha
|
||||
:- Alpine
|
||||
:- nginx
|
||||
|
||||
_La machine *team* gère les certificats avec _acme-client_.
|
||||
|
||||
# Certificats gérés
|
||||
|
||||
- _\*.baguette.netlib.re_
|
||||
|
||||
# Comment mettre à jour
|
||||
|
||||
Si les machines _team_ et _alpha_ sont dans le *.ssh/config*, un copier/coller fonctionne.
|
||||
|
||||
```
|
||||
ssh team acme-client baguette.netlib.re
|
||||
NOW=`date "+%Y-%m-%d_%H-%M-%S"`
|
||||
ssh team tar czvf crypto-$NOW.tar.gz /etc/ssl/bag* /etc/ssl/private/b*
|
||||
scp team:crypto-$NOW.tar.gz .
|
||||
scp crypto-$NOW.tar.gz alpha:/
|
||||
ssh alpha "cd / && tar xf crypto-$NOW.tar.gz"
|
||||
ssh alpha "rm /crypto-$NOW.tar.gz"
|
||||
ssh alpha "pkill -1 nginx" # TODO: réparer le lancement de nginx
|
||||
ssh team "rcctl restart smtpd"
|
||||
ssh team "rcctl restart dovecot"
|
||||
```
|
|
@ -0,0 +1,398 @@
|
|||
.\" Generated by scdoc 1.11.1
|
||||
.\" Complete documentation for this program is not available as a GNU info page
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.nh
|
||||
.ad l
|
||||
.\" Begin generated content:
|
||||
.TH "INFRA" "7" "2022-04-23" "Infrastructure de Baguette" "Manuel de l'infra de Baguette"
|
||||
.P
|
||||
.SH Liste des machines
|
||||
.P
|
||||
Pour les services : \fBtrès important\fR, \fIplutôt important\fR
|
||||
.P
|
||||
.TS
|
||||
allbox;c c c c c
|
||||
c c l c l
|
||||
c c l c l
|
||||
c c l c l
|
||||
c c l c l
|
||||
c c l c l
|
||||
c c l c l.
|
||||
T{
|
||||
\fBARN\fR
|
||||
T} T{
|
||||
\fISystème\fR
|
||||
T} T{
|
||||
\fIAdresse\fR
|
||||
T} T{
|
||||
\fIPort SSH\fR
|
||||
T} T{
|
||||
\fIServices\fR
|
||||
T}
|
||||
T{
|
||||
\fBPhysique\fR
|
||||
T} T{
|
||||
Alpine 3.\&15
|
||||
T} T{
|
||||
89.\&234.\&141.\&125
|
||||
T} T{
|
||||
22
|
||||
T} T{
|
||||
\fBfirewall\fR
|
||||
T}
|
||||
T{
|
||||
team
|
||||
T} T{
|
||||
OpenBSD 6.\&6
|
||||
T} T{
|
||||
192.\&168.\&122.\&132
|
||||
T} T{
|
||||
2210
|
||||
T} T{
|
||||
\fBgitea\fR \fImattermost\fR \fBsmtpd\fR
|
||||
T}
|
||||
T{
|
||||
alpha
|
||||
T} T{
|
||||
Alpine 3.\&15
|
||||
T} T{
|
||||
192.\&168.\&122.\&84
|
||||
T} T{
|
||||
2203
|
||||
T} T{
|
||||
\fIalpha\fR \fBwebsocketd\fR \fBnginx\fR todod arpenteurs
|
||||
T}
|
||||
T{
|
||||
bsdbuild
|
||||
T} T{
|
||||
OpenBSD 6.\&6
|
||||
T} T{
|
||||
192.\&168.\&122.\&165
|
||||
T} T{
|
||||
2265
|
||||
T} T{
|
||||
builds (weechat)
|
||||
T}
|
||||
T{
|
||||
R&D
|
||||
T} T{
|
||||
Alpine 3.\&1X
|
||||
T} T{
|
||||
192.\&168.\&122.\&211
|
||||
T} T{
|
||||
2205
|
||||
T} T{
|
||||
expérimental
|
||||
T}
|
||||
T{
|
||||
CEIUS
|
||||
T} T{
|
||||
Alpine 3.\&1X
|
||||
T} T{
|
||||
192.\&168.\&122.\&30
|
||||
T} T{
|
||||
2230
|
||||
T} T{
|
||||
CEIUS (?\&?\&)
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.P
|
||||
.P
|
||||
\fINotes\fR :
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
Les machines pourraient être renommées.\&
|
||||
.br
|
||||
Les adresses et les ports sont aléatoires.\&
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
Le serveur physique a plusieurs disques, mais un seul est utilisé pour le moment.\&
|
||||
.br
|
||||
Un RAID serait envisageable.\&
|
||||
|
||||
.RE
|
||||
.P
|
||||
.SH phy0
|
||||
.P
|
||||
La machine `phy0` redémarre sur son disque `/dev/sdb`.\&
|
||||
.P
|
||||
.SS procédure après redémarrage
|
||||
.P
|
||||
Il faut supprimer la règle iptables empêchant les connexions extérieures vers les machines virtuelles.\&
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
iptables -D FORWARD 2
|
||||
|
||||
.RE
|
||||
.P
|
||||
.SH VM Alpha
|
||||
.P
|
||||
.SS NGINX
|
||||
.P
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
gère toutes les connexions entrantes sur les ports 80, 443
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
configuration dans \fI/srv/root/nginx/\fR, attention au rewrite de service (voir \fBTODO\fR)
|
||||
|
||||
.RE
|
||||
.P
|
||||
.TS
|
||||
allbox;c c c
|
||||
c c c
|
||||
c c c
|
||||
c c c
|
||||
c c c.
|
||||
T{
|
||||
\fIDomaine\fR
|
||||
T} T{
|
||||
\fIService\fR
|
||||
T} T{
|
||||
\fIPort\fR
|
||||
T}
|
||||
T{
|
||||
\fBgit.\&baguette.\&netlib.\&re\fR
|
||||
T} T{
|
||||
gitea
|
||||
T} T{
|
||||
443 (80 redirigé)
|
||||
T}
|
||||
T{
|
||||
\fBteam.\&baguette.\&netlib.\&re\fR
|
||||
T} T{
|
||||
mattermost
|
||||
T} T{
|
||||
443 (80 redirigé)
|
||||
T}
|
||||
T{
|
||||
\fItodo.\&baguette.\&netlib.\&re\fR
|
||||
T} T{
|
||||
todo
|
||||
T} T{
|
||||
443 (80 redirigé), 9999
|
||||
T}
|
||||
T{
|
||||
arpenteurs.\&netlib.\&re
|
||||
T} T{
|
||||
kemal
|
||||
T} T{
|
||||
80
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.SH VM team
|
||||
.P
|
||||
.SS {git,team}.baguette.netlib.re
|
||||
.P
|
||||
Les services `gitea` et `mattermost` sont \fIouvert\fR au public, notamment pour le projet `Baguette`.\&
|
||||
.P
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
gitea et mattermost utilisent \fIpostgresql\fR
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
gitea
|
||||
.RS 4
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
configuration: \fI/etc/gitea/\fR = la base, \fI/var/gitea/\fR = les données + personnalisation
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
\fI/etc/gitea/gitea.\&conf\fR = psql, mails, droits
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
\fI/var/gitea/\fR = dépôts, avatars, personnalisation de l'apparence
|
||||
.RE
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
mattermost pour le développement
|
||||
|
||||
.RE
|
||||
.P
|
||||
Les certificats ont été générés par \fIacme.\&sh\fR.\& Voir section \fBTODO\fR.\&
|
||||
.P
|
||||
.SS opensmtpd
|
||||
.P
|
||||
Le serveur smtpd gère les domaines :
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
baguette.\&netlib.\&re (requis par gitea et mattermost)
|
||||
|
||||
.RE
|
||||
.P
|
||||
\fBDebug potentiel\fR
|
||||
.P
|
||||
En cas de \fB\fRAUTH LOGIN failed\fB\fR dans les logs, vérifier que \fBrspamd\fR est lancé.\&
|
||||
.P
|
||||
.P
|
||||
.SH VM bsdbuild (toujours active ?)
|
||||
.P
|
||||
Actuellement : zone de jeu, on peut tester des outils dessus, lancer des compilations.\&
|
||||
.P
|
||||
.P
|
||||
.SH TODO pour le développement d'outils à déployer sur l'infra
|
||||
.P
|
||||
.SS Pare-feu
|
||||
.P
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
pourrait imposer un rate limit
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
l'accès à un service depuis une autre VM est compromis pour l'instant, il faut des règles DNAT+SNAT
|
||||
|
||||
.RE
|
||||
.P
|
||||
.SS Déploiement
|
||||
.P
|
||||
Le déploiement devrait être effectué de manière automatique depuis les sources.\&
|
||||
Actuellement un problème réseau nous en empêche : il faut se plonger dans `iptables`.\&
|
||||
.P
|
||||
\fBservice\fR
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
pourrait (devrait ?\&) être utilisé à terme
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
manque la gestion correcte des groupes au lancement d'un processus
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
lance actuellement nginx \fBmais sa configuration est réécrite avec de mauvaises valeurs\fR, à revoir
|
||||
|
||||
.RE
|
||||
.P
|
||||
\fBlibipc\fR doit être patché pour les sockets unix qu'il crée :
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
changer le propriétaire et le groupe
|
||||
.RE
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
changer les permissions
|
||||
|
||||
.RE
|
||||
.P
|
||||
.SS Certificats à maintenir
|
||||
.P
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.IP \(bu 4
|
||||
.\}
|
||||
baguette.\&netlib.\&re (+ git, team et todo sur le même domaine)
|
||||
|
||||
.RE
|
||||
.P
|
||||
.SS Adresse IPv6
|
||||
.P
|
||||
Pour le moment tout est en v4, y compris sur la machine physique.\&
|
|
@ -0,0 +1,140 @@
|
|||
INFRA(7) "Infrastructure de Baguette" "Manuel de l'infra de Baguette"
|
||||
|
||||
# Liste des machines
|
||||
|
||||
Pour les services : *très important*, _plutôt important_
|
||||
|
||||
[- *ARN*
|
||||
:- _Système_
|
||||
:- _Adresse_
|
||||
:- _Port SSH_
|
||||
:- _Services_
|
||||
|- *Physique*
|
||||
:- Alpine 3.15
|
||||
:[ 89.234.141.125
|
||||
:- 22
|
||||
:[ *firewall*
|
||||
|- team
|
||||
:- OpenBSD 6.6
|
||||
:[ 192.168.122.132
|
||||
:- 2210
|
||||
:[ *gitea* _mattermost_ *smtpd*
|
||||
|- alpha
|
||||
:- Alpine 3.15
|
||||
:[ 192.168.122.84
|
||||
:- 2203
|
||||
:[ _alpha_ *websocketd* *nginx* todod arpenteurs
|
||||
|- bsdbuild
|
||||
:- OpenBSD 6.6
|
||||
:[ 192.168.122.165
|
||||
:- 2265
|
||||
:[ builds (weechat)
|
||||
|- R&D
|
||||
:- Alpine 3.1X
|
||||
:[ 192.168.122.211
|
||||
:- 2205
|
||||
:[ expérimental
|
||||
|- CEIUS
|
||||
:- Alpine 3.1X
|
||||
:[ 192.168.122.30
|
||||
:- 2230
|
||||
:[ CEIUS (??)
|
||||
|
||||
|
||||
|
||||
_Notes_ :
|
||||
- Les machines pourraient être renommées.++
|
||||
Les adresses et les ports sont aléatoires.
|
||||
- Le serveur physique a plusieurs disques, mais un seul est utilisé pour le moment.++
|
||||
Un RAID serait envisageable.
|
||||
|
||||
# phy0
|
||||
|
||||
La machine `phy0` redémarre sur son disque `/dev/sdb`.
|
||||
|
||||
## procédure après redémarrage
|
||||
|
||||
Il faut supprimer la règle iptables empêchant les connexions extérieures vers les machines virtuelles.
|
||||
- iptables -D FORWARD 2
|
||||
|
||||
# VM Alpha
|
||||
|
||||
## NGINX
|
||||
|
||||
- gère toutes les connexions entrantes sur les ports 80, 443
|
||||
- configuration dans _/srv/root/nginx/_, attention au rewrite de service (voir *TODO*)
|
||||
|
||||
[- _Domaine_
|
||||
:- _Service_
|
||||
:- _Port_
|
||||
|- *git.baguette.netlib.re*
|
||||
:- gitea
|
||||
:- 443 (80 redirigé)
|
||||
|- *team.baguette.netlib.re*
|
||||
:- mattermost
|
||||
:- 443 (80 redirigé)
|
||||
|- _todo.baguette.netlib.re_
|
||||
:- todo
|
||||
:- 443 (80 redirigé), 9999
|
||||
|- arpenteurs.netlib.re
|
||||
:- kemal
|
||||
:- 80
|
||||
|
||||
# VM team
|
||||
|
||||
## {git,team}.baguette.netlib.re
|
||||
|
||||
Les services `gitea` et `mattermost` sont _ouvert_ au public, notamment pour le projet `Baguette`.
|
||||
|
||||
- gitea et mattermost utilisent _postgresql_
|
||||
- gitea
|
||||
- configuration: _/etc/gitea/_ = la base, _/var/gitea/_ = les données + personnalisation
|
||||
- _/etc/gitea/gitea.conf_ = psql, mails, droits
|
||||
- _/var/gitea/_ = dépôts, avatars, personnalisation de l'apparence
|
||||
- mattermost pour le développement
|
||||
|
||||
Les certificats ont été générés par _acme.sh_. Voir section *TODO*.
|
||||
|
||||
## opensmtpd
|
||||
|
||||
Le serveur smtpd gère les domaines :
|
||||
- baguette.netlib.re (requis par gitea et mattermost)
|
||||
|
||||
*Debug potentiel*
|
||||
|
||||
En cas de **AUTH LOGIN failed** dans les logs, vérifier que *rspamd* est lancé.
|
||||
|
||||
|
||||
# VM bsdbuild (toujours active ?)
|
||||
|
||||
Actuellement : zone de jeu, on peut tester des outils dessus, lancer des compilations.
|
||||
|
||||
|
||||
# TODO pour le développement d'outils à déployer sur l'infra
|
||||
|
||||
## Pare-feu
|
||||
|
||||
- pourrait imposer un rate limit
|
||||
- l'accès à un service depuis une autre VM est compromis pour l'instant, il faut des règles DNAT+SNAT
|
||||
|
||||
## Déploiement
|
||||
|
||||
Le déploiement devrait être effectué de manière automatique depuis les sources.
|
||||
Actuellement un problème réseau nous en empêche : il faut se plonger dans `iptables`.
|
||||
|
||||
*service*
|
||||
- pourrait (devrait ?) être utilisé à terme
|
||||
- manque la gestion correcte des groupes au lancement d'un processus
|
||||
- lance actuellement nginx *mais sa configuration est réécrite avec de mauvaises valeurs*, à revoir
|
||||
|
||||
*libipc* doit être patché pour les sockets unix qu'il crée :
|
||||
- changer le propriétaire et le groupe
|
||||
- changer les permissions
|
||||
|
||||
## Certificats à maintenir
|
||||
|
||||
- baguette.netlib.re (+ git, team et todo sur le même domaine)
|
||||
|
||||
## Adresse IPv6
|
||||
|
||||
Pour le moment tout est en v4, y compris sur la machine physique.
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
package=infra-baguette
|
||||
version=0.1.0
|
||||
|
||||
echo "Manuals:"
|
||||
for i in man/*.scd; do
|
||||
v="$(echo $i | sed 's/.scd$//')"
|
||||
echo "- $v"
|
||||
targets+=($v)
|
||||
type[$v]=scdocman
|
||||
done
|
||||
|
||||
dist=(Makefile project.zsh man/*.scd)
|
||||
|
Loading…
Reference in New Issue