professormanhattan.snapd

<!-- ⚠️ Ce README a été généré à partir du fichier(s) ".config/docs/blueprint-readme-role.md" ⚠️-->
<div align="center">
  <center>
    <a href="https://github.com/megabyte-labs/ansible-snapd">
      <img width="148" height="148" alt="Logo Snap" src="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/raw/master/logo.png" />
    </a>
  </center>
</div>
<div align="center">
  <center><h1 align="center"><i></i>Snap - Un Gestionnaire de Paquets Linux<i></i></h1></center>
  <center><h4 style="color: #18c3d1;">Créé par <a href="https://megabyte.space" target="_blank">Megabyte Labs</a></h4><i></i></center>
</div>

<div align="center">
  <a href="https://megabyte.space" title="Page d'accueil de Megabyte Labs" target="_blank">
    <img alt="Page d'accueil" src="https://img.shields.io/website?down_color=%23FF4136&down_message=Down&label=Homepage&logo=home-assistant&logoColor=white&up_color=%232ECC40&up_message=Up&url=https%3A%2F%2Fmegabyte.space&style=for-the-badge" />
  </a>
  <a href="https://github.com/megabyte-labs/ansible-snapd/blob/master/docs/CONTRIBUTING.md" title="Apprenez-en plus sur la contribution" target="_blank">
    <img alt="Contribution" src="https://img.shields.io/badge/Contributing-Guide-0074D9?logo=github-sponsors&logoColor=white&style=for-the-badge" />
  </a>
  <a href="https://app.slack.com/client/T01ABCG4NK1/C01NN74H0LW/details/" title="Discuter avec nous sur Slack" target="_blank">
    <img alt="Slack" src="https://img.shields.io/badge/Slack-Chat-e01e5a?logo=slack&logoColor=white&style=for-the-badge" />
  </a>
  <a href="https://gitter.im/megabyte-labs/community" title="Discuter avec la communauté sur Gitter" target="_blank">
    <img alt="Gitter" src="https://img.shields.io/gitter/room/megabyte-labs/community?logo=gitter&logoColor=white&style=for-the-badge" />
  </a>
  <a href="https://github.com/megabyte-labs/ansible-snapd" title="Miroir GitHub" target="_blank">
    <img alt="GitHub" src="https://img.shields.io/badge/Mirror-GitHub-333333?logo=github&style=for-the-badge" />
  </a>
  <a href="https://gitlab.com/megabyte-labs/ansible-roles/snapd" title="Dépôt GitLab" target="_blank">
    <img alt="GitLab" src="https://img.shields.io/badge/Repo-GitLab-fc6d26?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAHJJREFUCNdNxKENwzAQQNEfWU1ZPUF1cxR5lYxQqQMkLEsUdIxCM7PMkMgLGB6wopxkYvAeI0xdHkqXgCLL0Beiqy2CmUIdeYs+WioqVF9C6/RlZvblRNZD8etRuKe843KKkBPw2azX13r+rdvPctEaFi4NVzAN2FhJMQAAAABJRU5ErkJggg==&style=for-the-badge" />
  </a>
</div>
<br/>
<div align="center">
  <a title="Rôle Ansible Galaxy: professormanhattan.snapd" href="https://galaxy.ansible.com/professormanhattan/snapd" target="_blank">
    <img alt="Rôle Ansible Galaxy: professormanhattan.snapd" src="https://img.shields.io/ansible/role/56331?logo=ansible&style=flat-square" />
  </a>
  <a title="Version: 0.0.1" href="https://github.com/megabyte-labs/ansible-snapd" target="_blank">
    <img alt="Version: 0.0.1" src="https://img.shields.io/badge/version-0.0.1-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAACNJREFUCNdjIACY//+BEp9hhM3hAzYQwoBIAqEDYQrCZLwAAGlFKxU1nF9cAAAAAElFTkSuQmCC&cacheSeconds=2592000&style=flat-square" />
  </a>
  <a title="Statut de la construction GitLab" href="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/commits/master" target="_blank">
    <img alt="Statut de la construction" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/snapd?branch=master&label=build&logo=gitlab&logoColor=white&style=flat-square" />
  </a>
  <a title="Statut du test Windows 11 sur GitHub" href="https://github.com/megabyte-labs/ansible-snapd/actions/workflows/Windows.yml" target="_blank">
    <img alt="Statut du test Windows 11" src="https://img.shields.io/github/workflow/status/ProfessorManhattan/ansible-snapd/Windows%20Ansible%20Role%20Test/master?color=cyan&label=windows&logo=windows&style=flat-square" />
  </a>
  <a title="Statut du test macOS sur GitLab" href="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/commits/master" target="_blank">
    <img alt="Statut du test macOS" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/snapd?branch=test%2Fdarwin&label=osx&logo=apple&style=flat-square" />
  </a>
  <a title="Statut du test Linux Molecule sur GitLab" href="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/commits/master" target="_blank">
    <img alt="Statut du test Linux Molecule" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/snapd?branch=test%2Flinux&label=linux&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAElBMVEUAAAAwPEEuOEIxOzswPj7///91+pI+AAAABXRSTlMANRkNJejDPNcAAAB+SURBVCjPddHBDYAgDIXhGtMRHMG7S3hvTP79VxFIQVq1wOVLm7wU8QIJpSThC2wGwwJoPQFKRdiAAIhGsAykZNSZAOVNMx4BMjwtpySgr6CDJdB/MAdJwAvSiFoE5aABHUb0ch0WHNQq+KPAOgCgrbEnbjAHArjGz3jr3hpumrQpvwi66rkAAAAASUVORK5CYII=&style=flat-square" />
  </a>
  <a title="Score de qualité Ansible Galaxy (sur 5)" href="https://galaxy.ansible.com/professormanhattan/snapd" target="_blank">
    <img alt="Score de qualité Ansible Galaxy" src="https://img.shields.io/ansible/quality/56331?logo=ansible&style=flat-square" />
  </a>
  <a title="Nombre de téléchargements Ansible Galaxy" href="https://galaxy.ansible.com/professormanhattan/snapd" target="_blank">
    <img alt="Nombre de téléchargements Ansible Galaxy" src="https://img.shields.io/ansible/role/d/56331?logo=ansible&label=downloads&style=flat-square" />
  </a>
  <a title="Documentation" href="https://megabyte.space/docs/ansible" target="_blank">
    <img alt="Documentation" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg?logo=readthedocs&logoColor=white&style=flat-square" />
  </a>
  <a title="Licence : MIT" href="https://github.com/megabyte-labs/ansible-snapd/blob/master/LICENSE" target="_blank">
    <img alt="Licence : MIT" src="https://img.shields.io/badge/license-MIT-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAHpJREFUCNdjYOD/wMDAUP+PgYHxhzwDA/MB5gMM7AwMDxj4GBgKGGQYGCyAEEgbMDDwAAWAwmk8958xpIOI5zKH2RmOyhxmZjguAiKmgIgtQOIYmFgCIp4AlaQ9OczGkJYCJEAGgI0CGwo2HmwR2Eqw5SBnNIAdBHYaAJb6KLM15W/CAAAAAElFTkSuQmCC&style=flat-square" />
  </a>
</div>

> <br/><h4 align="center">**Un rôle Ansible qui garantit que Snap est installé et correctement configuré sur les systèmes Linux**</h4><br/>

<a href="#table-of-contents" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## Table des Matières

- [Aperçu](#aperçu)
- [Fonctionnalités](#fonctionnalités)
- [Démarrage Rapide](#démarrage-rapide)
- [Systèmes d'Exploitation Pris en Charge](#systèmes-d'exploitation-pris-en-charge)
- [Dépendances](#dépendances)
  - [Python](#python)
  - [Rôles Galaxy](#rôles-galaxy)
  - [Collections Galaxy](#collections-galaxy)
- [Exemple de Playbook](#exemple-de-playbook)
  - [Exemple du Monde Réel](#exemple-du-monde-réel)
- [Contribution](#contribution)
  - [Partenaires](#partenaires)
- [Licence](#licence)

<a href="#aperçu" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## Aperçu

Ce dépôt est la maison d'un rôle [Ansible](https://www.ansible.com/) qui garantit que Snap est installé et correctement configuré sur les systèmes Linux. [Snap](https://snapcraft.io/) est un système d'emballage 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 directement leurs applications aux utilisateurs. Les snaps sont des applications autonomes exécutées dans un bac à sable avec un accès médié à la machine hôte.

<a href="#fonctionnalités" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## Fonctionnalités

**Garantit que Snap est installé :**

- Installe Snap sur les systèmes Linux
- S'assure que Snap est démarré et activé au démarrage du système

<a href="#démarrage-rapide" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## Démarrage Rapide

Vous souhaitez installer Snap sans avoir à gérer [Ansible](https://www.ansible.com/) ? Il vous suffit d'exécuter la commande correspondante à votre système d'exploitation :

**Linux/macOS :**

```shell
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'))

Remarque Importante : Avant de lancer les commandes ci-dessus, vous devriez probablement accéder directement à l'URL pour vous 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 devriez 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 a 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), veuillez continuer à lire ci-dessous.

Systèmes d'Exploitation Pris en Charge

Le tableau ci-dessous montre les systèmes d'exploitation sur lesquels nous avons testé ce rôle. Il est généré automatiquement à l'aide des tests Ansible Molecule situés dans le dossier molecule/. Il y a 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 de type Debian ou 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 pas de changements sur le système lors de la deuxième exécution.

Nous avons passé beaucoup de temps à perfectionner nos configurations CI et nos outils de construction. Si vous voulez en savoir plus sur la manière dont nous avons perfectionné notre processus, vous pourriez trouver intéressants nos fichiers communs Ansible et notre documentation Ansible. Consultez le guide CONTRIBUTING.md pour plus de détails.

Dépendances

La plupart de nos rôles s'appuient sur des collections Ansible Galaxy. Certains de nos projets sont également dépendants 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 collections et de rôles, 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 dans Ansible et que cela ne vous dérange pas que les exigences de développement soient également installées. C'est la façon la plus simple de vous assurer que tout fonctionne correctement.

Python

Bien que l'outil uniquement nécessaire pour exécuter ce play sur une machine standard soit Ansible (un package Python), nous incluons plusieurs autres dépendances Python requises pour des cas d'utilisation spécialisés et le développement. Le tableau ci-dessous détaille ces packages :

Package Description Requis
ansible Un système de gestion de configuration qui peut configurer des ordinateurs à distance
✔️
docker Permet la capacité de provisionner des conteneurs Docker avec Ansible
✔️
python-vagrant Nécessaire pour provisionner des VM 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 graphique de compatibilité et d'autres graphiques)
black Formatter automatique de fichiers Python inclus au cas où le projet utilise des scripts de test Python
blocklint Outil de linting qui empêche certains mots d'entrer dans la base de code
flake8 Linter Python qui signale les erreurs de syntaxe et de style Python
mod-ansible-autodoc Fork personnalisé de ansible-autodoc qui nous permet de générer automatiquement une 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 VM Vagrant
pre-commit-hooks Suite d'outils utile pour le linting
proselint Linter utilisé pour générer des améliorations de langue anglaise (utilisé pour améliorer la documentation)
yamllint Linter pour les fichiers YAML qui assure que la syntaxe et le style appropriés sont utilisés

Rôles Galaxy

Bien que la plupart de nos rôles n'aient pas de dépendances, il existe des cas où un autre rôle doit être installé avant que la logique puisse continuer. Au début du play, les dépendances de rôle Ansible Galaxy répertoriées dans meta/main.yml s'exécuteront. 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, l'installation des dépendances sera ignorée après la première exécution. Certains de nos rôles utilisent également directement des rôles d'assistance à partir des fichiers de tâches, ce qui aide à garder notre playbook principal (Gas Station) DRY.

Le fichier requirements.yml contient une liste complète des dépendances Ansible Galaxy requises par ce rôle (c'est-à-dire les dépendances de rôle meta/main.yml, les rôles d'assistance, les collections, etc.). Pour votre commodité, une liste des dépendances de rôle avec de courtes descriptions se trouve ci-dessous :

dépendances_de_rôle

Collections Galaxy

Ce rôle dépend de plusieurs collections Ansible Galaxy. Les collections avec des liens vers leur source sont répertoriées ci-dessous.

  • badge Ansible Galaxy community.general
  • badge Ansible Galaxy google.cloud

Exemple de Playbook

Avec les dépendances installées, tout ce que vous avez à faire est d'ajouter le rôle à votre playbook principal. Le rôle gère le comportement become, donc vous pouvez simplement ajouter le rôle à votre playbook sans avoir à 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 préexistant, il pourrait être judicieux de copier les exigences décrites dans pyproject.toml et requirements.yml vers leurs fichiers correspondants à la racine de votre playbook afin que vous n'ayez qu'à vous soucier d'installer un ensemble d'exigences lors d'une utilisation future. Notez que les dépendances dans pyproject.toml peuvent être déplacées vers le plus traditionnel 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 (alias Gas Station). Le playbook est un excellent exemple pour quiconque apprenant à utiliser Ansible. Il intègre également de nombreux outils de construction bien pensés que des utilisateurs Ansible plus avancés apprécieront. Et les personnes qui ne se soucient pas d'Ansible peuvent également en bénéficier car il vous permet de transformer plus ou moins votre ordinateur (et votre réseau) en l'ultime environnement de développement. En gros, c'est un projet génial que les développeurs devraient connaître !

Contribution

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 jeter un œil au guide de contribution.

Sponsoring

Cher Personne Géniale,

Je crée des projets open source par amour. Bien que j'ai un emploi, un abri, et autant de fast-food que je peux gérer, ce serait quand même super d'être apprécié par la communauté pour quelque chose sur lequel j'ai passé beaucoup de temps et d'argent. Veuillez envisager de me sponsoriser ! Qui sait ? Peut-être que je pourrai quitter mon travail et publier du code open source à plein temps.

Cordialement,

Brian Zalewski

Sponsors Open Collective Sponsors GitHub Patreon

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 :

MailChimp Badge de parrainage DigitalOcean

Licence

Droits d'auteur © 2020-2021 Megabyte LLC. Ce projet est sous licence MIT. ```

Installer
ansible-galaxy install professormanhattan.snapd
Licence
other
Téléchargements
4.5k
Propriétaire
Often imitated, never duplicated