andrelohmann.nodesource

nodesource

最終テスト

内容

この役割を使って、あなたのUbuntuサーバーにnodesourceリポジトリからnodejsをインストールします。

要件

この役割はUbuntuが必要です。

役割の変数

デフォルトの変数セットではnodeのバージョンが定義されており、可能であればgroup_vars/host_varsで上書きする必要があります。

nodesource_nodejs_version: '20'

プレイブックの例

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

役割の開発

特別な目的

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

  • 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)の依存関係を解決しています。

この役割は、3つのUbuntuコンテナ(bionic、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行目以降に記載されることが非常に重要です。単一行のコミットメッセージでは、メジャーバージョンの更新は無視されます。

GALAXY_API_KEYシークレットの追加

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

ライセンス

MIT

作者情報

© Andre Lohmann (およびその他) 2023

https://github.com/andrelohmann

メンテナ連絡先

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

ansible galaxy role to install nodejs from nodesource

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