andrelohmann.accounts

konta

Ostatni test

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

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

  • 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>
O projekcie

ansible galaxy role to deploy users and public keys

Zainstaluj
ansible-galaxy install andrelohmann.accounts
Licencja
mit
Pobrania
581
Właściciel