andrelohmann.nodesource

nodesource

Ostatni test

Zawartość

Użyj tej roli, aby zainstalować nodejs z repozytorium nodesource na swoim serwerze ubuntu.

Wymagania

Ta rola wymaga systemu ubuntu.

Zmienne roli

Domyślny zestaw zmiennych definiuje wersję node'a i najlepiej, aby był nadpisany w group_vars/host_vars.

nodesource_nodejs_version: '20'

Przykładowy Playbook

- hosts: nodesource
  roles:
     - { role: andrelohmann.nodesource }

Rozwój roli

Specjalne cele

To repozytorium wspiera następujące funkcje dla rozwoju roli:

  • yamllint
  • ansible-lint
  • testy molekularne
  • akcje githuba
  • automatyczna aktualizacja wersji
  • aktualizacja ansible-galaxy
  • wyświetlanie statusu budowy
  • testowanie w vagrant (do celów rozwojowych)
  • testowanie z molekularnym (wewnątrz lub na zewnątrz vagranta)
  • testowanie w kontenerze docker
  • testowanie i rozwój w vscode

Wymagania wstępne

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • Zainstalowany Virtualbox + Vagrant (tylko potrzebne, jeśli rola ma być testowana z vagrantem)
  • Docker Desktop
  • Visual Studio Code + pakiet rozszerzeń zdalnych (zależności są zdefiniowane w .vscode/extensions.json)

Ustawienia rozwoju

Ta rola ansible jest rozwijana przy użyciu molekularnego do testowania. Jej rozwój oparty jest na Visual Studio Code i odpowiednim kontenerze deweloperskim, rozwiązującym wszystkie zależności w zakresie niezbędnych narzędzi (ansible, linter, molekularny).

Rola będzie testowana na trzech kontenerach ubuntu (bionic, focal, jammy).

Aby uruchomić kontenery do testów molekularnych z kontenera deweloperskiego, gniazdo docker musi być zamontowane do kontenera deweloperskiego.

Ważne foldery i pliki

.devcontainer
  • Definiuje Dockerfile dla kontenera deweloperskiego
  • Konfiguruje uruchamianie kontenera deweloperskiego (np. montaż gniazda docker)
molecule/default/Dockerfile.js
  • Używany jako szablon dla wszystkich platform zdefiniowanych w molecule/default/molecule.yml
  • Przygotowuje środowiska do obsługi usług systemd (konieczne dla niektórych ról ansible działających na systemd)
  • Instaluje wszystkie wymagania do uruchomienia ansible na uzyskanym kontenerze
  • Plik jest zgodny z atrybutami platform w molecule/default/molecule.yml
  • Aby uzyskać więcej informacji - zapoznaj się z dokumentacją molekularną

Użycie

Visual Studio Code

  • Przejdź do głównego katalogu swojej roli i uruchom vscode
code .
  • Z kontenera deweloperskiego możesz użyć następujących komend
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • Przejdź do głównego katalogu swojej roli
  • Przejdź do folderu vagrant
  • Uruchom i wejdź do maszyny vagrant
vagrant up
vagrant ssh
  • Przejdź do folderu roli
cd /etc/ansible/roles/ansible-role- [tab]
  • Teraz możesz uruchomić wszystkie testy
yamllint .
ansible-lint .
molecule create
molecule test

Proces budowy i wydania

Rola ansible definiuje szereg workflow githuba do przeprowadzenia testów molekularnych i zarządzania wydaniami.

Zarządzanie wydaniami wymaga kilku ustawień.

Ochrona gałęzi master/main

  • Ustawienia -> Gałęzie -> Dodaj zasady ochrony gałęzi
  • Wzór gałęzi -> main lub master (w zależności od twojej domyślnej gałęzi)
  • Ochrona zgodnych gałęzi -> zaznacz "Wymagaj pull requesta przed scaleniem"
  • "Wymagaj zatwierdzeń" można indywidualnie dostosować według potrzeb

Przyznaj uprawnienia do odczytu i zapisu dla GITHUB_TOKEN

  • Ustawienia -> Akcje -> Ogólne -> Uprawnienia do workflow -> uprawnienia do odczytu i zapisu

Wiadomości o zatwierdzeniach

Wiadomości o zatwierdzeniach powinny przestrzegać specjalnego formatu, aby osiągnąć poprawkę, aktualizację minor lub major.

poprawka

0.0.x

fix(single_word): opis
minor

0.x.0

feat(single_word): opis
major

x.0.0

perf(single_word): opis
BREAKING CHANGE: opis zmiany

Jest to bardzo ważne, żeby "BREAKING CHANGE: " było wymienione w drugiej i kolejnej linii. W wiadomościach o zatwierdzeniach jednoliniowych, aktualizacja wersji major będzie ignorowana.

Dodaj sekret GALAXY_API_KEY

  • Uwierzytelnij się na swoim koncie github w https://galaxy.ansible.com/.
  • Pobierz klucz API galaxy z Preferencje -> Klucz API
  • Otwórz swoje repozytorium roli w githubie
  • Ustawienia -> Sekrety i zmienne -> Akcje -> Nowy sekret repozytorium
  • Użyj "GALAXY_API_KEY" jako klucz i skopiowany klucz API galaxy jako wartość

Licencja

MIT

Informacje o autorze

© Andre Lohmann (i inni) 2023

https://github.com/andrelohmann

Kontakt do opiekuna

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
O projekcie

ansible galaxy role to install nodejs from nodesource

Zainstaluj
ansible-galaxy install andrelohmann.nodesource
Licencja
mit
Pobrania
8.5k
Właściciel