Table des matières

2024/04/06 (Préparation maintenance)

Heure de début : 11h00

Présences :

Météo

Moment informel durant lequel on exprime en peu de mots comment on se sent et si on a une attente forte pour la réunion. Ce n'est pas un moment de discussion mais d'expression individuelle et ce n'est pas obligatoire 🙂

Attente(s) forte(s)

Si l'une ou l'autre personne exprime une attente forte, merci de vous en occuper en priorité ou de la noter dans le hub ou dans un point approprié.

Fin: jusqu'au ronflement

Ce qui reste a faire

Matériel

Config à faire avant

Note: Parmi les RJ45 vers SFP, on n'a pas assez pour faire les Idrac et les liens de transit mais on peut s'arranger en attendant de tout avoir.

Transfert de connaissance

Datacenter ou pas demain ?

Marcel serait dispo en voiture aujourd'hui.

On aimerait ne pas passer toute la journée de dimanche au datacenter, mais cela implique de faire une partie du boulot aujourd'hui et de venir placer les serveurs dans l'après-midi.

Pour la question du transport, Marcel ne sera dispo qu'au soir. Se pose la question d'un taxi, et de comment on récupère les anciens serveurs. Pour ces derniers, on peut les laisser là, et jmg pourrait venir les transporter un autre jour. Au pire, début mai on a prévu de venir au datacenter.

Qu'est-ce qui est requis en terme de connaissances avant d'aller au datacenter ? Il y a le switch réseau qu'une seule personne maîtrise pour le moment. À l'époque, il y avait aussi une crainte de ne pas maîtriser les serveurs, mais cela n'est plus le cas depuis qu'on a fait des ateliers et des procédures en mars. L'important est qu'on puisse prendre le temps de repasser sur la config du switch.

Il n'y a pas de necessité de savoir profondement la config du switch mais savoir facilement se connecter au vlan de management. Il faut aussi avoir des procédures d'urgence. Savoir comment se connecter à l'Idrac, savoir comment se connecter au switch.

On a aussi eu deux incidents en mars sans doute liés à la vetustité du matériel, donc ça devient un problème de laisser l'infra dans cet état.

Par contre, en février-mars, le fait de se dire qu'on n'allait pas au datacenter tant qu'on avait pas une bonne connaissance du matériel qui allait au datacenter. Il y a une crainte qu'on ne prenne pas ce genre d'iniative quand le matériel sera disponible.

Nous avons manqué de bien avaluer nos priorités, rendre possible le reseau pour les VPS, les backup pour nos membres mais il faut s'occuper de bien partager les savoir entre nous.

HgO et Célo vont organiser des ateliers de partage de connaissances entre elleux, et à partir de septembre on fera des reviews avec Tharyrok. Il n'est pas nécessaire d'avoir le switch pour commencer à expérimenter, on peut le faire dans GNS3. On peut aussi se dire qu'on commandera le deuxième switch à partir de septembre, si la santé financière de Neutrinet va mieux, ce qui semble être le cas jusqu'à présent.

À noter que le MC-LAG (Multi Chassis Link Aggregate Group) n'a pas pu être testé car disponible uniquement sur du vrai matériel et non dans GNS3, le MCLAG permet de faire communiquer deux switch qui ont chaqu'un un port dans un LACP.

On décide de ne pas envoyer le deuxième switch au datacenter tant que Célo et HgO n'ont pas une bonne connaissance du switch Microtik.

Remplacement osd

On a rajouté la procédure pour remplacer un OSD dans https://doc.neutrinet.be/preparation-maintenance-25-02-2024

Lancement du playbook

On rajoute cette ligne dans le fichier d'inventaire ./inventories/production.ini:

[louise_baremetal]
topi.louise.neutri.net ansible_host=172.16.1.147
nam.louise.neutri.net ansible_host=172.16.1.148
bour.louise.neutri.net ansible_host=172.16.1.149

Attention, si jamais la partie telegraf plante, il faudra commenter ceci dans ./roles/telegraf/templates/global.conf.tpl:

[[inputs.systemd_units]]
  ## Filter for a specific unit type, default is "service", other possible
  ## values are "socket", "target", "device", "mount", "automount", "swap",
  ## "timer", "path", "slice" and "scope ":
  unittype = "service"

Espace de backup

Switch Mikrotik

Un pad pour la config : https://doc.neutrinet.be/preparation-maintenance-06-04-2024-mikrotik?both

San Dell

GFS2

https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-135/cluster-debian-avec-drbd-et-gfs2 https://wiki.debian.org/kristian_jerpetjoen

OCFS2

https://www.howtoforge.com/tutorial/install-and-configure-drdb-for-network-filesystem-replication-debian-8/3/ https://raw.githubusercontent.com/markfasheh/ocfs2-tools/master/documentation/users_guide.txt

SSH

snippet.shell
Match group neutrinet-backup-user
    AuthorizedKeysFile /etc/ssh/authorized_keys/%u
    MaxAuthTries 6
    PasswordAuthentication yes
    ChallengeResponseAuthentication yes
    AllowTcpForwarding no
    PermitTunnel no
    X11Forwarding no
    ForceCommand /opt/ssh_user_jail_with_docker/ssh_jail.sh

Dockerfile FROM drakkan/sftpgo:2.5.x-alpine as stage1 FROM alpine:latest as stage2 SHELL ["/bin/busybox", "sh", "-c"] COPY --from=stage1 /usr/local/bin/sftpgo /bin/sftpgo RUN echo -e "root:x:0:\nuser:x:1000:" > /etc/group RUN echo -e "root:x:0:0:root:/:/bin/ash\nuser:x:1000:1000:user:/home:/bin/sh" > /etc/passwd RUN echo -e "root:*::0:::::\nuser:*::0:::::" > /etc/shadow RUN apk add --update --no-cache rsync borgbackup restic openresolv RUN apk del scanelf libc-utils RUN rm -rf /etc/alpine-release /etc/crontabs /etc/issue /etc/os-release /etc/fstab /etc/inittab /etc/logrotate.d /etc/modprobe.d /etc/modules /etc/motd /etc/network /etc/rsyncd.conf /mnt /media /opt /root /run /srv /tmp /usr/local /etc/periodic /etc/opt /etc/mtab /etc/modules-load.d /etc/init.d /etc/conf.d RUN rm -rf /usr/share /var RUN mkdir -p /var/lib/apk; RUN find / -type d -exec chmod -r {} \; RUN chmod -r / RUN chown 1000:1000 /home RUN chmod 755 /home ### Optional: Remove package management RUN apk del apk-tools ca-certificates-bundle libcrypto3 libssl3 ### Alternative: remove all management tools #RUN find /bin /sbin /usr/bin /usr/sbin -type l -exec busybox sh -c 'if [ "$(busybox readlink -f "{}")" = "/bin/busybox" ]; then busybox rm -f "{}"; fi' \; #RUN apk del busybox alpine-baselayout alpine-baselayout-data alpine-keys apk-tools ca-certificates-bundle libcrypto3 libssl3 ### FROM scratch COPY --from=stage2 . .

snippet.bash
#!/bin/bash
# Original from https://github.com/chazlever/docker-jail
# Modifications:
#   - Debug Log
#   - sftp subsystem wrapper for SFTPGo
#   - some small code style changes :P
 
DEBUG=0
DEBUG_LOG=/var/log/jail.log
DOCKER_IMAGE=ssh_user_jail:latest
 
###################################################################
 
containerize()
{
    docker run --rm $1 \
               -v $HOME:/home \
               --workdir /home \
               --hostname ssh-jail-$USER \
               -u 1000:1000 \
               --net none \
               ${DOCKER_IMAGE} ${SSH_ORIGINAL_COMMAND=/bin/sh}
 
    # Original parameters of chazlever to keep the jail more transparent
    # it depends on your use case if you need the version below or above.
 
    # docker run --rm $1 \
    #            -v /etc/group:/etc/group:ro \
    #            -v /etc/passwd:/etc/passwd:ro \
    #            -v $HOME:$HOME \
    #            --workdir $HOME \
    #            --hostname $(hostname) \
    #            -u $(id -u $USER):$(id -g $USER) \
    #            ${DOCKER_IMAGE} $SSH_ORIGINAL_COMMAND
}
 
###################################################################
 
if [ $DEBUG -eq 1 ]; then
    date -R >> "${DEBUG_LOG}"
    set >> "${DEBUG_LOG}"
fi
 
###################################################################
 
if [ "xinternal-sftp" == "x${SSH_ORIGINAL_COMMAND}" ]; then
	[ $DEBUG -eq 1 ] && echo "### START SFTP ###" >> "${DEBUG_LOG}"
	SSH_ORIGINAL_COMMAND="/bin/sftpgo startsubsys"
fi
 
###################################################################
 
# Check if TTY allocated
if tty -s; then
    containerize -it
else
    containerize -i
fi

Réseau Proxmox

Transfert VM

Météo de fin

Moment informel durant lequel on exprime en peu de mots comment, à titre personnel, la réunion a été vécue que ce soit positif ou négatif. Si une ou plusieurs tension est née durant la réunion, il est peut-être nécessaire d'envisager l'une ou l'autre réunion pour y remédier.