mounter et modifier une ISO multi FS

Vérifier que l’ISO contient bien plusieurs FS

1
2
3
4
5
6
7
8
9
10
11
$sudo fdisk -l /home/user/raspbian-stretch-lite.img
Disk /home/user/raspbian-stretch-lite.img: 2 GiB, 2197815296 bytes, 4292608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x17869b7d

Device Boot Start End Sectors Size Id Type
/home/user/raspbian-stretch-lite.img1 8192 532480 524289 256M c W95 FAT32 (LBA)
/home/user/raspbian-stretch-lite.img2 540672 4292607 3751936 1.8G 83 Linux

Créer les périphériques bloc avec losetup

1
2
3
4
$ sudo losetup -P -f  Téléchargements/grep losetup ~/.bash_history^C
$ losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 0 0 0 /home/anthony/Téléchargements/2019-04-08-raspbian-stretch-lite.img 0 512

Mounter les périphériques bloc

1
2
$sudo mount /dev/loop0p1 /mnt/1/
$sudo mount /dev/loop0p2 /mnt/2/

Démonter les périphériques bloc:

1
2
$sudo umount /mnt/1
$sudo umount /mnt/3

Supprimer les périphériques loop

1
losetup -d /dev/loop0

Ansible

Faire un inventaire des variables d’un host

ansible hostname -m setup

Commencder un book depuis une étape donnée

ansible-playbook books/g_kubernetes.yml –list-tasks
ansible-playbook books/g_kubernetes.yml –start-at-task=”server : add epel repo”

rebooter un groupe de machines

ansible “host_grp” -m shell -a ‘shutdown -h now’

A noter

J’ai eut des soucis en faisant tourner ansible sur une VM mono vcpu: plus de 80% du CPU passait en wait IO!
Un minimum de multithread semble requis pour que tout fonctionne corretement

Docker

Remove all containers

1
2
docker container stop $(docker container ls -aq)
docker container rm $(docker container ls -aq)

Install sur fedora

On peut utiliser diretement les depots https://download.docker.com/linux/fedora/docker-ce.repo

erreurs “cgroups: cannot found cgroup mount destination: unknown”

Cette erreur apparait sur fedora 32 suite au passage à cgroupv2

  • Correction temporaire
1
2
mkdir /sys/fs/cgroup/systemd
mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
  • plus perenne: rollback de cgroupv2 vers cgroupv1
1
2
dnf install grubby
grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

Résolution DNS KO

Encore une erreur sur fedora 32 suite à un changement sur firewalld. Tout semble correct (build de l’image, configuration DNS du container, ping du réseau local, ..), mais impossible de faire une requéte DNS (“could not resolve host”).

1
2
3
4
5
6
7
$ sudo firewall-cmd --get-zone-of-interface=eno1
FedoraWorkstation
$ sudo firewall-cmd --zone=FedoraWorkstation --add-masquerade --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo systemctl restart docker

Install sur raspberry

  • cas générique

curl -fsSL get.docker.com -o get-docker.sh

sudo sh get-docker.sh

  • cas particulier du pi zero W
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pi@p-zero-0001:~ $ apt-cache madison docker-ce
docker-ce | 5:19.03.1~3-0~raspbian-stretch | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 5:19.03.0~3-0~raspbian-stretch | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 5:18.09.0~3-0~raspbian-stretch | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 18.06.3~ce~3-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 18.06.2~ce~3-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 18.06.1~ce~3-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 18.06.0~ce~3-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 18.03.1~ce-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 18.03.0~ce-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 17.12.1~ce-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 17.12.0~ce-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 17.09.1~ce-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
docker-ce | 17.09.0~ce-0~raspbian | https://download.docker.com/linux/raspbian stretch/stable armhf Packages
pi@p-zero-0001:~ $ sudo apt-get install docker-ce=18.06.3~ce~3-0~raspbian

Créer un depot multi arch

https://hub.docker.com/r/ckulka/multi-arch-example

1
2
3
4
5
6
7
8
9
10
# Build the images on their respective platforms
docker build -t ckulka/multi-arch-example:amd64 -f Dockerfile.amd64 .
docker push ckulka/multi-arch-example:amd64

docker build -t ckulka/multi-arch-example:arm32v7 -f Dockerfile.arm32v7 .
docker push ckulka/multi-arch-example:arm32v7

# Create and push the manifest
docker manifest create ckulka/multi-arch-example:latest ckulka/multi-arch-example:amd64 ckulka/multi-arch-example:arm32v7
docker manifest push ckulka/multi-arch-example:latest

Epson XP-215

Configuration du mode Wifi

Le seul problème de cette étape est qu’elle requiert windows (et le CD), car doit se faire par USB (câble non fourni).
Une fois terminée, la connection wifi fonctionne sans problème. On peut demander à la freebox de mettre une IP fixe.

Configuration de CUPS

CUPS découvre tout seul l’imprimante. Mais il faut aller chercher les PPD sur le [http://download.ebz.epson.net/dsc/search/01/search/searchModule|site d’ESPON]

Configuration du scanner

Plus compliqué.

  • Il faut télecharger les pilotes “iscan” (iscan, iscan-data et iscan-network).
  • Configurer iscan pour utiliser le scanner réseau. Il faut modifier /etc/sane.d/epkowa.conf
    {CODE()}net “@IP” 1865{CODE}
  • Puis configurer sane en rajoutant les lignes suivantes dans /etc/sane.d/saned.conf
    1
    2
    3
    4
    net
    epkowa # needed by iscan
    scan-server
    "@IP"

svn

Installation

Il est possible d’utiliser apache-webdav, ou alors de passer par le “protocole” svn via svnserv
WebDav a l’avantage de fournir un “explorateur graphique” du dépot.

Fichiers de conf utilisés:

*httpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Location /svn>
DAV svn
SVNParentPath /home/svn/repos
SVNIndexXSLT "http://serveur apache/svnindex.xsl"

# If we are using the Per-Directory Access Control then we leave this uncommented
# Access Control
AuthzSVNAccessFile /home/svn/access/control

# anonymous first
Satisfy Any
Require valid-user

# authenticating them valid ones
AuthType Basic
AuthName "Subversion Repositories"
AuthUserFile /home/svn/access/users
</Location>

Création d’un nouveau dépôt

1
2
3
mkdir /home/svn/repos
svnadmin create /home/svn/repos/projectname
svn import /home/svn/default file:///home/svn/repos/projectname -m "Initial Import"

Le nouveau dépot sera accessible via http://serveur apache/svn/projectname

ref:

http://www.bsdguides.org/guides/freebsd/misc/subversion.php

apache

AStuces:

Cacher la version d’Apache2

Par défaut, apache affiche la version sur les erreur 404, quand on fait un telenet, un ab, … Pour désactiver:
ServerTokens Prod ou ServerSignature Off

Automatisation des traitements mails

J’ai récemment eut le besoin de réaliser un transfert entre 2 serveurs en utilisant le mail (seul flux ouvert).

Etape 1: encoder la pièce jointe dans le corp du mail

On utilise “uuencode” pour transformer la pièce jointe en en “hash” que l’on vas pouvoir insérer dans le corps du mail.

Etape 2: envoyer le mail

RAS, on utilise mail

Etape 3: le recevoir

C’est l’étape la plus “compliqué”. Plusieurs solutions sont possibles

  • Faire un script qui lit /var/spool/mail. Pas très efficace de dépiler la BAL
  • Faire un hook postfix (via /etc/postfix/access). Assez compliqué …
  • Utiliser procmail. C’est ce que l’on vas faire

Modifier le main.cf :

mailbox_command = /usr/bin/procmail

Créer les règles

Pour chaque user, il faut renseigner le fichier “.procmailrc” les mails ne correspondant pas à une entrée de ce fichier iront dans /var/spool/mail

Etape 4: extraire la pièce jointe

il faut récupérer le “hash” et utiliser “uudecode” pour retrouver notre fichier.