プロンプト
プロンプトは、各テンプレートタイプに固有の事前定義されたフラグやオプションで、有効にすると実行時のカスタマイズが可能になります。自分で作成するカスタムフィールドであるサーベイ変数とは異なり、プロンプトは Ansible、Terraform などのツールの特定の CLI フラグに対応する組み込みオプションです。
この機能により、次のことが可能になります。
- 実行時にテンプレートのデフォルトを上書きする
- 特定のホストやリソースを対象にする
- CLI フラグで実行動作を制御する
- API 呼び出しやスケジュール経由で実行時オプションを渡す
プロンプトとサーベイ変数の違い
| 機能 | プロンプト | サーベイ変数 |
|---|---|---|
| 定義 | 事前定義されたテンプレート固有のオプション | 自分で作成するカスタムフィールド |
| 例 | Ansible: --limit、--tagsTerraform: ワークスペース、 -destroy | 環境名、バージョン番号、カスタムパラメーター |
| 設定方法 | テンプレートのチェックボックスで有効化 | テンプレート設定で名前とタイプを指定して追加 |
| 渡し方 | 組み込みの CLI フラグ | Ansible: --extra-varsTerraform: -var |
プロンプトは特定のツール向けに Semaphore に組み込まれた標準化されたオプションであり、サーベイ変数は自分で定義する柔軟なカスタムフィールドです。
Ansible のプロンプト
Ansible playbook テンプレートでは、次の CLI オプションに対応するプロンプトを有効にできます。
Limit
--limit プロンプトを有効にすると、playbook 実行時に対象とするホストを指定できます。
CLI での同等の操作: ansible-playbook playbook.yml --limit webservers
ユースケース:
- inventory 内の一部のホストで playbook を実行する
- デプロイ対象として特定のサーバーを指定する
- 展開前に 1 台のホストで変更をテストする
例:
- inventory に 50 台の Web サーバーが含まれている
- Limit プロンプトを有効にする
- タスク実行時に
web-01.example.comを指定すると、そのサーバーだけが対象になる - または
webservers:&productionを指定すると、本番の Web サーバーだけが対象になる
Tags
--tags プロンプトを有効にすると、特定のタグが付いたタスクのみを実行できます。
CLI での同等の操作: ansible-playbook playbook.yml --tags deploy,restart
ユースケース:
- playbook の特定の部分だけを実行する
- 設定タスクを除いてデプロイ手順だけを実行する
- playbook 全体を実行せずにサービスをすばやく再起動する
例:
---
- hosts: all
tasks:
- name: Install packages
apt:
name: nginx
tags: install
- name: Deploy application
copy:
src: app.tar.gz
dest: /opt/app/
tags: deploy
- name: Restart service
service:
name: nginx
state: restarted
tags: restart
Tags プロンプトを有効にして deploy,restart と入力すると、インストール手順をスキップできます。
Skip Tags
--skip-tags プロンプトを有効にすると、特定のタグが付いたタスクをスキップできます。
CLI での同等の操作: ansible-playbook playbook.yml --skip-tags testing,debug
ユースケース:
- 本番環境で任意のタスクをスキップする
- デバッグ用やテスト用のタスクを除外する
- 不要な場合に時間のかかるタスクを省略する
例: 上記の playbook で Skip Tags を有効にして install と入力すると、パッケージのインストールをスキップし、デプロイと再起動のタスクだけを実行します。