andrelohmann.accounts
konta
Zawartość
Wdrożenie użytkowników i kluczy publicznych na twoje maszyny.
Wymagania
Ta rola wymaga systemu ubuntu.
Zmienne roli
Stwórz listę wszystkich użytkowników, którzy muszą być utworzeni w systemie. Możesz ustawić każdy parametr dla użytkownika, który jest dostępny na stronie http://docs.ansible.com/ansible/user_module.html. Możesz również ustawić każdy parametr (oprócz "user") dla klucza, który jest dostępny na stronie http://docs.ansible.com/ansible/authorized_key_module.html. Opcjonalna tablica "accounts_sshd_configs" umożliwia ustawienie parametrów sshd_config.
accounts_users:
- name: __NAZWA_UŻYTKOWNIKA__
uid: __UID__
state: present
groups:
- sudo
public_keys:
- key: ssh-rsa AAA...
state: present
accounts_sshd_configs:
- key: PermitRootLogin
value: 'no'
- key: AuthenticationMethods
value: 'publickey password'
- key: PasswordAuthentication
value: 'yes'
Jeśli potrzebujesz dodatkowych użytkowników na poziomie hosta, możesz ustawić dodatkową listę accounts_host_users.
accounts_host_users:
- name: __NAZWA_UŻYTKOWNIKA__
uid: __UID__
state: present
groups:
- sudo
public_keys:
- key: ssh-rsa AAA...
state: present
Przykład Playbooka
- hosts: accounts
roles:
- { role: andrelohmann.accounts }
Rozwój roli
Cel specjalny
To repozytorium wspiera następujące funkcjonalności dla rozwoju ról:
- yamllint
- ansible-lint
- test molekuły
- akcja github
- automatyczna aktualizacja wersji
- aktualizacja ansible-galaxy
- pokazanie statusu budowy
- testowanie w vagrant (w celach rozwojowych)
- testowanie z molekułą (wewnątrz lub na zewnątrz vagranta)
- testowanie przeciwko kontenerowi docker
- testowanie i rozwijanie w vscode
Wymagania wstępne
- Zainstalowany Virtualbox + Vagrant (tylko jeśli rola ma być testowana również z vagrant)
- Docker Desktop
- VisualStudioCode + pakiet rozszerzeń remote (zależności są zdefiniowane w pliku .vscode/extensions.json)
Ustawienia rozwoju
Ta rola ansible jest rozwijana przy użyciu molekuły do testowania. Rozwój oparty jest na Visual Studio Code oraz odpowiednim kontenerze deweloperskim, rozwiązującym wszystkie zależności w zakresie niezbędnych narzędzi (ansible, linter, molekuła).
Rola będzie testowana na dwóch kontenerach ubuntu (focal, jammy).
Aby uruchomić kontenery testowe molekuły z wewnątrz kontenera deweloperskiego, gniazdo docker musi być podłączone do kontenera deweloperskiego.
Ważne foldery i pliki
.devcontainer
- Definiuje Dockerfile dla kontenera deweloperskiego
- Konfiguruje uruchamianie kontenera deweloperskiego (np. montowanie gniazda docker)
molecule/default/Dockerfile.js
- Używane jako wzór 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 z kontenera pochodnego
- Plik jest dostosowany do atrybutów platform w molecule/default/molecule.yml
- W celu uzyskania dalszych informacji - zapoznaj się z dokumentacją molekuły
Użycie
Visual Studio Code
- Przejdź do katalogu głównego swojej roli i uruchom vscode
code .
- Z wewnątrz kontenera deweloperskiego możesz użyć następujących poleceń
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- Przejdź do katalogu głównego 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 github do uruchamiania testów molekuły i zarządzania wydaniami.
Zarządzanie wydaniami wymaga kilku ustawień.
Ochrona gałęzi master/main
- Ustawienia -> Gałęzie -> Dodaj regułę ochrony gałęzi
- Wzór nazwy gałęzi -> main lub master (w zależności od twojej domyślnej gałęzi)
- Ochrona pasujących gałęzi -> zaznacz "Wymagaj prośby o scalenie przed scaleniem"
- "Wymagaj zatwierdzeń" można indywidualnie dostosować w miarę potrzeb
Przyznanie uprawnień do odczytu i zapisu dla GITHUB_TOKEN
- Ustawienia -> Akcje -> Ogólne -> Uprawnienia do workflow -> uprawnienia do odczytu i zapisu
Wiadomości o commitach
Wiadomości o commitach powinny stosować się do specjalnego formatu, aby osiągnąć aktualizację wersji semantycznej patch, minor lub major.
poprawka
0.0.x
fix(jedno_słowo): opis
minor
0.x.0
feat(jedno_słowo): opis
major
x.0.0
perf(jedno_słowo): opis
BREAKING CHANGE: opis zmiany
Bardzo ważne, aby "BREAKING CHANGE: " było wymienione w drugiej lub kolejnej linii. W przypadku jedno-linijkowych wiadomości o commitach, aktualizacja wersji major zostanie zignorowana.
Dodaj sekret GALAXY_API_KEY
- Zaloguj się na swoje konto github na stronie https://galaxy.ansible.com/.
- Pobierz klucz api galaxy z Preferencje -> Klucz API
- Otwórz swoje repozytorium roli na githubie
- Ustawienia -> Sekrety i zmienne -> Akcje -> Nowy sekret repozytorium
- Użyj "GALAXY_API_KEY" jako klucza i skopiowanego klucza api galaxy jako wartości.
Licencja
MIT
Informacje o autorze
© Andre Lohmann (i inni) 2024
https://github.com/andrelohmann
Kontakt do konserwatora
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.accounts