andrelohmann.wkhtmltopdf

wkhtmltopdf

Last test

内容

このロールを使用して、wkhtmltopdfコマンドラインPDFジェネレーターと、生成されたPDFドキュメント内で使用するための完全なGoogle Fontsセットをインストールします。

wkhtmltopdfは、Ubuntuのディストリビューションソースからインストールされます。

要件

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

ロール変数

デフォルトの変数セットを使用して、Google Fontsセット全体をインストールする必要があるかどうかを決定できます。

wkhtmltopdf_install_google_fonts: true

実際のタグバージョンはこちらから取得できます。

例プレイブック

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

ロール開発

特別な目的

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

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

前提条件

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、リンター、Molecule)の依存関係を解決します。

このロールはUbuntu 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

  • ロールのルートディレクトリに移動し、VS Codeを起動します
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行目以降に記載されることが非常に重要です。単一行のコミットメッセージでは、メジャーバージョンの更新は無視されます。

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 wkhtmltopdf client generator

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