ATIX AG
  • Leistungen
    • Consulting
      • Linux Platform Operations​
      • Infrastructure Automation​
      • Container Plattformen und Cloud​
      • DevOps Prozesse, Tooling und Kultur​
      • Cloud Native Software Entwicklung​
    • Produkte
      • orcharhino
        • Über orcharhino
        • orcharhino Support
        • orcharhino Betrieb
      • Hangar
        • Über Hangar
        • Hangar Roadmap
        • Hangar Community
    • Technologien
      • Ansible
      • AWX und Ansible Automation Platform
      • Docker
      • Foreman
      • GitLab
      • Istio
      • Kubernetes
      • Linux-Distributionen
      • OpenShift
      • Puppet
      • OpenVox
      • Rancher
      • Rundeck
      • Saltstack
      • SUSE Manager
      • Terraform
  • Schulungen
    • Ansible-Schulungen
    • AWX-Schulung
    • Docker & Container-Schulung
    • Git-Schulung
    • Go-Schulung (Golang)
    • Istio-Schulung
    • Kubernetes-Schulung
    • OpenShift-Schulung
    • orcharhino-Schulung
    • Puppet-Schulungen
    • Terraform-Schulung
  • Events
    • Webinare
  • Blog
  • Unternehmen
    • Über uns
    • Referenzen
    • Unternehmenswerte
    • Soziales Engagement
    • Newsroom
    • Newsletter
    • Kontakt
  • Karriere
  • Suche
  • Menü Menü

antsibull-changelog: Eine Übersicht

Wenn Sie Ansible intensiv nutzen, haben Sie im Laufe der Zeit wahrscheinlich eine Menge Ansible-Code gesammelt: Playbooks, Rollen, Plugins und mehr. Die beste Möglichkeit, Ihre Ansible-Inhalte zu organisieren, besteht darin, sie in einer „Ansible Collection” zusammenzufassen. Dies kann eine private Ansible Collection auf Ihrem Git-Server sein, oder Sie können sie sogar der Ansible-Community über galaxy.ansible.com zur Verfügung stellen.

✉️ Immer einen Schritt voraus – mit unserem Newsletter!

Mit unserem Newsletter erhalten Sie regelmäßig Informationen zu aktuellen IT-Themen und Open-Source-Lösungen – kompakt und relevant.
👉 Jetzt kostenlos anmelden

Um Änderungen im Laufe der Zeit innerhalb Ihrer Ansible Collection zu verfolgen, sollten Sie die Funktionen von antsibull-changelog nutzen.

Überblick

antsibull-changelog vereinfacht den Veröffentlichungsprozess, indem es automatisch eine Datei CHANGELOG.rst mit allen relevanten Informationen erstellt.

Vor einer Veröffentlichung müssen die Beitragenden lediglich sicherstellen, dass jeder Commit ein sogenanntes Changelog-Fragment enthält.

Zum Zeitpunkt der Veröffentlichung liest antsibull-changelog alle verfügbaren Fragmente ein und kombiniert sie zu einer CHANGELOG.rst.

Hier ist ein Beispiel für eine solche CHANGELOG.rst:

=======================
Atix.Demo Release Notes
=======================

.. contents:: Topics

v1.0.0
======

Major Changes
-------------

- nginx - added new role to install nginx

Bugfixes
--------

- k8s_drain - Fix k8s_drain does not wait for single pod

Installation

antsibull-changelog kann direkt mit pip installiert werden:

$ python3 -m pip install antsibull-changelog

Erste Konfiguration

Führen Sie antsibull-changelog init im Hauptverzeichnis Ihres Collection-Repositories aus, um die Erstkonfiguration zu erstellen.

$ antsibull-changelog init .
Created fragments directory "/path/to/repo/changelogs/fragments"
Created config file "/path/to/repo/changelogs/config.yaml"

Schreiben eines Changelog-Fragments

antsibull-changelog erstellt die CHANGELOG.rst, indem es die Fragmente unter changelogs/fragments einliest.

Aus diesem Grund liegt es in der Verantwortung jedes Mitwirkenden, bei allen Commits die passenden Fragmente hinzuzufügen.

Die einzigen Ausnahmen sind Commits, die neue Module oder Plugins zu einer Collection hinzufügen: Diese werden automatisch von antsibull-changelog erkannt, solange im entsprechenden Modul-/Plugin-Code ein Schlüssel version_added vorhanden ist.

Changelog-Fragmente werden im yaml-Format geschrieben (wie fast alles, was mit Ansible zu tun hat).

Jeder Abschnitt in einem Changelog-Fragment kennzeichnet eine bestimmte Änderungskategorie (bugfixes, major_changes, etc.) und enthält eine Liste aller Änderungen, die zu dieser Kategorie gehören.

Hier ein Beispiel für ein Changelog-Fragment zu einem Bugfix:

---
bugfixes:
- k8s_drain - Fix k8s_drain does not wait for single pod

Die offizielle Dokumentation über Changelog-Fragmente finden Sie hier.

Linting

antsibull-changelog stellt den Unterbefehl lint bereit, mit dem überprüft werden kann, ob die Syntax Ihrer Changelog-Fragmente korrekt ist.

Um dies auszuprobieren, führen Sie einfach im Hauptverzeichnis Ihres Repositories Folgendes aus:

$ antsibull-changelog lint

Wenn keine Ausgabe erscheint, bedeutet dies, dass alles in Ordnung ist.

Umsetzung als Pre-Commit-Hook

Sie können antsibull-changelog lint als Pre-Commit-Hook ausführen, um sicherzustellen, dass Sie niemals Code mit einem ungültigen Changelog-Fragment committen.

Dazu können Sie folgendes Skript unter /path/to/repo/.git/hooks/pre-commit ablegen:

#!/bin/sh

# Check that changelog fragments have the correct syntax

antsibull-changelog lint

Achtung: Dies setzt voraus, dass Sie antsibull-changelog lokal installiert haben. Ziehen Sie in Betracht, hierfür eine eigene Python-Umgebung zu erstellen.

Umsetzung in einer CI/CD-Pipeline

Alternativ können Sie einen antsibull-changelog-Schritt in Ihrer CI/CD-Pipeline implementieren.

Hier ein Beispiel für eine GitLab CI/CD-Konfiguration:

antsibull-changelog-lint:
stage: linting
image: ${CI_REGISTRY}/:latest
before_script:
- python3 -m pip install antsibull-changelog
- |
[ -f "requirements.yml" ] \
&& ansible-galaxy install -r requirements.yml
script:
- antsibull-changelog lint

Erstellen eines Release

Sobald Sie die passenden Changelog-Fragmente erstellt haben, können Sie ein neues CHANGELOG.rst erzeugen mit:

$ antsibull-changelog release

Standardmäßig aktualisiert dies die Datei CHANGELOG.rst und löscht alle alten Fragmente.

Um die Release-Version zu bestimmen, liest antsibull-changelog den Inhalt der Datei galaxy.yml ein.
Es ist daher sehr wichtig, diese Datei vor jedem Release entsprechend zu aktualisieren.

Quellen

  • https://ansible.readthedocs.io/projects/antsibull-changelog/
  • https://docs.ansible.com/ansible/latest/community/development_process.html#creating-changelog-fragments
  • https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
Ottavia Balducci
+ postsBio
  • Ottavia Balducci
    https://atix.de/blog/author/ottavia/
    Event-Driven Ansible
  • Ottavia Balducci
    https://atix.de/blog/author/ottavia/
    AWX und GitLab Webhooks
  • Ottavia Balducci
    https://atix.de/blog/author/ottavia/
    Ansible Best Practices
IT-Expertise, die Sie weiterbringt

🎓 Webinare – Live & On-Demand
Wissen, wann und wie Sie es wollen. Praxisnahe Sessions zu DevOps, Open Source & IT-Automatisierung.
👉 Jetzt entdecken »

ISO-Zertifizierung Zertifikat
Newsletter
Nichts mehr verpassen. Melden Sie sich für den ATIX Newsletter an!
Jetzt anmelden
Blog
  • Blog Startseite
  • ATIX Insights
  • Cloud Native
  • Container Plattformen und Cloud
  • DevOps
  • Hangar
  • Infrastructure Automation
  • Linux Platform Operations
  • orcharhino
Datenschutz & Impressum

Datenschutz

Impressum

AGB

B2B
Twitter     Facebook    LinkedIn    Xing     Youtube     mastodon=

© Copyright – ATIX AG

Nach oben scrollen