Gestion de l'infrastructure physique de Cedille via Ansible
.
├─ inventories/
│ ├─ infra
│ └─ event
├─ playbooks/
│ ├─ cisco-pnp
│ └─ proxmox
├─ scripts/
│ └─ expand_switch_selection.py
├─ data/
│ └─ raw/
│ └─ lanets-inventaire-switch.csv
├─ collections/
│ └─ requirements.yml
├─ ansible.cfg
├─ Makefile
└─ requirements.txt
Lister les playbooks disponibles:
make list-playbooksExécuter un playbook (inventaire infra par défaut):
make proxmox/updateExécuter un playbook avec un inventaire spécifique:
make cisco-pnp/deployment inventory=inventories/event/hosts.iniValider la qualité YAML/Ansible localement:
make lintLe script de génération de snippets PnP est maintenant dans scripts/expand_switch_selection.py.
Exemple:
.venv/bin/python3 scripts/expand_switch_selection.py --helpDocumentation faite en fonction d'une distribution Debian-based:
Installer make, python, pip, virtualenv
sudo apt update
sudo apt install python3 python3-pip make
pip3 install virtualenvÉditer le PATH pour incorporer le path des exécutable python
echo -e "export PATH=\$PATH:/home/$USER/.local/bin" >> ~/.bashrc
source ~/.bashrcExécuter le playbook pour générer l'environnement
# Depuis le répertoire cloné du projet
make venvInstaller les collections et rôles Ansible:
make galaxy-installOptionnel: installer les packages ansible et ansible-lint localement pour que l'autocomplétion fonctionne dans le terminal ainsi que le serveur de langage dans VSCode et/ou autres éditeurs de textes
pip3 install ansible
pip3 install ansible-lintLe workflow GitHub Actions Lint exécute make lint sur chaque Pull Request,
sur main et via déclenchement manuel.