check_syntax
Validate Ansible playbook syntax before execution to identify configuration errors and ensure proper formatting.
Instructions
Check syntax of an Ansible playbook without executing it
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| playbook | Yes |
Implementation Reference
- The handler function for the check_syntax tool. It validates the playbook path, runs `ansible-playbook --syntax-check`, captures output, and throws AnsibleExecutionError on failure.export async function checkSyntax(options: CheckSyntaxOptions): Promise<string> { const playbookPath = validatePlaybookPath(options.playbook); // Build command with syntax-check option const command = `ansible-playbook ${playbookPath} --syntax-check`; try { // Execute command const { stdout, stderr } = await execAsync(command); return stdout || 'Syntax check passed (no issues found)'; } catch (error) { // Handle exec error - in this case, a syntax error const execError = error as { stderr?: string; message: string }; throw new AnsibleExecutionError( `Syntax error: ${execError.message}`, execError.stderr ); } }
- Zod schema defining the input for check_syntax: requires 'playbook' path string.export const CheckSyntaxSchema = z.object({ playbook: z.string().min(1, 'Playbook path is required'), }); export type CheckSyntaxOptions = z.infer<typeof CheckSyntaxSchema>;
- src/sysoperator/index.ts:65-69 (registration)Registration of the 'check_syntax' tool in the toolDefinitions map, linking schema and handler.check_syntax: { description: 'Check syntax of an Ansible playbook without executing it', schema: CheckSyntaxSchema, handler: playbooks.checkSyntax, },