professormanhattan.snapd

Snap - Ein Linux-Paketmanager

Entwickelt von Megabyte Labs



Eine Ansible-Rolle, die sicherstellt, dass Snap auf Linux-Systemen installiert und korrekt konfiguriert ist


Inhalt

Überblick

Dieses Repository ist das Zuhause einer Ansible Rolle, die sicherstellt, dass Snap auf Linux-Systemen installiert und richtig konfiguriert ist. Snap ist ein Software-Paket- und Bereitstellungssystem, das von Canonical für Betriebssysteme entwickelt wurde, die den Linux-Kernel verwenden. Die Pakete, die Snaps genannt werden, und das Tool, um sie zu verwenden, snapd, funktionieren über eine Reihe von Linux-Distributionen und ermöglichen es Softwareentwicklern, ihre Anwendungen direkt an die Benutzer zu verteilen. Snaps sind eigenständige Anwendungen, die in einer Sandbox laufen mit kontrolliertem Zugriff auf das Hosts-System.

Funktionen

Stellt sicher, dass Snap installiert ist:

  • Installiert Snap auf Linux-Systemen
  • Stellt sicher, dass Snap gestartet wird und beim Systemstart aktiviert ist

Schnellstart

Möchten Sie Snap installieren, ohne sich mit Ansible auseinandersetzen zu müssen? Führen Sie einfach den folgenden Befehl aus, der zu Ihrem Betriebssystem passt:

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

Wichtiger Hinweis: Bevor Sie die obigen Befehle ausführen, sollten Sie wahrscheinlich direkt die URL aufrufen, um sicherzustellen, dass der Code legitim ist. Wir wissen bereits, dass er sicher ist, aber bevor Sie ein Skript auf Ihrem Computer ausführen, sollten Sie es inspizieren.

Sie können auch Install Doctor ausprobieren. Es ist eine App, die wir erstellt haben, die jede Ansible-Rolle mit einer einzigen Zeile installieren kann. Es hat auch einige andere nette Funktionen, z.B. die Möglichkeit, Binärdateien ohne Passworteingabe unterwegs zu installieren. Wenn Sie jedoch diese Rolle in ein Ansible-Playbook einfügen (und die Einstellungen anpassen) möchten, lesen Sie bitte weiter.

Unterstützte Betriebssysteme

Die folgende Tabelle zeigt die Betriebssysteme, auf denen wir diese Rolle getestet haben. Sie wird automatisch durch die Ansible Molecule-Tests generiert, die sich im Ordner molecule/ befinden. Es gibt eine CI-Logik, um automatisch die Tests für Windows, macOS, Ubuntu, Fedora, CentOS, Debian und Archlinux zu handhaben. Wenn Ihr Betriebssystem nicht aufgelistet ist, aber eine Variante eines der Systeme ist, die wir testen (also ein Debian-basiertes System oder ein RedHat-basiertes System), dann kann es sein, dass die Rolle trotzdem funktioniert.

OS-Familie OS-Version Status Idempotent Getestet auf

Was bedeutet idempotent? Idempotent bedeutet, dass wenn Sie diese Rolle zwei Mal hintereinander ausführen, es beim zweiten Mal keine Änderungen am System gibt.

Wir haben viel Zeit damit verbracht, unsere CI-Konfigurationen und Build-Tools zu perfektionieren. Wenn Sie mehr darüber erfahren möchten, wie wir unseren Prozess perfektioniert haben, finden Sie möglicherweise unsere Ansible Common Dateien und unsere Ansible-Dokumentation Repositories interessant. Weitere Einzelheiten finden Sie im Leitfaden CONTRIBUTING.md.

Abhängigkeiten

Die meisten unserer Rollen basieren auf Ansible Galaxy Sammlungen. Einige unserer Projekte hängen auch von anderen Rollen und Sammlungen ab, die auf Ansible Galaxy veröffentlicht sind. Bevor Sie diese Rolle ausführen, müssen Sie die Sammlung und Rollenabhängigkeiten sowie die Python-Anforderungen installieren, indem Sie Folgendes ausführen:

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

Alternativ können Sie einfach bash .config/scripts/start.sh ausführen, wenn Sie neu bei Ansible sind und sich nicht um die Entwicklungsvoraussetzungen kümmern möchten. Dies ist der einfache Weg, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

Python

Obwohl das einzige Werkzeug, das erforderlich ist, um dieses Play auf einer Standardmaschine auszuführen, Ansible (ein Python-Paket) ist, enthalten wir mehrere andere Python-Abhängigkeiten, die für spezialisierte Anwendungsfälle und Entwicklungen erforderlich sind. Die folgende Tabelle beschreibt diese Pakete:

Paket Beschreibung Erforderlich
ansible Ein Konfigurationsmanagementsystem, das Computer remote konfigurieren kann
✔️
docker Ermöglicht die Bereitstellung von Docker-Containern mit Ansible
✔️
python-vagrant Erforderlich für die Bereitstellung von Vagrant-VMs
✔️
pywinrm Erforderlich für die Bereitstellung von Windows-Maschinen, die WinRM verwenden
✔️
ansible-lint Linting-Tool für Ansible-Dateien
ansibler Benutzerdefiniertes Tool zum Erstellen fortschrittlicher Dokumentationen (z.B. es erstellt das Kompatibilitätsschema und einige andere Diagramme)
black Automatisches Formatierungstool für Python-Dateien, falls das Projekt Python-Testskripte verwendet
blocklint Linting-Tool, das verhindert, dass bestimmte Wörter in den Code-Eingang gelangen
flake8 Python-Linter, der Python-Syntax und -Stil-Fehler meldet
mod-ansible-autodoc Benutzerdefinierte Fork von ansible-autodoc, die es uns ermöglicht, Dokumentationen basierend auf Kommentaren in den YAML-Dateien der Rolle automatisch zu generieren
molecule Testframework für Ansible
molecule-docker Molecule-Plugin zur Bereitstellung von Docker-Containern
molecule-vagrant Molecule-Plugin zur Bereitstellung von Vagrant-VMs
pre-commit-hooks Suite von Tools, die beim Linting nützlich sind
proselint Linter, der zur Verbesserung der englischen Sprache verwendet wird (wird verwendet, um die Dokumentation zu verbessern)
yamllint Linter für YAML-Dateien, der sicherstellt, dass die richtige Syntax und Formatsierung verwendet wird

Galaxy-Rollen

Obwohl die meisten unserer Rollen keine Abhängigkeiten haben, gibt es einige Fälle, in denen eine andere Rolle installiert werden muss, bevor die Logik fortgesetzt werden kann. Zu Beginn des Plays werden die in meta/main.yml aufgeführten Ansible Galaxy-Rollenabhängigkeiten ausgeführt. Diese Abhängigkeiten sind so konfiguriert, dass sie pro Playbook nur einmal ausgeführt werden. Wenn Sie mehr als eine unserer Rollen in Ihr Playbook aufnehmen, die gemeinsame Abhängigkeiten haben, wird die Installationsabhängigkeit nach der ersten Ausführung übersprungen. Einige unserer Rollen verwenden auch Hilfsrollen direkt aus den Aufgaben, was hilft, unser Hauptplaybook (Gas Station) DRY zu halten.

Die Datei requirements.yml enthält eine vollständige Liste der Ansible Galaxy-Abhängigkeiten, die von dieser Rolle benötigt werden (d.h. die in meta/main.yml aufgeführten Rollenabhängigkeiten, Hilfsrollen, Sammlungen usw.). Zu Ihrer Bequemlichkeit finden Sie eine Liste der Rollenabhängigkeiten mit kurzen Beschreibungen unten:

rollenabhängigkeiten

Galaxy-Kollektionen

Diese Rolle ist von mehreren Ansible Galaxy-Sammlungen abhängig. Die Sammlungen sowie Links zu ihrer Quelle sind unten aufgeführt.

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

Beispiel-Playbook

Nachdem die Abhängigkeiten installiert sind, müssen Sie nur noch die Rolle zu Ihrem Haupt-Playbook hinzufügen. Die Rolle übernimmt das become Verhalten, Sie können die Rolle also einfach zu Ihrem Playbook hinzufügen, ohne sich um Befehle zu kümmern, die nicht als root ausgeführt werden sollten:

- hosts: alle
  rollen:
    - professormanhattan.snapd

Wenn Sie diese Rolle in ein vorhandenes Playbook einfügen, kann es ratsam sein, die Anforderungen, die in pyproject.toml und requirements.yml aufgeführt sind, in die entsprechenden Dateien im Stamm Ihres Playbooks zu kopieren, sodass Sie sich nur um die Installation eines Satzes von Anforderungen während der zukünftigen Nutzung kümmern müssen. Beachten Sie, dass die Abhängigkeiten in pyproject.toml in die traditionellere requirements.txt verschoben werden können, falls Sie diese zur Verfolgung von Python-Abhängigkeiten verwenden.

Echtes Beispiel

Sie finden ein Beispiel für ein Playbook, das diese Rolle in unserem Haupt-Playbook (auch bekannt als Gas Station) integriert. Das Playbook ist ein hervorragendes Beispiel für jemanden, der lernt, wie man Ansible verwendet. Es integriert auch viele durchdachte Build-Tools, die fortgeschrittene Ansible-Nutzer zu schätzen wissen. Und Menschen, die sich nicht um Ansible kümmern, können ebenfalls davon profitieren, weil es Ihnen im Grunde ermöglicht, Ihren Computer (und Ihr Netzwerk) in die ultimative Entwicklungsumgebung zu verwandeln. Die Quintessenz ist, dass es ein großartiges Projekt ist, von dem Entwickler wissen sollten!

Beitragen

Beiträge, Probleme und Funktionsanfragen sind willkommen! Fühlen Sie sich frei, die Probleme-Seite zu überprüfen. Wenn Sie beitragen möchten, werfen Sie bitte einen Blick auf den Leitfaden zum Beitragen.

Sponsoring

Liebe großartige Person,

Ich erstelle Open-Source-Projekte aus Liebe. Obwohl ich einen Job, ein Dach über dem Kopf und so viel Fast Food wie ich vertrage habe, wäre es trotzdem ziemlich toll, von der Community für etwas gewürdigt zu werden, an dem ich viel Zeit und Geld investiert habe. Bitte überlegen Sie, mich zu unterstützen! Wer weiß? Vielleicht kann ich meinen Job kündigen und Open Source Vollzeit veröffentlichen.

Mit freundlichen Grüßen,

Brian Zalewski

Open Collective Sponsoren GitHub Sponsoren Patreon

Partner

Unten finden Sie eine Liste von Diensten, die wir nutzen und die spezielle Anreize bieten, wenn Sie sich über unsere speziellen Links anmelden:

MailChimp DigitalOcean Referral Badge

Lizenz

Copyright © 2020-2021 Megabyte LLC. Dieses Projekt ist MIT lizenziert.

Installieren
ansible-galaxy install professormanhattan.snapd
GitHub Repository
Lizenz
other
Downloads
4.5k
Besitzer
Often imitated, never duplicated