ジョブの操作
ジョブの起動、中止、再起動、承認または却下、削除
ジョブを起動する
ジョブはすべてフォームから始まります。 フォーム ページからフォームを開き、フィールドに入力して 送信 を押します。
- フォームがブラウザーで検証され、フィールドの値がサーバーに送信されます。
- サーバーがジョブを作成してその番号を返し、フォームの
onSubmitアクションが実行されます。 - フォームの下にジョブの出力が表示され、ジョブが終了するまで 2 秒ごとに更新されます。
ジョブは ジョブ ページにも表示され、後からそこで追跡できます。
フォームを起動できるユーザー
フォームは、その roles リストにある ロール のいずれかを持つユーザーに一覧表示され、起動できます。 すべてのユーザーが持つ default ロールを指定すると、サインインできる全員がフォームを使えるようになります。
送信する前に
フィールドの上のバーにはいくつかのツールがあり、それぞれロールで許可されている場合にだけ表示されます。
| ボタン | 内容 | ロールオプション |
|---|---|---|
| Extravars を表示 | フィールドへの入力に合わせて、ジョブが受け取る extravars をプレビューします | showExtraVars |
| verbose | ジョブを詳細モードで実行します | allowVerboseMode |
| 保存済みデータから読み込む | 保存済みジョブ からフィールドに入力します | allowStoredJobs |
| このフォームを再読み込み | フォームを既定値で再び読み込みます | なし |
起動時の選択
フォームでは、予約名のフィールドを宣言することで、ユーザーが起動時に一部の Ansible オプションを選べるようにできます。 その場合、フィールドの値がフォーム自体の設定より優先されます。
| フィールド名 | 上書きするもの | 一般的なフィールドの種類 |
|---|---|---|
__check__ | チェックモード (何も変更しないドライラン) | checkbox |
__diff__ | 差分モード (何が変わるかを表示) | checkbox |
__limit__ | playbook を実行するホスト | text または enum |
__tags__ | 実行するタグ | text または enum |
__inventory__ | インベントリ | enum |
__playbook__、 __template__ | playbook、または AWX / AAP のテンプレート | enum |
たとえば、ドライランとホストの制限を提供するフォームは次のようになります。
fields:
- name: __check__
type: checkbox
label: Dry run (check mode)
- name: __limit__
type: text
label: Limit to these hosts
サーバーがこれらの名前を受け付けるのは、それらをフィールドとして宣言しているフォームからだけなので、API からの起動で勝手に追加することはできません。 上書きされるプロパティについては、 Ansible フォーム と AWX フォーム で説明しています。
起動が止まる場合
起動しても、すぐに実行中のジョブになるとは限りません。
- 無効なフィールド : フォームは送信されず、検証に失敗した各フィールドにその理由が表示されます。
- 起動時の検証 : 起動時の検証 が
enforceに設定されている場合、サーバーが値を 再度チェックし、フォームのルールに反する起動を拒否します。 - 承認 : 承認ポイント のあるフォームはジョブを作成し、ジョブはステータス
approveで待機します。 ジョブを承認または却下する を参照してください。
ジョブが終了すると、フォームの 通知 がメールやチャネルへのメッセージを送信し、ジョブ ステータスアクションが実行されます。
ジョブを開始するその他の方法
フォームは、人が 送信 を押さなくてもジョブを開始できます。
| 開始するもの | 方法 | ページ |
|---|---|---|
| 後で実行または cron スケジュール | 送信 の横の 後で実行 (1 回限り) または スケジュール (定期実行) | スケジュール |
| スクリプトまたはパイプライン | API トークンを使った POST /api/v2/job | REST API のジョブ |
| AI エージェント | MCP サーバーの launch_job ツール | MCP ツール |
| 会話 | チャットアシスタントがフォームに入力して起動します | チャットアシスタント |
| 以前のジョブ | 下記の 再起動 | ジョブを再起動する |
ジョブを中止する
一覧の行メニュー (⋮) の 中止、またはジョブのページの ジョブを中止 で、ステータスが running のジョブを停止します。確認すると、 AnsibleForms はジョブに中止のマークを付けます。
ansible: RTE が playbook のプロセスを (すべてのワーカーとともに) 停止し、ジョブは... was aborted by the operatorとともにabortedで終了します。空いている RTE を待っているジョブは、開始前に中止されます。- テンプレートジョブ (AWX、AAP、Ascender、Semaphore、Rundeck、Jenkins): AnsibleForms がランナーにジョブのキャンセルまたは停止を 要求し、ジョブは
abortedで終了します。ランナーが拒否した場合、出力にAbort request deniedと、続いてreverting abort requestが表示され、ジョブは実行を続けます。キューにある Jenkins のビルドはキューから取り除かれます。 workflow: 実行中のノードのジョブが中止され、それ以降は何も開始されません ( ワークフローの実行 を参照)。multistep: まだ開始していないステップはスキップされ (skipping: [Abort is requested])、メインジョブはabortedで終了します。すでに実行中のステップは個別のジョブなので、それも停止するにはそのジョブを開いて中止してください。
自分のジョブは中止できます。管理者、または 7.3.0 以降はロールで manageAllJobs が設定されているユーザーは、どのジョブでも中止できます。 showAllJobLogs では、 ほかのユーザーのジョブを表示できますが、中止はできません。
ジョブを再起動する
一覧の行メニュー (⋮) の 再起動、またはジョブのページの ジョブを再起動 で、終了したジョブから新しいジョブを開始します。これは running でも承認待ちでもないジョブで、ロールで allowJobRelaunch ロールオプションが設定されているユーザーに表示されます。
ダイアログには次の選択肢があります。
- 再起動: 実行時と同じ値で、自分の名前の新しいジョブとしてもう一度実行します。
- 詳細モード: 詳細モードで再起動します。
allowVerboseModeロールオプションがある場合に表示されます。 - 再起動する前に値を編集、続いて 編集して再起動: ジョブの値を事前入力したフォームを開くので、 送信する前に値を変更できます。
再起動するには、フォームがそれを許可していること ( allowRelaunch、既定は true ) と、ジョブが 自分のもの であることも必要です。ただし、 管理者または 7.3.0 以降で manageAllJobs を持つ場合は除きます。7.2 まではどのジョブでも再起動できた showAllJobLogs では、もう再起動できません。再起動がフォームのルールに対してどのようにチェックされるか、 またパスワードフィールドのあるフォームで再起動が拒否されることがある理由については、 再起動 で説明しています。
事前入力したデータで再起動する
編集して再起動 は prefillJobId URL パラメーターを付けてフォームを開きます。このパラメーターは自分で作るリンクにも使えます。
https://af.example.com/form?form=New%20Virtual%20Machine&prefillJobId=61
フォームはジョブ 61 に保存されたフィールドの値を読み込み、 Form pre-filled with data from previous job #61 と表示します。 送信すると新しいジョブが開始され、ほかの起動と同じようにチェックされます。事前入力には再起動と同じルールが適用されます。
- パスワードフィールドは保存されない ため、事前入力されることはありません。もう一度入力してください。定数も保存されません。
allowJobRelaunchロールオプションが必要で、ジョブは自分のものである必要があります (または管理者であるか、manageAllJobsを持っている)。allowRelaunch: falseのフォームは、再起動も事前入力もできません。
- name: New Virtual Machine
type: ansible
playbook: create-vm.yaml
allowRelaunch: false
フィールドの値が保存されるようになる前のジョブは事前入力できず、代わりにフォームにエラーが表示されます。
No saved form data found for job <id>. This job may have been created before the relaunch feature was enabled.
ジョブを承認または却下する
承認ポイント のあるジョブは、ステータス approve で停止して待機します。このジョブは、承認者 (承認のロールの いずれかを持つユーザー) のジョブページに一覧表示されるので、承認者はそれを見つけられます。7.3.0 以降、ほかのユーザーには表示されなくなりました。
承認を確認 は、管理者と、承認のロールのいずれかを持つユーザーに表示されます。ジョブの行をクリックするか、 行メニューの 承認を確認、またはジョブのページの 承認を確認 ボタンを使います。ダイアログには、ジョブの値を埋め込んだ承認の メッセージ (メッセージがない場合は汎用の文) と、フォーム、ジョブ ID、起動したユーザーと日時、ジョブへのリンクが 表示されます。 拒否 と 承認 で応答します。
- 承認: ジョブが続行され、ステータスが
runningに戻ります。 - 拒否: ジョブは
rejectedで終了し、出力にrejected by <username>が記録されます。
承認待ちのジョブは、ジョブページから再起動も削除もできません。先に承認または却下してください。
7.3.0 以降、ジョブを起動したユーザーはそのジョブを承認できないため、必ず別の人が確認することになります。ただし、取り下げるために却下することはできます。 管理者は、自分のジョブも含めて常に承認できます。承認ポイントで allowSelf: true を設定したフォームでは、起動したユーザーも自分のジョブを承認できます。
ジョブを削除する
一覧の行メニュー (⋮) の 削除、またはジョブのページの ジョブを削除 で、確認後にジョブをその出力とともに削除します。 マルチステップジョブを削除すると、そのステップも削除されます。複数のジョブを一度に削除するには、一覧の最初の列でチェックし、 その上の 削除 (n) をクリックします。
自分のジョブは削除できます。管理者と、7.3.0 以降は manageAllJobs ロールオプションを持つユーザーは、どのジョブでも削除できます。 showAllJobLogs では もう削除できません。 allowJobDeletion: false を設定したロールは、自分のジョブも含めて一切削除できないため、ジョブの履歴はすべて残ります。ジョブの ページでは、ジョブの実行中または中止処理中 (管理者と manageAllJobs を除く) と承認待ちの間はボタンが非表示になります。一覧では、 削除できないジョブのメニュー項目とチェックボックスがグレー表示になります。