You've already forked ansible-role-act-runner
136 lines
2.4 KiB
Markdown
136 lines
2.4 KiB
Markdown
---
|
|
inclusion: always
|
|
---
|
|
|
|
# Entwicklungsworkflow für Act Runner Ansible Role
|
|
|
|
## Entwicklungsumgebung
|
|
|
|
### Voraussetzungen
|
|
|
|
- Ansible >= 2.9
|
|
- Node.js >= 16.0.0 (für Dokumentations-Tools)
|
|
- Docker (für Testing)
|
|
- Molecule (für Role-Testing)
|
|
|
|
### Setup
|
|
|
|
```bash
|
|
# Dependencies installieren
|
|
npm install
|
|
|
|
# Ansible Collections installieren
|
|
ansible-galaxy collection install -r requirements.yml
|
|
|
|
# Molecule für Testing
|
|
pip install molecule[docker]
|
|
```
|
|
|
|
## Code-Änderungen
|
|
|
|
### Workflow
|
|
|
|
1. **Branch erstellen**: `git checkout -b feature/beschreibung`
|
|
2. **Änderungen implementieren**
|
|
3. **Tests ausführen**
|
|
4. **Dokumentation aktualisieren**
|
|
5. **Pull Request erstellen**
|
|
|
|
### Task-Entwicklung
|
|
|
|
```yaml
|
|
# Neue Tasks in tasks/main.yaml hinzufügen
|
|
- name: Beschreibender Name der Aktion
|
|
ansible.builtin.module:
|
|
parameter: "{{ variable }}"
|
|
register: result
|
|
when: condition
|
|
notify: handler_name
|
|
```
|
|
|
|
### Variablen hinzufügen
|
|
|
|
1. In `defaults/main.yaml` mit `@param` Dokumentation
|
|
2. OS-spezifische Werte in `vars/OS.yaml`
|
|
3. README automatisch regenerieren: `npm run readme:parameters`
|
|
|
|
## Testing
|
|
|
|
### Lokales Testing
|
|
|
|
```bash
|
|
# Syntax Check
|
|
ansible-playbook --syntax-check tests/test.yml
|
|
|
|
# Lint Check
|
|
ansible-lint .
|
|
|
|
# YAML Lint
|
|
yamllint .
|
|
|
|
# Markdown Lint
|
|
npm run readme:lint
|
|
```
|
|
|
|
### Molecule Testing
|
|
|
|
```bash
|
|
# Alle Tests
|
|
molecule test
|
|
|
|
# Nur Syntax
|
|
molecule syntax
|
|
|
|
# Converge (ohne Destroy)
|
|
molecule converge
|
|
```
|
|
|
|
## Qualitätssicherung
|
|
|
|
### Pre-Commit Checks
|
|
|
|
- Ansible Lint muss ohne Fehler durchlaufen
|
|
- YAML Syntax muss korrekt sein
|
|
- Markdown Dokumentation muss valide sein
|
|
- Alle neuen Variablen müssen dokumentiert sein
|
|
|
|
### Code Review Kriterien
|
|
|
|
- Idempotenz gewährleistet
|
|
- Fehlerbehandlung implementiert
|
|
- Plattform-Kompatibilität beachtet
|
|
- Sicherheits-Best-Practices befolgt
|
|
- Tests für neue Funktionalität
|
|
|
|
## Release-Prozess
|
|
|
|
### Versionierung
|
|
|
|
- Semantic Versioning (MAJOR.MINOR.PATCH)
|
|
- Tags für Releases
|
|
- Changelog pflegen
|
|
|
|
### Ansible Galaxy
|
|
|
|
```bash
|
|
# Role zu Galaxy hochladen
|
|
ansible-galaxy role import volker-raschek act-runner-ansible-role
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Häufige Probleme
|
|
|
|
- **Service startet nicht**: Logs prüfen mit `journalctl -u act_runner`
|
|
- **Registrierung fehlgeschlagen**: Token und URL validieren
|
|
- **Permission Denied**: Benutzer/Gruppen-Konfiguration prüfen
|
|
|
|
### Debug-Modus
|
|
|
|
```yaml
|
|
# Mehr Ausgaben für Debugging
|
|
- debug:
|
|
var: variable_name
|
|
when: ansible_verbosity >= 2
|
|
```
|