megabyte-labs.snapd
Snap - Un gestionnaire de paquets Linux
Créé par Megabyte Labs
Un rôle Ansible qui assure que Snap est installé et correctement configuré sur les systèmes Linux
Table des matières
- Aperçu
- Fonctionnalités
- Démarrage rapide
- Systèmes d'exploitation pris en charge
- Dépendances
- Exemple de Playbook
- Contribuer
- Licence
Aperçu
Ce dépôt est le foyer d'un rôle Ansible qui garantit que Snap est installé et correctement configuré sur les systèmes Linux. Snap est un système de packaging et de déploiement de logiciels développé par Canonical pour les systèmes d'exploitation utilisant le noyau Linux. Les paquets, appelés snaps, et l'outil pour les utiliser, snapd, fonctionnent sur une gamme de distributions Linux et permettent aux développeurs de logiciels de distribuer leurs applications directement aux utilisateurs. Les snaps sont des applications autonomes fonctionnant dans un environnement isolé avec un accès médié par le système hôte.
Fonctionnalités
Garantit que Snap est installé :
- Installe Snap sur les systèmes Linux
- Assure que Snap est démarré et activé au démarrage du système
Démarrage rapide
Vous voulez installer Snap sans avoir à vous occuper d'Ansible ? Il vous suffit d’exécuter la commande suivante en fonction de votre système d'exploitation :
Linux/macOS :
curl -sS https://install.doctor/snapd | bash
Windows :
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/snapd?os=win'))
Note importante : Avant d'exécuter les commandes ci-dessus, il est préférable d'accéder directement à l'URL pour s'assurer que le code est légitime. Nous savons déjà qu'il est sûr, mais avant d'exécuter un script sur votre ordinateur, vous devez l'inspecter.
Vous pouvez également consulter Install Doctor. C'est une application que nous avons créée qui peut installer n'importe quel rôle Ansible avec une seule ligne de commande. Elle dispose d'autres fonctionnalités intéressantes, comme la possibilité d'installer des binaires à la volée sans nécessiter de mot de passe. Cependant, si vous souhaitez intégrer ce rôle dans un playbook Ansible (et personnaliser les paramètres), continuez à lire ci-dessous.
Systèmes d'exploitation pris en charge
Le tableau ci-dessous affiche les systèmes d'exploitation sur lesquels nous avons testé ce rôle. Il est généré automatiquement à l'aide des tests Molecule d'Ansible situés dans le dossier molecule/
. Il existe une logique CI en place pour gérer automatiquement les tests sur Windows, macOS, Ubuntu, Fedora, CentOS, Debian et Archlinux. Si votre système d'exploitation n'est pas répertorié mais est une variante de l'un des systèmes que nous testons (c'est-à-dire un système basé sur Debian ou un système basé sur RedHat), il est possible que le rôle fonctionne toujours.
Famille OS | Version OS | Statut | Idempotent | Testé Sur |
---|
Que signifie idempotent ? Idempotent signifie que si vous exécutez ce rôle deux fois de suite, il n'y aura aucun changement dans le système la deuxième fois.
Nous avons passé beaucoup de temps à perfectionner nos configurations CI et nos outils de construction. Si vous souhaitez en savoir plus sur la manière dont nous avons perfectionné notre processus, vous pourriez être intéressé par nos fichiers communs Ansible et nos documents Ansible. Consultez le guide CONTRIBUTING.md pour plus de détails.
Dépendances
La plupart de nos rôles reposent sur des collections Ansible Galaxy. Certains de nos projets dépendent également d'autres rôles et collections publiés sur Ansible Galaxy. Avant d'exécuter ce rôle, vous devrez installer les dépendances de collection et de rôle, ainsi que les exigences Python, en exécutant :
if type poetry &> /dev/null; then poetry install --no-root; else pip3 install -r .config/assets/requirements.txt; fi
ansible-galaxy install -r requirements.yml
Alternativement, vous pouvez simplement exécuter bash .config/scripts/start.sh
si vous êtes nouveau sur Ansible et que vous ne vous souciez pas non plus de l'installation des exigences de développement. C'est une manière facile de s'assurer que tout fonctionne correctement.
Python
Bien que le seul outil nécessaire pour exécuter cette lecture sur une machine standard soit Ansible (un paquet Python), nous incluons plusieurs autres dépendances Python qui sont nécessaires pour des cas d'utilisation spécifiques et le développement. Le tableau ci-dessous détaille ces paquets :
Paquet | Description | Requis |
---|---|---|
ansible | Un système de gestion de configuration qui peut configurer des ordinateurs à distance | ✔️ |
docker | Permet la possibilité de provisionner des conteneurs Docker avec Ansible | ✔️ |
python-vagrant | Nécessaire pour provisionner des machines virtuelles Vagrant | ✔️ |
pywinrm | Nécessaire pour provisionner des machines Windows utilisant WinRM | ✔️ |
ansible-lint | Outil de linting pour les fichiers Ansible | |
ansibler | Outil personnalisé utilisé pour générer une documentation avancée (par exemple, il génère le tableau de compatibilité et quelques autres tableaux) | |
black | Auto-formateur de fichiers Python inclus au cas où le projet utilise des scripts de test en Python | |
blocklint | Outil de linting qui empêche certains mots d'entrer dans le code source | |
flake8 | Linter Python qui signale les erreurs de syntaxe et de style en Python | |
mod-ansible-autodoc | Fork personnalisé de ansible-autodoc qui nous permet d'auto-générer la documentation basée sur les commentaires dans les fichiers YAML du rôle | |
molecule | Cadre de test pour Ansible | |
molecule-docker | Plugin Molecule pour provisionner des conteneurs Docker | |
molecule-vagrant | Plugin Molecule pour provisionner des machines virtuelles Vagrant | |
pre-commit-hooks | Suite d'outils utiles pour le linting | |
proselint | Linter utilisé pour générer des améliorations en langue anglaise (utilisé pour améliorer la documentation) | |
yamllint | Linter pour les fichiers YAML qui assure une syntaxe et un style appropriés |
Rôles Galaxy
Bien que la plupart de nos rôles n'aient pas de dépendances, il y a quelques cas où un autre rôle doit être installé avant que la logique puisse continuer. Au début de la lecture, les dépendances de rôle Ansible Galaxy répertoriées dans meta/main.yml
seront exécutées. Ces dépendances sont configurées pour ne s'exécuter qu'une seule fois par playbook. Si vous incluez plus d'un de nos rôles dans votre playbook qui ont des dépendances communes, alors l'installation des dépendances sera sautée après la première exécution. Certains de nos rôles utilisent également des rôles d'aide directement dans les fichiers de tâches, ce qui permet de garder notre playbook principal (Gas Station) DRY.
Le fichier requirements.yml
contient une liste complète des dépendances de Galaxy Ansible nécessaires à ce rôle (c'est-à-dire les dépendances de rôle dans meta/main.yml
, les rôles d'aide, les collections, etc.). Pour votre commodité, voici une liste des dépendances de rôle avec des descriptions rapides :
dépendances_de_rôle
Collections Galaxy
Ce rôle dépend de plusieurs collections Ansible Galaxy. Les collections ainsi qu'un lien vers leur source sont listés ci-dessous.
Exemple de Playbook
Avec les dépendances installées, il vous suffit d'ajouter le rôle à votre playbook principal. Le rôle gère le comportement become
afin que vous puissiez simplement ajouter le rôle à votre playbook sans vous soucier des commandes qui ne doivent pas être exécutées en tant que root :
- hosts: all
roles:
- professormanhattan.snapd
Si vous intégrez ce rôle dans un playbook existant, il peut être judicieux de copier les exigences décrites dans pyproject.toml
et requirements.yml
vers leurs fichiers respectifs à la racine de votre playbook, afin de n'avoir qu'à vous soucier de l'installation d'un seul ensemble d'exigences lors de futures utilisations. Notez que les dépendances dans pyproject.toml
peuvent être déplacées vers le fichier requirements.txt
, si c'est ce que vous utilisez actuellement pour suivre les dépendances Python.
Exemple du monde réel
Vous pouvez trouver un exemple de playbook qui intègre ce rôle dans notre playbook principal (a.k.a. Gas Station). Le playbook est un excellent exemple pour quelqu'un qui apprend à utiliser Ansible. Il intègre également de nombreux outils de construction bien réfléchis que les utilisateurs Ansible plus avancés pourront apprécier. Et ceux qui se soucient peu d'Ansible peuvent également en bénéficier, car cela vous permet de transformer votre ordinateur (et votre réseau) en un environnement de développement ultime. En gros, c'est un projet génial dont les développeurs devraient entendre parler !
Contribuer
Les contributions, les problèmes et les demandes de fonctionnalités sont les bienvenus ! N'hésitez pas à consulter la page des problèmes. Si vous souhaitez contribuer, veuillez consulter le guide de contribution.
Sponsorship
Cher(e) personne formidable,
Je crée des projets open source par amour. Bien que j'aie un emploi, un logement, et autant de fast-food que je peux gérer, ce serait quand même chouette d'être apprécié par la communauté pour quelque chose sur lequel j'ai passé beaucoup de temps et d'argent. Merci de considérer le fait de me soutenir ! Qui sait ? Peut-être que je pourrai quitter mon emploi et publier des open source à plein temps.
Cordialement,
Brian Zalewski
Partenaires
Vous trouverez ci-dessous une liste de services que nous utilisons et qui offrent des incitations spéciales pour s'inscrire à leurs services via nos liens spéciaux :

Licence
Copyright © 2020-2021 Megabyte LLC. Ce projet est sous licence MIT.
Ensures Snap is installed and properly configured on Linux systems
ansible-galaxy install megabyte-labs.snapd