andrelohmann.nodesource
nodesource
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
- 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>
ansible-galaxy install andrelohmann.nodesource