mirror of
https://github.com/YunoHost/package_check.git
synced 2024-09-03 20:06:20 +02:00
Readme et petites corrections
This commit is contained in:
parent
de03c27e7c
commit
fc8aed34b9
4 changed files with 60 additions and 9 deletions
31
README.md
31
README.md
|
@ -21,7 +21,8 @@ Le script est capable d'effectuer les tests suivant:
|
|||
- Test de path mal formé (path/ au lieu de /path)
|
||||
- Test de port déjà utilisé
|
||||
|
||||
> ATTENTION: Ce script devrait être utilisé uniquement dans un environnement de test dédié. Jamais sur un serveur en production. Il va provoquer de nombreuses erreurs d'installation du package et pourrait donc laisser des résidus indésirables.
|
||||
Par défaut, Package checker utilise un conteneur LXC pour créer un environnement de test propre sans résidus d'installations précédentes. Ce comportement peut être contourné avec le paramètre --no-lxc
|
||||
> ATTENTION: Si LXC n'est pas utilisé, le script devrait être utilisé uniquement dans un environnement de test dédié, jamais sur un serveur en production. Il va provoquer de nombreuses erreurs d'installation du package et pourrait donc laisser des résidus indésirables.
|
||||
|
||||
Usage:
|
||||
Pour une app dans un dossier: `./package_check.sh APP_ynh`
|
||||
|
@ -59,7 +60,7 @@ Il est nécessaire de fournir, à la racine du package de l'app à tester, un fi
|
|||
incorrect_path=1
|
||||
corrupt_source=0
|
||||
fail_download_source=0
|
||||
port_already_use=1
|
||||
port_already_use=1 (XXXX)
|
||||
final_path_already_use=0
|
||||
```
|
||||
### `## Nom du test`
|
||||
|
@ -83,3 +84,29 @@ Certaines clés de manifest sont indispensables au script pour effectuer certain
|
|||
Ensemble des tests à effectuer.
|
||||
Chaque test marqué à 1 sera effectué par le script.
|
||||
Si un test est absent de la liste, il sera ignoré. Cela revient à le noter à 0.
|
||||
|
||||
#### `port_already_use`
|
||||
Le test` port_already_use` peut éventuellement prendre en argument un numéro de port. Si celui-ci n'est pas dans le manifest.
|
||||
Le numéro de port doit alors être noté entre parenthèse, il servira au test de port.
|
||||
|
||||
---
|
||||
Le script `package_check.sh` accepte 3 arguments en plus du package à tester.
|
||||
- `--bash-mode`: Rend le script autonome. Aucune intervention de l'utilisateur ne sera nécessaire.
|
||||
La valeur de auto_remove est ignorée. (Incompatible avec --build-lxc)
|
||||
- `--no-lxc`: N'utilise pas la virtualisation en conteneur LXC. Les tests seront effectué directement sur la machine hôte.
|
||||
- `--build-lxc`: Installe LXC et créer le conteneur debian Yunohost si nécessaire. (Incompatible avec --bash-mode)
|
||||
|
||||
---
|
||||
## LXC
|
||||
|
||||
Package checker utilise la virtualisation en conteneur pour assurer l'intégrité de l'environnement de test.
|
||||
L'usage de LXC apporte une meilleure stabilité au processus de test, un test de suppression échoué n'entraine pas l'échec des tests suivant, et permet de garder un environnement de test sans résidus de test précédents. En revanche, l'usage de LXC augmente la durée des tests, en raison des manipulations du conteneur et de la réinstallation systématique des dépendances de l'application.
|
||||
|
||||
Il faut prévoir également un espace suffisant sur l'hôte, au minimum 4Go pour le conteneur, son snapshot et sa copie de sauvegarde.
|
||||
|
||||
L'usage de LXC est facilité par 3 scripts, permettant de gérer la création, la mise à jour et la suppression.
|
||||
- `lxc_build.sh`: lxc_build installe LXC et ses dépendances, puis créer le conteneur debian.
|
||||
Il ajoute ensuite le support réseau, installe Yunohost et le configure. Et enfin configure un accès ssh.
|
||||
L'accès ssh par défaut est `ssh -t pchecker_lxc`
|
||||
- `lxc_upgrade.sh`: Effectue la mise à jour du conteneur à l'aide d'apt-get et recréer le snapshot.
|
||||
- `lxc_remove.sh`: Supprime le conteneur LXC, son snapshot et sa sauvegarde. Désinstalle LXC et déconfigure le réseau associé.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Arguments du script
|
||||
# -b Mode bash, le script est autonome. Il ignore la valeur de $auto_remove
|
||||
# --bash-mode Mode bash, le script est autonome. Il ignore la valeur de $auto_remove
|
||||
# --no-lxc N'utilise pas la virtualisation en conteneur lxc. La virtualisation est utilisée par défaut si disponible.
|
||||
# --build-lxc Installe lxc et créer la machine si nécessaire. Incompatible avec -b en raison de la connexion ssh à valider lors du build.
|
||||
|
||||
|
@ -300,20 +300,25 @@ TEST_RESULTS () {
|
|||
if [ $note -le 5 ]; then
|
||||
color_note="red"
|
||||
typo_note="bold"
|
||||
smiley=":'(" # La contribution à Shasha. Qui m'a forcé à ajouté les smiley sous la contrainte ;)
|
||||
elif [ $note -le 10 ]; then
|
||||
color_note="red"
|
||||
typo_note=""
|
||||
smiley=":("
|
||||
elif [ $note -le 15 ]; then
|
||||
color_note="lyellow"
|
||||
typo_note=""
|
||||
smiley=":s"
|
||||
elif [ $note -gt 15 ]; then
|
||||
color_note="lgreen"
|
||||
typo_note=""
|
||||
smiley=":)"
|
||||
elif [ $note -eq 20 ]; then
|
||||
color_note="lgreen"
|
||||
typo_note="bold"
|
||||
smiley="\o/"
|
||||
fi
|
||||
ECHO_FORMAT "$note/20\n" "$color_note" "$typo_note"
|
||||
ECHO_FORMAT "$note/20 $smiley\n" "$color_note" "$typo_note"
|
||||
ECHO_FORMAT "\t Ensemble de tests effectués: $tnote/19\n\n" "white" "bold"
|
||||
}
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ LXC_STOP () {
|
|||
fi
|
||||
# Restaure le snapshot.
|
||||
echo "Restauration du snapshot de la machine lxc" | tee -a $RESULT
|
||||
sudo rsync -aEAX --delete -i /var/lib/lxcsnaps/$LXC_NAME/snap0/rootfs/ /var/lib/lxc/$LXC_NAME/rootfs/ >> $RESULT 2>&1
|
||||
sudo rsync -aEAX --delete -i /var/lib/lxcsnaps/$LXC_NAME/snap0/rootfs/ /var/lib/lxc/$LXC_NAME/rootfs/ > /dev/null 2>> $RESULT
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -4,14 +4,33 @@ PLAGE_IP=$(cat sub_scripts/lxc_build.sh | grep PLAGE_IP= | cut -d '"' -f2)
|
|||
LXC_NAME=$(cat sub_scripts/lxc_build.sh | grep LXC_NAME= | cut -d '=' -f2)
|
||||
|
||||
echo "Active le bridge réseau"
|
||||
if ! sudo ifquery lxc-pchecker --state > /dev/null
|
||||
then
|
||||
sudo ifup lxc-pchecker
|
||||
fi
|
||||
|
||||
echo "Configure le parefeu"
|
||||
if ! sudo iptables -D FORWARD -i lxc-pchecker -o eth0 -j ACCEPT 2> /dev/null
|
||||
then
|
||||
sudo iptables -A FORWARD -i lxc-pchecker -o eth0 -j ACCEPT
|
||||
fi
|
||||
if ! sudo iptables -C FORWARD -i eth0 -o lxc-pchecker -j ACCEPT 2> /dev/null
|
||||
then
|
||||
sudo iptables -A FORWARD -i eth0 -o lxc-pchecker -j ACCEPT
|
||||
fi
|
||||
if ! sudo iptables -t nat -C POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE 2> /dev/null
|
||||
then
|
||||
sudo iptables -t nat -A POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE
|
||||
fi
|
||||
|
||||
echo "Démarrage de la machine"
|
||||
if [ $(sudo lxc-info --name $LXC_NAME | grep -c "STOPPED") -eq 0 ]; then
|
||||
# Si la machine n'est pas à l'arrêt.
|
||||
sudo lxc-stop -n $LXC_NAME # Arrête la machine LXC
|
||||
fi
|
||||
# Restaure le snapshot
|
||||
sudo rsync -aEAX --delete -i /var/lib/lxcsnaps/$LXC_NAME/snap0/rootfs/ /var/lib/lxc/$LXC_NAME/rootfs/ # Pour être sûr!
|
||||
|
||||
sudo lxc-start -n $LXC_NAME -d
|
||||
sleep 3
|
||||
sudo lxc-ls -f
|
||||
|
|
Loading…
Add table
Reference in a new issue