marvel-nccr.slurm
Ansible Rola: marvel-nccr.slurm
Rola Ansible, która instalująca menedżera obciążenia slurm na Ubuntu (testowana na 16.04, 18.04 i 20.04).
Uwaga: Ta rola konfiguruje maszynę, na której działa slurm, aby była również węzłem obliczeniowym (zawiera m.in. zdolność do automatycznego wykrywania #CPUs na maszynie, na której jest uruchamiana). Do tej pory rola nie jest zaprojektowana do tworzenia klastra obliczeniowego z wieloma węzłami; w tym celu można wykorzystać narzędzia takie jak https://github.com/elasticluster/elasticluster.
Rola:
- Instaluje pakiety slurm
- Ustawia konfigurację slurm (
/etc/slurm-llnl/slurm.conf
), aby dynamicznie używać odpowiednich zasobów platformy (nazwa hosta, #CPUs itd.), konfigurując jeden węzeł (nazywany$HOSTNAME
) i jedną partycję (nazywanąslurm_partition_name
). - Dodaje skrypt
slurm-resources
oraz usługę uruchamiającą do automatyzacji inicjacji poprawnych zasobów platformy (wymagane, jeśli tworzy się obraz VM, gdzie instancje mogą mieć różne zasoby) - Uruchamia usługi slurm.
Aby sprawdzić, czy usługi działają (zakładając użycie systemd):
$ systemctl --type=service
...
slurmctld.service załadowano aktywne działające demon kontrolera Slurm
slurmd.service załadowano aktywne działające demon węzła Slurm
...
Aby sprawdzić węzeł/partycję slurm:
$ scontrol show node
$ scontrol show partition
Powinno to odpowiadać zasobom podanym w lscpu
.
Aby włączyć/wyłączyć usługę uruchamiającą slurm-resources
:
$ systemctl enable slurm-resources
Aby bezpośrednio zmienić konfigurację zasobów slurm, możesz użyć m.in.:
$ slurm-resources -e restart_on_change=true -e slurm_max_cpus=2
To zaktualizuje zasoby zdefiniowane dla węzła, ustawi maksymalnie CPU dla partycji na 2 (niezależnie od dostępnych CPU na węźle) i zrestartuje usługi slurm z zaktualizowaną konfiguracją (jeśli konfiguracja uległa zmianie).
Instalacja
ansible-galaxy install marvel-nccr.slurm
Zmienne roli
Zobacz defaults/main.yml
Przykład Playbooka
- hosts: serwery
roles:
- rola: marvel-nccr.slurm
Rozwój i testowanie
Ta rola używa Molecule i Docker do testów.
Po zainstalowaniu Docker:
Sklonuj repozytorium do pakietu o nazwie marvel-nccr.slurm
(folder musi być nazwany tak samo jak nazwa w Ansible Galaxy)
git clone https://github.com/marvel-nccr/ansible-role-slurm marvel-nccr.slurm
cd marvel-nccr.slurm
Następnie uruchom:
pip install -r requirements.txt # Instalacja molecule
molecule test # uruchamia testy
lub użyj tox (zobacz tox.ini
):
pip install tox
tox
Styl kodu
Styl kodu jest formatowany i sprawdzany z użyciem pre-commit.
pip install pre-commit
pre-commit run --all
Wdrożenie
Wdrożenie do Ansible Galaxy jest zautomatyzowane za pomocą GitHub Actions. Po prostu oznacz wydanie jako vX.Y.Z
, aby zainicjować proces CI i wydania. Uwaga, wydanie zakończy się powodzeniem tylko wtedy, gdy testy CI przejdą.
Licencja
MIT
Kontakt
Wszelkie pytania dotyczące Quantum Mobile i powiązanych ról ansible prosimy kierować na listę mailingową AiiDA.
An Ansible role that installs the [slurm](https://slurm.schedmd.com/) workload manager on Ubuntu.
ansible-galaxy install marvel-nccr.slurm