andrelohmann.mailpit

mailpit

最終テスト

目次

このロールを使って、mailpitをインストールし、systemdを使用してバックグラウンドでデーモンとして実行します。

要件

このロールはUbuntuが必要です。

ロール変数

デフォルトの変数セットは、mailpitが起動される設定を定義します。

mailpit_smtp_port: 1025
mailpit_web_port: 8025
mailpit_release: latest

以下の追加変数を設定することで、apacheの背後でmailpitをプロキシできます。

mailpit_proxy_apache: true
mailpit_proxy_domain: _あなたの.mailpitドメイン_
mailpit_proxy_port: 80

またはnginxの場合、

mailpit_proxy_nginx: true
mailpit_proxy_domain: _あなたの.mailpitドメイン_
mailpit_proxy_port: 80    

例のプレイブック

- hosts: mailpit
  roles:
     - { role: andrelohmann.mailpit }

ロール開発

特殊目的

このリポジトリはロール開発のために以下の機能をサポートしています:

  • yamllint
  • ansible-lint
  • moleculeテスト
  • GitHubアクション
  • 自動バージョンアップ
  • ansible-galaxyの更新
  • ビルドステータスの表示
  • vagrant内でのテスト(開発目的)
  • moleculeでのテスト(vagrant内外)
  • Dockerコンテナに対するテスト
  • vscode内でのテストと開発

前提条件

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

  • VirtualBox + Vagrantがインストール済み(ロールをvagrantでテストする場合のみ必要)
  • Docker Desktop
  • Visual Studio Code + リモートエクステンションパック(依存関係は.vscode/extensions.jsonに定義されています)

開発セットアップ

このansibleロールは、テストのためにmoleculeを使用して開発されています。開発はVisual Studio Codeと対応する開発コンテナを基にしており、必要なツール(ansible、linter、molecule)の依存関係を解決します。

ロールは2つのUbuntuコンテナ(focal、jammy)でテストされます。

開発コンテナ内からmoleculeテストコンテナを起動するには、dockerソケットを開発コンテナにバインドマウントする必要があります。

重要なフォルダとファイル

.devcontainer
  • 開発コンテナのためのDockerfileを定義
  • 開発コンテナの起動を設定(例:dockerソケットのバインドマウント)
molecule/default/Dockerfile.js
  • molecule/default/molecule.ymlに定義されたすべてのプラットフォーム用のテンプレートとして使用
  • systemdサービスをサポートする環境を準備(systemdで動作する一部のansibleロールには必要)
  • 派生コンテナに対してansibleを実行するためのすべての要件をインストール
  • このファイルは、molecule/default/molecule.yml内のプラットフォームの属性に合わせて調整されています
  • 詳細についてはmoleculeのドキュメントを確認してください

使用方法

Visual Studio Code

  • ロールのルートディレクトリに移動し、vscodeを起動
code .
  • 開発コンテナ内から次のコマンドを使用します
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + VirtualBox

  • ロールのルートディレクトリに移動
  • vagrantフォルダに移動
  • vagrantマシンを起動して入る
vagrant up
vagrant ssh
  • ロールフォルダに移動
cd /etc/ansible/roles/ansible-role- [tab]
  • すべてのテストを実行できます
yamllint .
ansible-lint .
molecule create
molecule test

ビルドとリリースプロセス

このansibleロールは、moleculeテストとリリース管理を実行するためのGitHubワークフローをいくつか定義しています。

リリース管理にはいくつかの設定が必要です。

master/mainブランチの保護

  • 設定 -> ブランチ -> ブランチ保護ルールを追加
  • ブランチパターン名 -> mainまたはmaster(デフォルトブランチによる)
  • 一致するブランチを保護 -> "マージ前にプルリクエストを要求"をチェック
  • "承認を要求"は必要に応じて個別に処理できます

GITHUB_TOKENへの読み取りおよび書き込み権限を付与

  • 設定 -> アクション -> 一般 -> ワークフローパーミッション -> 読み取りおよび書き込み権限

コミットメッセージ

コミットメッセージは、パッチ、マイナー、またはメジャーのセマンティックバージョニングの更新を達成するために特定のフォーマットに従う必要があります。

パッチ

0.0.x

fix(single_word): 説明
マイナー

0.x.0

feat(single_word): 説明
メジャー

x.0.0

perf(single_word): 説明
BREAKING CHANGE: 変更内容の説明

"BREAKING CHANGE: "が2行目以降に言及されることが非常に重要です。1行のみのコミットメッセージでは、メジャーバージョンの更新は無視されます。

GALAXY_API_KEYシークレットの追加

  • https://galaxy.ansible.com/でGitHubアカウントで認証します。
  • Preferences -> API Keyからgalaxy APIキーを取得
  • GitHubロールリポジトリを開く
  • 設定 -> シークレットと変数 -> アクション -> 新しいリポジトリシークレット
  • "GALAXY_API_KEY"をキーとして、コピーしたgalaxy APIキーを値として使います

ライセンス

MIT

著者情報

© Andre Lohmann (および他の人たち) 2024

https://github.com/andrelohmann

メンテイナの連絡先

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
プロジェクトについて

ansible galaxy role to install mailpit

インストール
ansible-galaxy install andrelohmann.mailpit
ライセンス
mit
ダウンロード
224
所有者