Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
Bootiful
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pierre.kunzli
Bootiful
Commits
6f0af763
Commit
6f0af763
authored
4 years ago
by
dimitri.lizzi
Browse files
Options
Downloads
Patches
Plain Diff
last changes!
parent
960a5deb
Branches
master
Branches containing commit
No related tags found
No related merge requests found
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
README.md
+32
-1
32 additions, 1 deletion
README.md
doc/rapport.gpp.md
+7
-0
7 additions, 0 deletions
doc/rapport.gpp.md
doc/rapport.md
+28
-8
28 additions, 8 deletions
doc/rapport.md
doc/rapport.pdf
+0
-0
0 additions, 0 deletions
doc/rapport.pdf
doc/rapport.tex
+0
-5085
0 additions, 5085 deletions
doc/rapport.tex
with
67 additions
and
5094 deletions
README.md
+
32
−
1
View file @
6f0af763
# Bootiful

\ No newline at end of file

Le sujet de ce travail de diplôme est le développement d’une solution de
déploiement de systèmes d’exploitation à la demande, pour une
utilisation dans le cadre d’une école d’informatique. À chaque démarrage
d’un poste de travail, l’utilisateur peut choisir quel système il
souhaite utiliser dans une liste prédéfinie. Il est aussi possible de
définir une liste de personnalisations qui permettent de configurer ce
système, comme par exemple l’installation de certains logiciels ou une
configuration de réseau spécifique. La première fois qu’un système
d’exploitation est choisi, une image contenant les données du système
d’exploitation est téléchargée depuis un serveur central. Cette image
est déployée sur le disque dur pour permettre son utilisation. Une copie
de l’image est aussi sauvegardée dans un cache situé à la fin du disque
dur, dans un format compressé, pour permettre de ne plus avoir à la
télécharger à nouveau les prochaines fois qu’elle devra être installée.
Une fois le déploiement terminé, les personnalisations choisies sont
appliquées, puis le système choisi est démarré et est utilisable jusqu’à
l’extinction de l’ordinateur. Au prochain démarrage, un nouveau système
d’exploitation sera de nouveau déployé. Ce mode de fonctionnement permet
aux élèves de l’école de toujours utiliser un système propre et
spécifique à leurs besoins immédiats. Des efforts ont été menés pour
faire en sorte que les déploiements se fassent le plus rapidement
possible, en économisant un maximum les ressources disque et réseau,
tout en fonctionnant avec des ordinateurs modernes. Le développement de
ce projet étant destiné à être continué après ce travail de diplôme, un
soin particulier a été apporté pour automatiser et simplifier au maximum
la construction et la mise en fonctionnement du système dans un
environnement réel.
-
[
Documentation
](
doc/rapport.md
)
-
[
Journal de bord
](
doc/logbook.md
)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
doc/rapport.gpp.md
+
7
−
0
View file @
6f0af763
...
...
@@ -223,6 +223,13 @@ d'un diagramme de Gantt. Ce diagramme est visible dans la figure
!!pdfref{planning_gantt}{Diagramme de Gantt du planning}{images/planning}
Le logiciel de gestion de révisions _Git_ a été utilisé pour gérer les
différentes versions du code source du projet. Un dépôt a été créé sur
le serveur Git de !!acronym{HEPIA}. Il est disponible à l'adresse
suivante:
<https://gitedu.hesge.ch/dimitri.lizzi/bootiful>
## Analyse
## Cas d'utilisation
...
...
This diff is collapsed.
Click to expand it.
doc/rapport.md
+
28
−
8
View file @
6f0af763
...
...
@@ -199,6 +199,13 @@ d'un diagramme de Gantt. Ce diagramme est visible dans la figure
</figure>
Le logiciel de gestion de révisions _Git_ a été utilisé pour gérer les
différentes versions du code source du projet. Un dépôt a été créé sur
le serveur Git de
<abbr
title=
"Haute École du Paysage, d’Ingénierie et d’Architecture de Genève "
>
HEPIA
</abbr>
. Il est disponible à l'adresse
suivante:
<https://gitedu.hesge.ch/dimitri.lizzi/bootiful>
## Analyse
## Cas d'utilisation
...
...
@@ -1879,6 +1886,13 @@ Le lancement de ces trois machines en simultané ainsi que leur
configuration est assuré par l'outil _docker-compose_ (voir source dans
la section ).
Pour simplifier le lancement du serveur, une cible `
start-server
` a été
créée dans le _Makefile_ du projet. Il suffit de lancer la commande
suivante pour construire et démarrer un serveur:
```bash
make start-server
```
## Personnalisation d'images post-déploiement
...
...
@@ -2147,7 +2161,7 @@ LATEST_LOG := $(shell ls -1 nfs/nfsshared/log/*.log | tail -n 1)
.PHONY: doc grub deployer start-server reprovision-server clean print_last_log help
# Builds everything
all:
doc
grub deployer
all: grub deployer
# Builds PDF and markdown documents
doc:
...
...
@@ -2242,7 +2256,7 @@ services:
-
type: tmpfs
target: /nfsroot
-
type: bind
source:
/run/media/araxor/bigdata
/nfsshared
source:
./nfs
/nfsshared
target: /nfsshared
-
type: bind
source: /lib/modules
...
...
@@ -3648,20 +3662,26 @@ echo "Starting logging stdout and stderr to $log_file..."
if [[ -n "$customization_choices" ]]; then
start_step_batch "customizations deployment"
readonly customization_partitions_mount_dir="/bootiful/mounted_customization_partitions"
for customization_choice in $customization_choices; do
customization="${customizations[customization_choice]}"
customization="${customizations[
$
customization_choice]}"
customization_dir="$remote_image_customizations_dir/$customization"
echo "Deploying customization '$customization' from '$customization_dir'"
for customization_partition in "$customization_dir"/*; do
echo "Deploying customization '$customization' ($customization_choice) from '$customization_dir'"
for customization_partition_full in "$customization_dir"/*; do
customization_partition=$(basename "$customization_partition_full")
validate_with_regex "$customization_partition" '^sda[0-9]$' "customization sub-directory name does not match a partition of sda"
customization_partition_mount_point="
/bootiful/mounted_
customization_partitions/$customization_partition"
customization_partition_mount_point="
$
customization_partitions
_mount_dir
/$customization_partition"
customization_partition_device="/dev/$customization_partition"
ensure_mounted "$customization_partition_device" "$customization_partition_mount_point"
cp -RT "$customization_
dir/
$customization_partition/"
cp -RT
f
"$customization_
partition_full/" "
$customization_partition
_mount_point
/"
done
done
for customization_partition_mount_dir in "$customization_partitions_mount_dir"/*; do
umount "$customization_partition_mount_dir" ||
fatal_error "Cannot unmount '$customization_partition_mount_dir'"
done
fi
start_step_batch "EFI entrypoint file creation"
...
...
This diff is collapsed.
Click to expand it.
doc/rapport.pdf
+
0
−
0
View file @
6f0af763
No preview for this file type
This diff is collapsed.
Click to expand it.
doc/rapport.tex
deleted
100644 → 0
+
0
−
5085
View file @
960a5deb
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment