6. YAML定義
Ops Iではワークフローやデータモデルなど運用に必要な定義をYAMLファイルで記載することができ、運用のコード化(Operations as Code)を実現することができます。コード化した運用をOps Iに登録することで、各種運用機能に自動的に変換されます。
YAMLファイルで記載することができる運用機能の一覧と、運用の中では以下の通りです。
名称 | 説明 |
---|---|
Workflow | 運用に必要となるワークフローの定義を行います。 |
UI | 画面に表示するデータ項目やレイアウトなど、UIの定義を行います。 |
Datamodel | 各種データを保存するためのデータモデルの定義を行います。 |
Catalog | ユーザーが各種申請を行う際の入り口となるサービスカタログの定義を行います。 |
Script | 画面表示時やボタンをクリックした時など、何かしらのイベントを契機に実行されるアクションの定義を行います。 |
Attachment | 運用の中で扱う添付ファイルの命名ルールの定義を行います。 |
Distribution | 運用の中で発生する各種ドキュメントをどのようなルールでどこに保存するか定義を行います。 |
ACL | Statementで定義した認可に対してユーザーやグループなどの適応先を定義します。 |
Statement | URIやテーブルのレコードなど様々なリソースに対しての認可設定の定義を行います。 |
Notification | Ops I上でのイベントを契機に、誰に通知するかと、通知する内容の定義を行います。 |
Notifier | Notificationで定義された通知内容をどのように通知するか通知手段の定義を行います。 |
Skill | 各ユーザーが保有する経験値や資格などのスキルを可視化するための定義を行います。 |
Skillset | ワークフローの各ステップを実行するために必要なスキルをセット化して定義します。 |
Ops Iで運用機能をコード化する場合、定められた書式に従ってYAMLファイルを記述する必要があります。各運用機能のYAMLファイルの詳細な記述内容は「Workflow」~「Skill、Skillset」で記述します。すべての運用機能で共通となる書式は以下の通りです。
ラベル | デフォルト値 | 必須※ | 説明 | |
---|---|---|---|---|
apiVersion: | 1.0 | Yes | APIバージョン | |
kind: | Yes | YAMLファイルの種類 | ||
type: | No | YAMLファイルのタイプを以下から選択 resource:Ops Iの機能拡張を行う container:ドキュメント格納用のコンテナを作成する |
||
name: | Yes | YAMLファイルの内部名。このYAMLファイルのディレクトリ名を指定する必要があります。 nameは以下のルールに従う必要があります。 ・空白、英数字、“_” 、“.” 、“(” 、“)” 、“-”のみ使用可能 ・先頭文字が英数字か“_” ※一部の運用機能は追加の制限があるので、各運用機能のYAML定義の説明を確認してください。 |
||
label: | Yes | YAMLファイルの表示名 | ||
includes: | No | このYAMLファイルで利用する関連YAMLファイルを記載。 ※記載するYAMLファイルはこのYAMLファイル登録前にOps Iに登録されている必要があります。 |
||
- kind: | Yes | 読み込むYAMLファイルの種類 | ||
name: | Yes | 読み込むYAMLファイルの内部名 | ||
description: | No | 詳細説明 |
作成したYAMLファイルをOps I内のGitLabにcommitすると、Ops Iが自動的に対応した運用機能を生成します。YAMLファイルのファイル名は「manifest.yaml」でなくてはならず、nameラベルで指定した名称と同じディレクトリ配下にYAMLファイルを保存する必要があります。
また、kindラベルとnameラベルの組み合わせはOps Iで一意である必要があります。
YAMLファイルのnameラベルとデータモデルのテーブル名には、予約語との衝突を避けるため、プレフィックスを付ける必要があります。予約語と衝突した場合はエラーが発生します。詳細については、「YAMLファイルのnameラベルとデータモデルのテーブル名でエラーが発生しYAMLが登録できない場合の対処」を参照してください。
また、Include対象となるYAMLファイルで、他のnameラベルと衝突していると意図しない動作になります。詳細については「エラーメッセージが表示されないが、意図しない動作になる場合の対処」を参照してください。
YAMLファイルはユーザーが定義したグループ内の任意のリポジトリに登録することで、Ops Iから読み込むことができます。YAMLファイルの登録は「YAMLファイルのGitLab登録方法(GUI)」と「YAMLファイルのGitLab登録方法(CUI)」を参照してください。
また、YAMLファイルを定義する際、テンプレート機能を使用することができます。
テンプレート機能はドキュメント機能の一つで、YAMLファイルに環境パラメータとして定義した用語を、ユーザー定義パラメータやシステム定義パラメータに置き換えることができる機能です。多言語に対応させる場合などに有用です。
【ユーザー定義パラメータ】
テンプレート機能を使用する「YAMLファイル」と参照先となる値を記載する「テンプレートファイル」は、以下の条件を満たす必要があります。
- YAMLファイルとテンプレートファイルは同フォルダに配置
- テンプレートファイルのファイル名は「values.yaml」
- YAMLファイルに記載する構文は以下の形式
"{{.Values.テンプレートファイル記載のパス}}"
`{{.Values.テンプレートファイル記載のパス}}`
<パラメータを使用できるYAMLファイル>
- application
- ui
- library
- catalog
- skill
- skillset
- workflow
【システム定義パラメータ】
Ops Iで使用できるシステム定義パラメータは以下の通りです。
システム定義パラメータ | 説明 |
---|---|
.System.domain | Ops I環境のドメイン |
YAMLファイルに記載する構文は以下の形式で記載してください。
<記載例>
"{{.System.domain}}"
`{{.System.domain}}`
<パラメータを使用できるYAMLファイル>
- application
- ui
- library
- catalog
- skill
- skillset
- workflow
章構成
6.1 Workflow
6.2 UI
6.3 Datamodel
6.4 Catalog
6.5 Script
6.6 Library
6.7 Attachment
6.8 Distribution
6.9 ACL、Statement
6.10 Notification、Notifier
6.11 Application
6.12 Skill、Skillset