professormanhattan.snapd

Snap - Menedżer pakietów Linux

Stworzone przez Megabyte Labs



Rola Ansible, która zapewnia zainstalowanie i odpowiednią konfigurację Snap na systemach Linux


Spis treści

Przegląd

To repozytorium jest domem dla roli Ansible, która zapewnia, że Snap jest zainstalowany i prawidłowo skonfigurowany na systemach Linux. Snap to system pakowania i wdrażania oprogramowania opracowany przez Canonical dla systemów operacyjnych działających na jądrze Linux. Pakiety zwane snapami oraz narzędzie do ich używania, snapd, działają w różnych dystrybucjach Linuxa i pozwalają deweloperom oprogramowania na bezpośrednie udostępnianie aplikacji użytkownikom. Snaps to samowystarczalne aplikacje działające w piaskownicy z ograniczonym dostępem do systemu gospodarza.

Funkcje

Zapewnia, że Snap jest zainstalowany:

  • Instaluje Snap na systemach Linux
  • Zapewnia, że Snap jest uruchomiony i włączony przy rozruchu systemu

Szybki start

Chcesz zainstalować Snap bez zajmowania się Ansible? Po prostu uruchom poniższe polecenie odpowiednie dla swojego systemu operacyjnego:

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

Ważna uwaga: Zanim uruchomisz powyższe polecenia, warto bezpośrednio sprawdzić URL, aby upewnić się, że kod jest legitny. Już wiemy, że jest bezpieczny, ale przed uruchomieniem jakiegokolwiek skryptu na swoim komputerze powinieneś go zbadać.

Możesz również sprawdzić Install Doctor. To aplikacja, którą stworzyliśmy, aby można było zainstalować dowolną rolę Ansible jednym poleceniem. Posiada również inne przydatne funkcje, jak możliwość instalowania binarek na bieżąco bez konieczności podawania hasła. Jednak jeśli chciałbyś włączyć tę rolę do playbooka Ansible (i dostosować ustawienia), kontynuuj czytanie poniżej.

Obsługiwane systemy operacyjne

Tabela poniżej pokazuje systemy operacyjne, na których przetestowaliśmy tę rolę. Jest automatycznie generowana przy użyciu testów Ansible Molecule znajdujących się w folderze molecule/. Posiadamy logikę CI, która automatycznie obsługuje testowanie Windows, macOS, Ubuntu, Fedora, CentOS, Debian i Archlinux. Jeśli Twój system operacyjny nie jest wymieniony, ale jest odmianą jednego z testowanych systemów (np. system oparty na Debianie lub RedHat), istnieje możliwość, że rola wciąż będzie działać.

Rodzina OS Wersja OS Status Idempotencyjny Testowane na

Co to znaczy, że jest idempotentny? Idempotentny oznacza, że jeśli uruchomisz tę rolę dwa razy z rzędu, to nie będzie żadnych zmian w systemie za drugim razem.

Poświęciliśmy dużo czasu na doskonalenie naszych konfiguracji CI i narzędzi budowlanych. Jeśli chcesz dowiedzieć się więcej o tym, jak zoptymalizowaliśmy nasz proces, możesz być zainteresowany naszymi wspólnymi plikami Ansible oraz dokumentacją Ansible. Zobacz przewodnik CONTRIBUTING.md po więcej szczegółów.

Zależności

Większość naszych ról opiera się na kolekcjach Ansible Galaxy. Niektóre nasze projekty są również uzależnione od innych ról i kolekcji publikowanych w Ansible Galaxy. Zanim uruchomisz tę rolę, musisz zainstalować zależności kolekcji i ról, a także wymagania Python, wykonując:

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

Alternatywnie, możesz po prostu uruchomić bash .config/scripts/start.sh, jeśli jesteś nowy w Ansible i nie masz nic przeciwko zainstalowaniu także wymagań developerskich. To łatwy sposób na upewnienie się, że wszystko działa poprawnie.

Python

Chociaż jedynym narzędziem niezbędnym do uruchomienia tego play na standardowej maszynie jest Ansible (pakiet Python), dołączamy także kilka innych zależności Python, które są potrzebne do specjalnych zastosowań i rozwoju. Tabela poniżej szczegółowo opisuje te pakiety:

Paket Opis Wymagany
ansible System zarządzania konfiguracją, który może zdalnie konfigurować komputery
✔️
docker Umożliwia provisionowanie kontenerów Docker za pomocą Ansible
✔️
python-vagrant Wymagany do provisionowania maszyn Vagrant
✔️
pywinrm Wymagany do provisionowania maszyn Windows korzystających z WinRM
✔️
ansible-lint Narzędzie lintingowe dla plików Ansible
ansibler Niestandardowe narzędzie do generowania zaawansowanej dokumentacji (np. generuje tabelę zgodności i inne wykresy)
black Auto-formatka plików Python, w przypadku gdy projekt wykorzystuje skrypty testowe Python
blocklint Narzędzie lintingowe, które zapobiega wprowadzeniu niektórych słów do bazy kodu
flake8 Linter Pythona, który raportuje błędy składni i stylu
mod-ansible-autodoc Niestandardowa wersja ansible-autodoc, która pozwala na automatyczne generowanie dokumentacji na podstawie komentarzy w plikach YAML roli
molecule Framework testowy dla Ansible
molecule-docker Wtyczka Molecule do provisionowania kontenerów Docker
molecule-vagrant Wtyczka Molecule do provisionowania maszyn Vagrant
pre-commit-hooks Zestaw narzędzi przydatnych do lintingu
proselint Linter używany do generowania poprawek w języku angielskim (wykorzystywany do poprawy dokumentacji)
yamllint Linter dla plików YAML, który zapewnia poprawną składnię i styl

Rola Galaxy

Chociaż większość naszych ról nie ma zależności, są przypadki, gdy inna rola musi być zainstalowana, zanim logika będzie mogła zostać kontynuowana. Na początku wykonywania roli, zależności z Galaxy Ansible wymienione w meta/main.yml będą działały. Te zależności są skonfigurowane w taki sposób, aby działały tylko raz na playbook. Jeśli w swoim playbooku uwzględnisz więcej niż jedną z naszych ról, które mają wspólne zależności, instalacja zależności zostanie pominięta po pierwszym uruchomieniu. Niektóre nasze role korzystają również z pomocniczych ról bezpośrednio w plikach z zadaniami, co pomaga w utrzymaniu naszego głównego playbooka (Gas Station) w duchu DRY.

Plik requirements.yml zawiera pełną listę zależności z Ansible Galaxy wymaganych przez tę rolę (tj. zależności roli z meta/main.yml, role pomocnicze, kolekcje itp.). Dla Twojej wygody poniżej znajduje się lista zależności ról oraz ich krótkie opisy:

dependencies_ról

Kolekcje Galaxy

Ta rola zależy od kilku kolekcji Ansible Galaxy. Kolekcje oraz linki do ich źródeł są wymienione poniżej.

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

Przykładowy playbook

Gdy zainstalujesz wszystkie zależności, wszystko co musisz zrobić to dodać rolę do swojego głównego playbooka. Rola obsługuje zachowanie become, dzięki czemu możesz po prostu dodać rolę do swojego playbooka bez martwienia się o komendy, które nie powinny być uruchamiane jako root:

- hosts: all
  roles:
    - professormanhattan.snapd

Jeśli włączasz tę rolę do już istniejącego playbooka, warto skopiować wymagania opisane w pyproject.toml oraz requirements.yml do odpowiednich plików w głównym katalogu Twojego playbooka, abyś musiał martwić się tylko o zainstalowanie jednego zestawu wymagań przy przyszłym użyciu. Zauważ, że zależności w pyproject.toml mogą być przeniesione do bardziej tradycyjnego requirements.txt, jeśli to właśnie używasz do śledzenia zależności Python.

Przykład z życia wzięty

Możesz znaleźć przykład playbooka, który włącza tę rolę w naszym głównym playbooku (tzw. Gas Station). Playbook ten jest doskonałym przykładem dla kogoś, kto uczy się korzystać z Ansible. Zawiera także wiele przemyślanych narzędzi budowlanych, które bardziej zaawansowani użytkownicy Ansible mogą docenić. A ludzie, którzy nie są zainteresowani Ansible, również mogą skorzystać z niego, ponieważ pozwala to przemienić komputer (i sieć) w doskonałe środowisko deweloperskie. Ostatecznie jest to wspaniały projekt, o którym powinien wiedzieć każdy programista!

Wnoszenie wkładu

Wszelkie wkłady, problemy i prośby o funkcje są mile widziane! Nie krępuj się sprawdzić strony z problemami. Jeśli chciałbyś wnieść swój wkład, zapoznaj się z przewodnikiem po wnoszeniu wkładu.

Wsparcie
Droga Osobo,

Tworzę projekty open source z miłości. Mimo że mam pracę, dach nad głową i tyle jedzenia, ile mogę zjeść, byłoby naprawdę miło być docenionym przez społeczność za coś, na co poświęciłem dużo czasu i pieniędzy. Proszę, rozważ wsparcie mnie! Kto wie? Może będę mógł zrezygnować z pracy i publikować open source na pełen etat.

Z szacunkiem,

Brian Zalewski

Sponsorzy Open Collective Sponsorzy GitHub Patreon

Partnerzy

Poniżej znajdziesz listę usług, z których korzystamy i które oferują specjalne korzyści za rejestrację w ich serwisach przez nasze specjalne linki:

MailChimp Odznaka polecająca DigitalOcean

Licencja

Copyright © 2020-2021 Megabyte LLC. Ten projekt jest licencjonowany na zasadzie MIT.

Zainstaluj
ansible-galaxy install professormanhattan.snapd
Licencja
other
Pobrania
4.5k
Właściciel
Often imitated, never duplicated