フォーム
ユーザーが入力するフォームを定義する
フォーム作成者向け: フォームを YAML で書く方法、フォームの読み込み元、各フォームの種類のプロパティを説明します。
フォームは AnsibleForms の中核です。各フォームはユーザーの入力を収集する Web インターフェイスで、そのデータを使って Ansible の playbook、AWX、AAP、Ascender のテンプレート、Semaphore のテンプレート、Rundeck や Jenkins のジョブ、または ワークフロー を実行します。
フォームは、フォームフォルダー内の YAML ファイルで定義します。各 YAML ファイルには 1 つのフォームまたはフォームのリストを含め、サブフォルダーを使って整理できます。
動画: 最初のフォームを作成する
フォームの構造を理解する
AnsibleForms のフォームはすべて、一連のプロパティで構成されます。 共通プロパティ には、すべてのフォームの種類に適用されるプロパティが一覧表示されており、種類ごとのページではそれ以外のプロパティを説明しています。
フォームの読み込み方
AnsibleForms は次の場所からフォームを読み込みます。
- リポジトリから : 「フォームに使用」スイッチが有効なすべてのリポジトリ (複数のリポジトリに対応)
- 有効なすべてのリポジトリのフォームは自動的にまとめられます。
- 各リポジトリでは、まず
forms/サブフォルダーがあるかどうかを確認します。 forms/サブフォルダーがない場合は、リポジトリのルートが使われます。- デザイナーで作成してまだプッシュしていないフォームは、ステージングフォルダー (
FORMS_STAGING_PATH) に置かれ、一緒に読み込まれます。
- ローカルフォルダーから : ローカルの
forms/フォルダー (FORMS_FOLDER_PATH)。「フォームに使用」が有効なリポジトリがない場合
注: 複数のリポジトリで「フォームに使用」を有効にすると、それらのフォームはすべてまとめられます。競合を避けるため、フォーム名はリポジトリ間で一意にする必要があります。
フォームの実行場所
フォームの種類によって、ジョブが実行される ランナー の種類が決まります。 ansible は RTE、 awx、 aap、 ascender は AWX ランナー、 semaphore、 rundeck、 jenkins はそれぞれ同じ種類のランナーです。
- フォームの
runner: <name>で、その種類のランナーを名前で選びます。指定がない場合、ジョブはその種類のデフォルトのランナーで実行されます。 - 接続 > ランナー で無効にされたランナーでは、フォームで指定した場合でもデフォルトの場合でも、ジョブは失敗します。ジョブが 別のランナーにフォールバックすることはありません。
- ユーザーのロールのいずれかが
config.yamlでrunnersを列挙している場合、ジョブはそのようなロールが列挙したランナーでしか実行できず、それ以外は 拒否されます。このリストを持たないロールは制限せず、管理者が制限されることはありません。
このセクションの内容
次のページでフォームのプロパティを詳しく説明しています。
| ページ | 内容 |
|---|---|
| 共通プロパティ | すべてのフォームの種類に適用されるプロパティ ( name、 description、 help、 type、 fields ) |
| Ansible フォーム | type: ansible に固有のプロパティ |
| AWX フォーム | type: awx に固有のプロパティ |
| Semaphore フォーム | Semaphore のテンプレートを実行する type: semaphore に固有のプロパティ |
| Rundeck フォーム | Rundeck のジョブを実行する type: rundeck に固有のプロパティ |
| Jenkins フォーム | Jenkins のジョブをビルドする type: jenkins に固有のプロパティ |
| マルチステップフォーム | type: multistep に固有のプロパティ。非推奨で、 workflow に置き換えられています |
| ワークフローフォーム | ワークフロー を実行する type: workflow に固有のプロパティ |
| ウィザード | フォームの入力を複数のページに分ける (実行可能などのフォームの種類にも重ねて使えます) |
| サブフォーム | サブフォームは共通プロパティだけを使います |
| 承認ポイント | 承認されるまでジョブを一時停止する ( approval ) |
| 通知 | ジョブのステータスやイベントに応じてメールやチャネルのメッセージを送信する ( notifications ) |
| ジョブステータスアクション | ジョブのステータスが変わったときにフォームに対して処理を行う ( onSubmit、 onSuccess など) |