Prompts
Los prompts son indicadores y opciones predefinidos, específicos de cada tipo de plantilla, que puede habilitar para permitir la personalización en tiempo de ejecución. A diferencia de las variables de encuesta, que son campos personalizados que usted crea, los prompts son opciones integradas que se corresponden con indicadores concretos de la CLI de Ansible, Terraform y otras herramientas.
Esta característica le permite:
- Sobrescribir los valores predeterminados de la plantilla en tiempo de ejecución
- Apuntar a hosts o recursos concretos
- Controlar el comportamiento de la ejecución con indicadores de la CLI
- Pasar opciones en tiempo de ejecución mediante llamadas a la API o programaciones
Prompts frente a variables de encuesta
| Característica | Prompts | Variables de encuesta |
|---|---|---|
| Definición | Opciones predefinidas específicas de la plantilla | Campos personalizados que usted crea |
| Ejemplos | Ansible: --limit, --tagsTerraform: workspaces, -destroy | Nombre del entorno, número de versión, parámetros personalizados |
| Configuración | Se habilitan mediante casillas de verificación en la plantilla | Se agregan en la configuración de la plantilla con nombre y tipo |
| Se pasan como | Indicadores integrados de la CLI | Ansible: --extra-varsTerraform: -var |
Los prompts son opciones estandarizadas integradas en Semaphore para herramientas concretas, mientras que las variables de encuesta son campos personalizados flexibles que usted mismo define.
Prompts de Ansible
En las plantillas de playbooks de Ansible puede habilitar prompts para las siguientes opciones de la CLI:
Limit
Habilite el prompt --limit para indicar a qué hosts apuntar al ejecutar el playbook.
Equivalente en la CLI: ansible-playbook playbook.yml --limit webservers
Casos de uso:
- Ejecutar el playbook en un subconjunto de los hosts del inventario
- Apuntar a servidores concretos para un despliegue
- Probar los cambios en un solo host antes de desplegarlos por completo
Ejemplo:
- Su inventario contiene 50 servidores web
- Habilite el prompt Limit
- Al ejecutar la tarea, indique
web-01.example.compara apuntar únicamente a ese servidor - O indique
webservers:&productionpara apuntar a los servidores web de producción
Tags
Habilite el prompt --tags para ejecutar solo las tareas con determinadas etiquetas.
Equivalente en la CLI: ansible-playbook playbook.yml --tags deploy,restart
Casos de uso:
- Ejecutar solo determinadas partes de un playbook
- Ejecutar los pasos de despliegue sin las tareas de configuración
- Reiniciar servicios rápidamente sin ejecutar el playbook completo
Ejemplo:
---
- 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
Habilite el prompt Tags e introduzca deploy,restart para omitir el paso de instalación.
Skip Tags
Habilite el prompt --skip-tags para omitir las tareas con determinadas etiquetas.
Equivalente en la CLI: ansible-playbook playbook.yml --skip-tags testing,debug
Casos de uso:
- Omitir tareas opcionales en producción
- Excluir tareas de depuración o de pruebas
- Saltarse tareas que consumen mucho tiempo cuando no son necesarias
Ejemplo: Con el playbook anterior, habilite Skip Tags e introduzca install para omitir la instalación de paquetes y ejecutar solo las tareas de despliegue y reinicio.
Skip Galaxy install
Habilite el prompt para que el usuario pueda omitir el paso ansible-galaxy install de roles y colecciones al ejecutar la tarea.
Casos de uso:
- Los requisitos ya están instalados en la imagen del runner
- Ahorrar tiempo en ejecuciones repetidas cuando nada ha cambiado en
requirements.yml
Force Galaxy install
Habilite el prompt para que el usuario pueda forzar ansible-galaxy install --force en cada archivo de requisitos, ignorando la suma de comprobación de los requisitos que Semaphore conserva entre ejecuciones.
Equivalente en la CLI: ansible-galaxy role install -r requirements.yml --force
Casos de uso:
- Un archivo de requisitos hace referencia a una rama en lugar de a una versión fija y necesita el último commit
- Una instalación anterior dejó roles o colecciones en un estado defectuoso
- Comprobar que un playbook funciona partiendo de un conjunto limpio de dependencias
Consulte Requisitos de Galaxy para saber cómo funcionan los valores predeterminados a nivel de plantilla.
Habilitar los prompts de Ansible
Para habilitar los prompts de Ansible:
- Vaya a Plantillas de tareas y seleccione su plantilla de Ansible
- Busque la sección Ansible Prompts en la configuración de la plantilla
- Marque las casillas de los prompts que desee:
- ☐ Limit - Habilita el indicador
--limit - ☐ Tags - Habilita el indicador
--tags - ☐ Skip Tags - Habilita el indicador
--skip-tags - ☐ Debug - Habilita la selección del nivel de detalle (
-v) - ☐ Skip Galaxy install - Permite omitir
ansible-galaxy install - ☐ Force Galaxy install - Permite forzar
ansible-galaxy install --force
- ☐ Limit - Habilita el indicador
- Guarde la plantilla

Cuando están habilitados, estos campos aparecen en el formulario de ejecución de la tarea, en las peticiones a la API y en la configuración de las programaciones.
Prompts de Terraform/OpenTofu
En las plantillas de Terraform y OpenTofu, Semaphore ofrece varios prompts integrados:
Selección de workspace
Seleccione el workspace de Terraform que se usará en la ejecución de la tarea.
Equivalente en la CLI: terraform workspace select staging
Casos de uso:
- Gestionar varios entornos (desarrollo, preproducción, producción)
- Separar los archivos de estado de configuraciones distintas
- Probar cambios de infraestructura de forma aislada
Configuración:
- Cree workspaces en la pestaña Workspaces de la plantilla
- El selector de workspace aparece automáticamente en el formulario de la tarea
- Los usuarios eligen el workspace de destino al ejecutar las tareas
Consulte Workspaces de Terraform para ver la configuración detallada.
Indicador Destroy
Habilite el indicador -destroy para destruir la infraestructura.
Equivalente en la CLI: terraform apply -destroy
Casos de uso:
- Limpiar entornos de prueba temporales
- Dar de baja infraestructura
- Eliminar recursos concretos
Importante: Es una operación destructiva. Úsela con precaución y valore exigir una confirmación en sus workflows.
Indicador Migrate State
Habilite el indicador -migrate-state al cambiar la configuración del backend.
Equivalente en la CLI: terraform init -migrate-state
Casos de uso:
- Mover el estado a otro backend
- Migrar entre ubicaciones de almacenamiento
- Actualizar la configuración del backend
Habilitar los prompts de Terraform
Los prompts de Terraform están disponibles en la configuración de la plantilla:
- Vaya a Plantillas de tareas y seleccione su plantilla de Terraform
- Configure los prompts disponibles en la configuración de la plantilla:
- Selección de workspace (se habilita automáticamente si hay workspaces configurados)
- Opción del indicador destroy
- Opción de migración de estado
- Guarde la plantilla
El formulario de la tarea muestra estas opciones al ejecutar tareas de Terraform.
Prompts de Bash, PowerShell y Python
En las plantillas de Bash, PowerShell y Python los prompts son mínimos, ya que la mayor parte de la personalización se gestiona mediante variables de encuesta.
Los prompts disponibles son:
- CLI args
- Branch
Estos tipos de plantilla se benefician más de las variables de encuesta personalizadas para pasar parámetros a los scripts.
Usar los prompts
Ejecución manual de tareas
Al ejecutar una tarea desde una plantilla con prompts habilitados:
- Haga clic en Ejecutar en la plantilla
- Aparece un formulario con los campos de los prompts habilitados
- Rellene los valores de los prompts que desee usar (los campos opcionales pueden quedar vacíos)
- Haga clic en Ejecutar tarea
La tarea se ejecuta con los valores de los prompts que haya indicado, pasados como indicadores de la CLI.
Llamadas a la API
Para pasar valores de prompts mediante la API, inclúyalos en el cuerpo de la petición:
Ejemplo de Ansible:
curl -XPOST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{
"template_id": 123,
"limit": "webservers",
"tags": "deploy,restart",
"skip_tags": "testing"
}' \
https://your-semaphore.com/api/project/1/tasks
Importante: Los prompts deben estar habilitados en la plantilla para que se acepten sus valores. Si pasa valores de prompts por la API sin haberlos habilitado, esos valores se ignorarán.
Tareas programadas
Las programaciones pueden incluir valores de prompts para personalizar la ejecución automática de las tareas:
Ejemplo: programación con prompts de Ansible
- Programación de despliegue diario con
limit: "production"ytags: "deploy" - Programación de mantenimiento semanal con
tags: "updates,cleanup"
Configure los valores de los prompts en los ajustes de la programación para que cada ejecución programada use las opciones indicadas.
Integraciones y webhooks
Las integraciones pueden extraer valores de los webhooks y asignarlos a los prompts:
Ejemplo: un webhook de GitHub desencadena un despliegue
- Extraer el nombre de la rama del webhook
- Asignarlo al prompt Limit para apuntar a un entorno concreto
- Desplegar únicamente en los servidores que coincidan con el entorno de la rama
Consulte Integraciones para configurar los webhooks.
Buenas prácticas
Habilite solo los prompts necesarios
Cada prompt habilitado añade un campo al formulario de la tarea. Habilite únicamente los prompts que los usuarios vayan a necesitar realmente.
✅ Bien: habilitar Limit para los equipos de operaciones que necesitan apuntar a hosts concretos ❌ Mal: habilitar todos los prompts "por si acaso"
Combínelos con variables de encuesta
Use los prompts para las opciones de la CLI propias de cada herramienta y las variables de encuesta para los parámetros personalizados:
Ejemplo de plantilla de Ansible:
- Prompts: Limit (qué hosts), Tags (qué tareas)
- Variables de encuesta:
app_version(qué versión),enable_rollback(lógica personalizada)
Documente el uso de la API
Si las plantillas se desencadenan mediante la API, documente qué prompts están disponibles y el formato que esperan:
## API Usage
Enabled prompts:
- `limit`: Host pattern (optional)
- `tags`: Comma-separated tag list (optional)
Example:
POST /api/project/1/tasks
{
"template_id": 123,
"limit": "webservers:&production",
"tags": "deploy"
}
Use Limit para probar con seguridad
Pruebe siempre primero con el prompt Limit los playbooks que puedan resultar destructivos:
- Habilite el prompt Limit en la plantilla
- Primera ejecución: indique
limit: "test-server-01"para probar en un solo host - Compruebe que ha funcionado
- Segunda ejecución: indique
limit: "production"para desplegar en todos los hosts
Valide las combinaciones de prompts
Algunas combinaciones de prompts pueden no tener sentido. Añada documentación o validaciones:
- Usar
--tags deployjunto con--skip-tags deployprovoca un conflicto - Indicar a la vez un workspace y el indicador destroy exige especial precaución
Casos de uso habituales
Despliegue gradual con Limit
Despliegue en producción de forma gradual usando el prompt Limit de Ansible:
- Ejecución 1:
limit: "web-01.example.com"- Desplegar en un servidor - Vigile si surgen problemas
- Ejecución 2:
limit: "webservers:&canary"- Desplegar en los servidores canary - Valide las métricas
- Ejecución 3:
limit: "webservers:&production"- Despliegue completo
Ejecución selectiva con Tags
Use Tags para ejecutar solo determinadas partes de un playbook:
Mañana: tags: "deploy" - Desplegar la nueva versión
Tarde: tags: "config" - Actualizar la configuración
Noche: tags: "restart" - Reiniciar los servicios con la nueva configuración
Gestión de entornos con workspaces
Use la selección de workspace de Terraform para gestionar los entornos:
- Desarrollo: seleccione el workspace
dev- recursos más económicos, iteración más rápida - Preproducción: seleccione el workspace
staging- similar a producción para realizar pruebas - Producción: seleccione el workspace
prod- infraestructura de producción completa
Limpieza con Destroy
Use el destroy de Terraform para infraestructura temporal:
- Cree el entorno de prueba: ejecute con el workspace
test-branch-123 - Ejecute las pruebas de integración
- Limpie: ejecute con el indicador destroy habilitado y el workspace
test-branch-123
Resolución de problemas
Los valores de los prompts se ignoran
Problema: pasa valores de prompts, pero no surten efecto
Solución: compruebe que el prompt correspondiente está habilitado en la configuración de la plantilla. Los prompts deben habilitarse de forma explícita.
No se puede indicar limit
Problema: el campo Limit no aparece en el formulario de la tarea
Solución:
- Edite la plantilla
- Busque la sección "Ansible Prompts"
- Marque la casilla "Limit"
- Guarde la plantilla
Las llamadas a la API fallan con valores de prompts
Problema: las peticiones a la API con valores de prompts devuelven errores
Solución:
- Asegúrese de que los prompts están habilitados en la plantilla
- Revise el formato JSON del cuerpo de la petición
- Compruebe que los nombres de los campos coinciden exactamente (
limit, nohost_limit)
Las etiquetas no filtran las tareas
Problema: indica etiquetas, pero se siguen ejecutando todas las tareas
Solución:
- Compruebe que las tareas del playbook tienen etiquetas correctamente definidas
- Busque errores tipográficos en los nombres de las etiquetas
- Asegúrese de que las etiquetas están separadas por comas sin espacios:
deploy,restarty nodeploy, restart
Documentación relacionada
- Variables de encuesta - Campos personalizados para las plantillas
- Plantillas de Ansible - Configuración específica de Ansible
- Plantillas de Terraform - Configuración específica de Terraform
- Programaciones - Ejecución automática de tareas
- Integraciones - Tareas desencadenadas por webhooks
- Documentación de la API - Referencia de la API