{"id":22780402,"url":"https://github.com/stephrobert/imagevalidator","last_synced_at":"2025-04-13T10:30:59.705Z","repository":{"id":262286521,"uuid":"886770570","full_name":"stephrobert/ImageValidator","owner":"stephrobert","description":"Un outil Python pour valider les images de VM avant déploiement sur Outscale, AWS et autres clouds:  drivers, configurations, services ... .","archived":false,"fork":false,"pushed_at":"2025-01-05T19:15:06.000Z","size":26,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-05T20:20:26.795Z","etag":null,"topics":["automation","cloud","image","python","validation"],"latest_commit_sha":null,"homepage":"https://blog.stephane-robert.info/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stephrobert.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-11T15:17:20.000Z","updated_at":"2024-11-14T23:33:19.000Z","dependencies_parsed_at":"2025-01-05T20:20:03.516Z","dependency_job_id":"eef7c08d-3a27-4d70-b81f-571604797d72","html_url":"https://github.com/stephrobert/ImageValidator","commit_stats":null,"previous_names":["stephrobert/imagevalidator"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephrobert%2FImageValidator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephrobert%2FImageValidator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephrobert%2FImageValidator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephrobert%2FImageValidator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stephrobert","download_url":"https://codeload.github.com/stephrobert/ImageValidator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237329819,"owners_count":19292260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cloud","image","python","validation"],"created_at":"2024-12-11T20:42:59.186Z","updated_at":"2025-02-05T16:16:37.662Z","avatar_url":"https://github.com/stephrobert.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Voici une version mise à jour du fichier `README.md` avec la section de débogage\najoutée et des corrections sur d'autres parties :\n\n---\n\n# ImageValidator\n\n**ImageValidator** est un outil Python conçu pour vérifier la conformité des\nimages de machines virtuelles (VM) avant leur déploiement en environnement\ncloud. Il permet de valider des éléments critiques comme les drivers, la\nconfiguration réseau, les services de démarrage et bien plus encore, afin\nd'assurer que chaque image est prête pour les principales plateformes cloud\n(AWS, Azure, GCP, OpenStack, etc.).\n\n## Fonctionnalités\n\n- **Validation de conformité des disques** : Vérifie la structure et le format\n  des partitions.\n- **Vérification des drivers essentiels** : S'assure de la présence de drivers\n  requis comme `virtio`.\n- **Contrôle des utilisateurs** : Vérifie l'existence d'un utilisateur configuré\n  pour l'administration.\n- **Services au démarrage** : S'assure que `cloud-init`, `SSH` et autres\n  services requis sont bien activés.\n- **Paramètres GRUB** : Analyse et valide la ligne de commande du bootloader.\n- **Rapports de conformité** : Génère un rapport de validation pour chaque image\n  vérifiée.\n\n## Prérequis\n\n- **Python** 3.10 ou plus\n- **libguestfs** installé pour manipuler les images de VM\n- **pyyaml** pour la gestion des fichiers de configuration en YAML\n\n## Installation\n\n1. Clonez le dépôt :\n\n   ```bash\n   git clone https://github.com/votre_nom/ImageValidator.git\n   cd ImageValidator\n   ```\n\n2. Installez KVM comme documenté [ici](https://blog.stephane-robert.info/docs/virtualiser/type1/kvm/).\n3. Installez les dépendances :\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. Assurez-vous que **libguestfs** est installé avec toutes ses dépendances\n   systèmes et correctement configuré pour interagir avec les images de disques\n   virtuels.\n\n5. Installez le projet en mode développement :\n\n   ```bash\n   pip install -e .\n   ```\n\nUne fois installé, vous pouvez utiliser la commande `image-validator` pour\nlancer l'application.\n\n## Débogage\n\nPour déboguer le programme dans VSCode :\n\n1. Assurez-vous que le fichier de configuration `.vscode/launch.json` est\n   correctement configuré :\n\n   ```json\n   {\n       \"version\": \"0.2.0\",\n       \"configurations\": [\n           {\n               \"name\": \"Debug image-validator\",\n               \"type\": \"debugpy\",\n               \"request\": \"launch\",\n               \"program\": \"${workspaceFolder}/launch_image_validator.py\",\n               \"console\": \"integratedTerminal\",\n               \"justMyCode\": true\n           }\n       ]\n   }\n   ```\n\n2. Pour déboguer directement dans le terminal sans VSCode, lancez le script\n   suivant à la racine du projet :\n\n   ```bash\n   python launch_image_validator.py --config config.yaml\n   ```\n\n## Contribution\n\nNous accueillons toutes les contributions pour enrichir le projet\nImageValidator. Que vous soyez développeur, testeur ou utilisateur, chaque\nparticipation est la bienvenue !\n\n### Règles de Contribution\n\n1. **Forkez le dépôt** et clonez-le en local.\n2. **Créez une branche** pour vos modifications :\n\n   ```bash\n   git checkout -b feature/ma-fonctionnalité\n   ```\n\n3. **Commitez vos changements** en suivant le format suivant :\n   - Message clair et concis pour décrire le changement, par exemple : `feat:\n     ajout de la vérification des utilisateurs`.\n   - Évitez les modifications volumineuses dans un même commit.\n4. **Poussez votre branche** vers GitHub :\n\n   ```bash\n   git push origin feature/ma-fonctionnalité\n   ```\n\n5. **Ouvrez une Pull Request** :\n   - Ajoutez une description détaillée de votre modification.\n   - Liez les issues associées (le cas échéant).\n\n### Bonnes Pratiques\n\n- **Respectez la structure du code** : Placez vos fichiers dans les dossiers\n  appropriés (`src/`, `tests/`, etc.).\n- **Écrivez des tests** : Toute nouvelle fonctionnalité doit être accompagnée de\n  tests unitaires pour en garantir la robustesse.\n- **Documentez vos modifications** : Si vous ajoutez une fonctionnalité, pensez\n  à mettre à jour le README ou les fichiers de documentation concernés.\n\n## Roadmap\n\n- **Version 0.1** : Fonctionnalités de validation de base (disques, drivers,\n  services, GRUB).\n- **Version 0.2** : Ajout des fonctionnalités correctives (modification des\n  paramètres GRUB, installation de packages).\n- **Version 0.3** : Ajout de la compatibilité multi-cloud avec des\n  configurations spécifiques à chaque fournisseur (AWS, Azure, GCP).\n\n## Licence\n\nCe projet est sous licence MIT. Consultez le fichier `LICENSE` pour plus de\ndétails.\n\n## Contact et Support\n\nSi vous avez des questions ou des suggestions, n’hésitez pas à **ouvrir une\nissue** ou à rejoindre la section **Discussions** du projet. Nous sommes là pour\nvous aider !\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephrobert%2Fimagevalidator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstephrobert%2Fimagevalidator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephrobert%2Fimagevalidator/lists"}