はじめに
GitHub Actionsは、組み込みのCI/CDツールを使用したソフトウェア開発ワークフローの自動化のためのプラットフォームです。このプラットフォームは使いやすく、サードパーティのアプリや事前の専門知識、およびメンテナンスの専任者を必要としません。
PhoenixNAPベアメタルクラウドGitHubアクションは、gitリポジトリ内のGitHubイベントに反応する自動タスクランナーとして機能します。別のサーバーを起動しなくても、GitHubから直接目的のCI/CD機能を実現できます。
前提条件
- GitHubアカウント
- ベアメタルクラウド(BMC)またはphoenixNAPクライアントポータル(PNCP)アカウント。新規クライアントの場合は、ベアメタルクラウドのアカウントを作成してください。支援については、BMCアカウント作成のビデオ手順を参照してください。
BMC GitHub Actionとは何ですか?
ベアメタルクラウドGitHubアクションは、対応する action.yamlによって定義されます。 ファイル。各BMCアクションリポジトリには専用のaction.yamlがあります create-server-bmc など、その特定のアクション用に作成されたコードを含むファイル 。
yamlファイルは、アクションの実行方法を記述し、メインのJavaScriptファイル(この場合は index.js )を定義します。 、および関数のメタデータ。これらのJavaScriptベースのBMCアクションを組み合わせてワークフローに組み込むことで、目的のレベルの自動化を実現できます。
BMCGitHubクレデンシャル
GitHubリポジトリは、完全に暗号化されたシークレット環境変数をサポートしています。次に、 clientid
を参照します およびclientsecret
ワークフローyamlファイル内。 BMCアクションは、リポジトリに追加した場合にのみシークレットにアクセスできます。
リポジトリまたは組織にクレデンシャルを追加すると、アクションを実行したときに値が表示されなくなります。
BMCを取得するにはClient ID
およびClient Secret
、Bare Metal Cloudポータルにログインして:
1.APIクレデンシャルに移動します ページ。
2.資格情報の作成をクリックします ボタン。
3.クレデンシャル名を追加します およびそれぞれのフィールドのオプションの説明。
4.権限スコープを割り当てます 。資格情報に付与するアクセス許可レベルの横にあるチェックボックスをオンにします。すべてのBMCAPI呼び出しまたは読み取り専用のBMCAPI呼び出しの使用を許可するかどうかを選択します。
5.作成をクリックします 準備ができたら。
6.Client ID
を取得します およびClient Secret
確認ウィンドウで。
7.クレデンシャルをコピーして、GitHubリポジトリにシークレットとして追加します。 [設定]->[シークレット]に移動します 新しいシークレットを追加をクリックします 。
PhoenixNAPBMCGitHubアクションリポジトリ
現在、BMCGitHubアクションリポジトリには3つのアクションが含まれています。
- 新しいベアメタルクラウドサーバーを作成する
- ベアメタルクラウドサーバーを削除する
- 基本的なベアメタルクラウドサーバー情報を取得する
BMCアクションを他のアクションと組み合わせて、カスタムジョブとワークフローを作成できます。
新しいBMCサーバーGitHubアクションを作成する
create-server-bmc GitHubアクションを使用すると、サーバーの作成プロセスを自動化できます。ソフトウェアテストアプリケーションをインストールし、新しいBMCサーバーを自動的に起動するためにより多くのリソースが必要な場合にワークフローを作成できます。
このアクションは、新しいサーバーIDとパブリックIPアドレスをコンマ区切りの値を持つリストに出力します。アクションは同期的です。ただし、サーバーの作成と起動プロセスは非同期です。
必要な入力
すべてのGitHubアクションには必須の要素があります。サーバーの作成アクションには、次のものが含まれている必要があります。
-
clientid
:アプリケーションOAuth2クレデンシャルからのクライアントID。 -
clientsecret
:アプリケーションOAuth2クレデンシャルからのクライアントシークレット。 hostname
:サーバーのホスト名。名前は次のパターンに従う必要があります:1≤長さ≤100一致^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$
オプションの入力
create-server-bmcのオプションの入力 GitHubアクションは次のとおりです:
image
:サーバーのOSID。デフォルトはubuntu/bionic
。type
:サーバータイプID。デフォルトはs1.c1.small
。location
:サーバーロケーションID。 場所を変更することはできません サーバーが作成されたら。このフィールドはPHXまたはASHに設定できます。デフォルト値はPHX
。-
bmcentrypoint
:BMCAPIエントリポイント。デフォルトはhttps://api.phoenixnap.com/bmc/v1/
。 -
bmctokenhost
:BMCOIDCトークンホスト。デフォルトはhttps://auth.phoenixnap.com
。 -
bmctokenpath
:BMCOIDCトークンパス。デフォルトは/auth/realms/BMC/protocol/openid-connect/token
。
出力
create-server-bmc アクションには次の出力があります:
-
id
:新しいBMCサーバーID。 -
ipaddresses
:新しいサーバーに接続されているパブリックIPアドレスのコンマ区切りのリスト。
BMCサーバーアクションの作成の使用例
以下は、サーバーの作成アクションの例です。
- name: CreateBMCServer step
uses: phoenixnap-github-actions/create-server-bmc
id: createserver
with:
clientid: ${{secrets.BMC_CLIENT_ID}}
clientsecret: ${{secrets.BMC_CLIENT_SECRET}}
hostname: "bmc-gha-test"
image: "ubuntu/bionic"
location: "ASH"
type: "s1.c1.small"
description: "This server is created using GitHub Actions."
BMCサーバー情報のGitHubアクションを取得する
get-server-bmc アクションは、ベアメタルクラウドサーバーに関する基本情報を取得します。この同期アクションは、BMCサーバーの作成アクション中に提供された詳細のほとんどを取得します。
必要な入力
get-server-bmcに必要な入力 アクションは次のとおりです:
-
clientid
:アプリケーションOAuth2クレデンシャルからのクライアントID。 -
clientsecret
:アプリケーションOAuth2クレデンシャルからのクライアントシークレット。 -
serverid
:情報を取得するサーバーのID。 IDは、サーバーの作成手順で作成されます。
オプションの入力
これらは、 get-server-bmcのオプションの入力です。 GitHubアクション:
-
bmcentrypoint
:BMCAPIエントリポイント。デフォルトはhttps://api.phoenixnap.com/bmc/v1/
。 -
bmctokenhost
:BMCOIDCトークンホスト。デフォルトはhttps://auth.phoenixnap.com
。 -
bmctokenpath
:BMCOIDCトークンパス。デフォルトは/auth/realms/BMC/protocol/openid-connect/token
。
出力
create-server-bmc アクションはこの出力を提供します:
-
id
:BMCサーバーID。 status
:サーバーの動作ステータス。hostname
:サーバーのホスト名。-
ipaddresses
:サーバーに接続されているパブリックIPアドレスのコンマ区切りのリスト。
BMCサーバーアクションの作成の使用例
以下は、サーバーの作成アクションの使用例です。
- name: GetServer step
uses: phoenixnap-github-actions/get-server-bmc
id: getserver
with:
clientid: ${{secrets.BMC_CLIENT_ID}}
clientsecret: ${{secrets.BMC_CLIENT_SECRET}}
serverid: ${{ steps.createserver.outputs.id }}
BMCサーバーのGitHubアクションを削除する
delete-server-bmc GitHubアクションは、ベアメタルクラウドサーバーを削除します。アクションは同期的ですが、削除とクリーンアップは非同期的です。
警告: 削除アクションは元に戻せず、データが失われる可能性があるため、細心の注意を払って使用してください。
必要な入力
delete-server-bmcに必要な入力 アクションは次のとおりです:
-
clientid
:アプリケーションOAuth2クレデンシャルからのクライアントID。 -
clientsecret
:アプリケーションOAuth2クレデンシャルからのクライアントシークレット。 -
serverid
:削除するサーバーのID。 IDは、サーバーの作成手順で作成されます。
オプションの入力
これらは、 delete-server-bmcのオプションの入力です。 GitHubアクション:
-
bmcentrypoint
:BMCAPIエントリポイント。デフォルトはhttps://api.phoenixnap.com/bmc/v1/
。 -
bmctokenhost
:BMCOIDCトークンホスト。デフォルトはhttps://auth.phoenixnap.com
。 -
bmctokenpath
:BMCOIDCトークンパス。デフォルトは/auth/realms/BMC/protocol/openid-connect/token
。
出力
delete-server-bmc アクションはこの出力を提供します:
-
id
:削除されたBMCサーバーのID。
BMCサーバーの削除アクションの使用例
以下は、サーバーの作成アクションの使用例です。
- name: DeleteServer step
uses: phoenixnap-github-actions/delete-server-bmc
id: deleteserver
with:
clientid: ${{secrets.BMC_CLIENT_ID}}
clientsecret: ${{secrets.BMC_CLIENT_SECRET}}
serverid: ${{ steps.createserver.outputs.id }}