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内でのテストと開発
前提条件
- 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>