コマンド仕様
コマンド仕様には、デプロイメント中に実行されるシェル・コマンドおよび設定が含まれます。コマンド仕様は、YAMLで記述されます。ファイルの内容をインラインで指定するか、仕様をアーティファクト・レジストリ・リポジトリに格納できます。
Oracleによって事前インストールされていないバイナリ・ファイルを実行するには、それをルート・フォルダに直接ダウンロードするか、ワークスペース・フォルダにダウンロードしてから、実行する前にルート・フォルダに移動する必要があります。
コマンド仕様は、次のセクションで構成されています:
- 環境変数の設定。
- 入力アーティファクト。
- 順番に実行するステップ。
コマンド仕様の構文
version: 0.1
component: command
timeoutInSeconds: 10000
shell: bash
failImmediatelyOnError: true
env:
variables:
key: "value"
key: "value"
vaultVariables:
key: "secret-id"
inputArtifacts:
- name: artifact-name
type: GENERIC_ARTIFACT
artifactId: "artifact-ocid"
registryId: OCID of the Artifact Registry
path: path of the artifact in the Registry
version: version of the artifact
location: target-location
- name: artifact-name
type: URL
url: downloadable link
location: target-location
steps:
- type: Command
name: step-name
shell: shellType
timeoutInSeconds: 650
failImmediatelyOnError: true
command: command
onFailure:
- type: Command
command: |
command
command
timeoutInSeconds: 400
- type: Command
name: step-name
command: |
command
command
command
onFailure:
- type: Command
command: |
command
timeoutInSeconds: 400
コマンド仕様のパラメータ
次に、コマンド仕様のパラメータとその詳細を示します:
パラメータ | 説明 |
---|---|
version |
必須。コマンド仕様のバージョンを示します。バージョンが存在しないか無効であると、「シェル」ステージは失敗します。 サポートされる値は |
component |
必須。DevOpsの特定のコンポーネントを示します。値が存在しないか無効であると、ステージは失敗します。 サポートされる値は |
timeoutInSeconds |
オプション。コマンド仕様ファイル全体のタイムアウトを指定します。各ステップには、オプションで独自のタイムアウト値を指定することもできます。 値を指定しない場合、デフォルト値の8時間が使用されます。許可される最大値は8時間です。 |
shell |
オプション。コマンド仕様のグローバル・レベルで使用するシェルを指定します。値は、オプションでステップ・レベルでオーバーライドできます。 許可される値は |
failImmediatelyOnError
|
オプション。ステップ内のいずれかのコマンドがゼロ以外の終了値で失敗した場合にデプロイメントを続行する必要があるかどうかを指定します。指定しない場合、デフォルト値はfalse で、ステップは続行されます。使用可能な値はtrue およびfalse です。OCIでは、この属性の値をtrue に設定することをお薦めします。 |
env |
オプション。カスタム変数を定義できます。3つのタイプの変数がサポートされます:
|
inputArtifacts |
オプション。現在の「シェル」ステージの実行に必要な入力アーティファクトのリストを定義するために使用されます。 アーティファクト・レジストリからの汎用アーティファクトをサポートします。 パラメータは次のとおりです:
ノート: |
steps |
必須。このセクションでは、実行する必要があるステップのリストを定義します。
|
ステップのタイプ
コマンド
属性名 | 説明 |
---|---|
command |
単一行と複数行の両方のコマンドがサポートされます。1つのステップで指定されているすべてのコマンドは、同じシェル・セッションで実行されます。steps/*/shell の値に基づいて、コマンドはshellまたはbashのいずれかになります。 フェイル・ファストは有効になっていません。ステップの成功については、ステップの最終コマンドの出力が考慮されます。最終コマンドの終了コードが0の場合、ステップは成功とみなされます。 |
timeoutInSeconds (オプション) |
ステップのタイムアウトを指定します。指定しない場合、値はグローバルtimeoutInSeconds パラメータから継承されます。許可される最大値は8時間です。 |
shell (オプション) |
現在のステップのシェル・タイプを指定します。指定しない場合、値はグローバルshell パラメータから継承されます。許可される値は/bin/sh およびshell です。 |
onFailure (オプション) |
「シェル」ステージを正常に終了するために失敗時に実行する必要があるステップのリスト。対応するステップが失敗し、実行後にコマンド仕様が終了した場合に実行します。 失敗の処理は、「シェル」ステージのステータスに影響しません。いずれかのステップが失敗した場合、「シェル」ステージのステータスは |
failImmediatelyOnError (オプション) |
ステップ内のいずれかのコマンドがゼロ以外の終了値で失敗した場合にデプロイメントを続行する必要があるかどうかを指定します。指定しない場合、デフォルト値はfalse で、ステップは続行されます。使用可能な値はtrue およびfalse です。OCIでは、この属性の値をtrue に設定することをお薦めします。
|
事前定義済システム変数
DevOpsには、デフォルト値を持つ事前定義済システム変数のセットがあり、コマンド仕様で使用できます。
変数 | 説明 |
---|---|
OCI_DEPLOYMENT_ID |
現在のデプロイメントのOCID。 |
OCI_PIPELINE_ID |
現在のデプロイメント・パイプラインのOCID。 |
OCI_RESOURCE_PRINCIPAL_RPST |
リソース・プリンシパル・トークン。 |
OCI_RESOURCE_PRINCIPAL_VERSION |
リソース・プリンシパル・バージョン。 |
OCI_CLI_AUTH |
リソース・プリンシパルを使用するように事前構成されたOCI CLI AUTH。 |
OCI_RESOURCE_PRINCIPAL_REGION |
リソース・プリンシパル・リージョン。 |
OCI_RESOURCE_PRINCIPAL_PRIVATE_PEM |
リソース・プリンシパルの秘密キー・パス。 |
コマンド仕様の例
例: OKEネームスペースを作成します。
version: 0.1
component: command
timeoutInSeconds: 6000
shell: bash
steps:
- type: Command
timeoutInSeconds: 600
name: "Setup kube config and get nodes"
command: |
oci ce cluster create-kubeconfig --cluster-id ${clusterid} --file $HOME/.kube/config --region us-ashburn-1 --token-version 2.0.0 --kube-endpoint ${endpoint}
kubectl get nodes
onFailure:
- type: Command
command: |
echo "Failed to set up kube config and get nodes"
timeoutInSeconds: 60