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