Grid5000

Pour configurer les alias SSH, voir le wiki Grid5000.

Envoyer une composition sur Grid5000

On a deux options.

Option 1 :Copier les fichiers

scp -r DOSSIER-DE-LA-COMPO VILLE.g5k:~

Option 2 : Cloner le dépôt Git

Il faut s'assurer que tous les changements dont on a besoin on été commit et push sur GitHub. Ensuite, on fait un clone classique (en utilisant l'URL HTTPS du dépôt, pas SSH).

Connexion au serveur d'accueil de la ville

ssh VILLE.g5k

Installation de nxc sur le Grid5000

À la première connexion, il faut installer nxc avec :

# On installe poetry, un gestionnaire de projet et de
# dépendances pour Python, utilisé par nxc
curl -sSL https://install.python-poetry.org | python3 -
# On fait en sorte que poetry soit accessible dans le shell
export PATH=$PATH:~/.local/bin
# On récupère le code source de nxc
git clone https://github.com/oar-team/nixos-compose.git
cd nixos-compose
# On installe les dépendances
poetry install
# On entre dans un shell où l'exécutable nxc est disponible
poetry shell
# On installe Nix (cette commande l'installe pour l'utilisateur
# courant seuleument, en téléchargeant une version pré-compilée
# et ne demande donc pas de droits particuliers) 
nxc helper install-nix

Mise en place automatique

À chaque connexion, il faut taper les commandes suivantes, pour s'assurer que tous les exécutables dont on a besoin sont disponibles :

export PATH=~/.local/bin:$PATH
exec poetry shell -C nixos-compose

Il est possible d'ajouter ces commandes à la fin du fichier ~/.profile pour qu'elles soient exécutées automatiquement à chaque nouvelle connexion.

Compiler et lancer la composition

nxc build -f g5k-ramdisk

# Modifier nodes=1 pour réserver le nombre de nœuds dont
# on a besoin
export $(oarsub -l nodes=1,walltime=1:0:0 "$(nxc helper g5k_script) 1h" | grep OAR_JOB_ID)
oarstat -u -J | jq --raw-output 'to_entries | .[0].value.assigned_network_address | .[]' > machines
nxc start -f g5k-ramdisk -m machines

Si vous avez une erreur par rapport au flake/linux_x86_64, il faut exit et se reconnecter (aucune idée de pourquoi ça règle le souci).

Réserver un nœud et s'y connecter

oarsub -I

Annuler une réservation de nœud

oardel $OAR_JOB_ID