Skip to content

Commit

Permalink
Switch to ArchLinux
Browse files Browse the repository at this point in the history
  • Loading branch information
breard-r committed Dec 12, 2023
1 parent 595760e commit e8dc186
Show file tree
Hide file tree
Showing 12 changed files with 396 additions and 690 deletions.
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@

Ces scripts sont utilisés par le service des contrôles de la CNIL afin de générer une machine virtuelle de référence qui servira, par la suite, de base pour les machines virtuelles de chaque contrôle en ligne.

Ces scripts sont exécutés en 3 temps :
Ces scripts sont exécutés en plusieurs temps :

1. `create_vm.bat` est utilisé pour créer la machine virtuelle elle-même et la lance ;
2. `preseed.cfg` est utilisé pour automatiser l'installation de Debian sur la machine virtuelle ;
3. Lors de la première connexion de l'utilisateur de contrôle, `cnf/auto_install.desktop` lance automatiquement `finalize_install.sh` afin de finaliser la préparation de la machine virtuelle.
2. `bootstrap.sh` est utilisé pour installer le système et lance `configure.sh` dès que le système est prêt ;
3. `configure.sh` est utilisé pour configurer le système et préparer la finalisation, notamment en installant `finalize_install.sh` et les données qui lui sont liées ;
4. `finalize_install.sh` est automatiquement lancé lors de la première connexion à la machine virtuelle et permet d’effectuer les derniers réglages, notamment l’installation de l’extension CNIL-Cookies-List et la vérification anti-malwares.

L'image ISO attendue lors de l'exécution de `create_vm.bat` est celle d’[ArchLinux][archlinux_download].

Ces scripts sont publiés sous la licence [CeCILL 2.1][cecill].

Pour en savoir plus au sujet des contrôles menés par la CNIL, veuillez consulter la [charte des contrôles][charte_controles].

[charte_controles]: https://www.cnil.fr/fr/controles-de-la-cnil-une-charte-pour-tout-comprendre
[cecill]: http://cecill.info/
[archlinux_download]: https://archlinux.org/download/
[cecill]: https://cecill.info/
[charte_controles]: https://www.cnil.fr/fr/controles-de-la-cnil-une-charte-pour-tout-comprendre
72 changes: 72 additions & 0 deletions bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/bash

set -euo pipefail
IFS=$'\n\t'

DISK_NAME="/dev/sda"
PART_NB="1"
PART_NAME="${DISK_NAME}${PART_NB}"
SHARED_DIR="/media/sf_PiecesNumeriques"
INSTALL_MOUNT_POINT_ROOT="/mnt"
CHROOT_DATA_DEST_PATH="/root/script_data"
DATA_DEST_PATH="${INSTALL_MOUNT_POINT_ROOT}${CHROOT_DATA_DEST_PATH}"

#
# Guide d'installation :
# https://wiki.archlinux.org/title/Installation_guide
#

# Réglage du clavier
loadkeys "fr-latin1"

# Réglage du temps
timedatectl

# Préparation de la partition
echo "type=83" | sfdisk "$DISK_NAME"
sfdisk --activate "$DISK_NAME" "$PART_NB"
mkfs.ext4 "$PART_NAME"
mount "$PART_NAME" "$INSTALL_MOUNT_POINT_ROOT"

# Installation des paquets
# https://man.archlinux.org/man/reflector.1
# https://man.archlinux.org/man/pacstrap.8
# https://archlinux.org/packages/
reflector --country "France" --protocol "https" --sort "rate" --save "/etc/pacman.d/mirrorlist"
pacstrap -K "$INSTALL_MOUNT_POINT_ROOT" \
base base-devel linux linux-firmware linux-headers \
grub \
man-db man-pages man-pages-fr texinfo \
dosfstools mtools \
bash \
vim neovim \
sudo \
dhcpcd \
git \
plasma-meta kde-applications-meta sddm \
noto-fonts noto-fonts-emoji noto-fonts-extra ttf-dejavu ttf-inconsolata ttf-liberation ttf-roboto \
virtualbox-guest-utils \
clamav \
bind dog inetutils nmap wget whois \
chromium firefox firefox-i18n-fr \
mitmproxy mkcert \
obs-studio \
ssh-audit sqlmap \
wipe \
wireshark-qt

# Génération du fichier de configuration du montage des systèmes de fichier
genfstab -U "$INSTALL_MOUNT_POINT_ROOT" >>"${INSTALL_MOUNT_POINT_ROOT}/etc/fstab"

# Paramétrage du système
# https://man.archlinux.org/man/arch-chroot.8
mkdir -p "${DATA_DEST_PATH}/cnf"
cp -vr "${SHARED_DIR}/cnf" "$DATA_DEST_PATH"
cp -v "${SHARED_DIR}/configure.sh" "$DATA_DEST_PATH"
cp -v "${SHARED_DIR}/finalize_install.sh" "$DATA_DEST_PATH"
arch-chroot "$INSTALL_MOUNT_POINT_ROOT" /bin/bash "${CHROOT_DATA_DEST_PATH}/configure.sh"
rm -rf "${DATA_DEST_PATH}/cnf" "${DATA_DEST_PATH}/configure.sh" "${DATA_DEST_PATH}/finalize_install.sh"

# Finalisation
umount -R /mnt
reboot
Loading

0 comments on commit e8dc186

Please sign in to comment.