For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Open sourceSupportFAQsDocs Home
DocumentationCommand referenceRelease notes
DocumentationCommand referenceRelease notes
  • Itential Automation Gateway
    • Overview
    • Execution engine
    • Concepts
    • Feature comparison
    • IAG secret store
      • Overview
      • Create an executable object
      • Manage executable objects
      • Use executable objects with services
        • Overview
        • Create an executable service
        • Run an executable service
        • Manage executable services
    • Inventory Manager
LogoLogo
Open sourceSupportFAQsDocs Home
On this page
  • Prerequisites
  • Create a basic executable service
  • Create an executable service with argument formatting
  • Additional examples
  • Create an executable service for a Terraform script
  • Create an executable service for a Python script
  • Create an executable service with complex argument formatting
Itential Automation GatewayExecutable objects and servicesExecutable services

Create an executable service

Was this page helpful?
Previous

Run an executable service

Next
Built with

You can create an executable service to run scripts or applications stored in a Git repository. Executable services use a pre-defined executable object to determine how to run your script.

Prerequisites

  • An executable object that defines the command to run your script
  • A Git repository that contains your script or application
  • Operator role permissions
  • Repository authentication configured (if using a private repository)

Create a basic executable service

Use the iagctl create service executable command to create a new executable service.

Syntax:

$iagctl create service executable <service-name> \
> --executable-object <object-name> \
> --repository <repository-name> \
> --working-dir <directory-path> \
> --filename <script-filename>

Parameters:

  • <service-name>: A unique name for the executable service
  • --executable-object: The name of the executable object that runs your script
  • --repository: The name of the Git repository that contains your script
  • --working-dir: The path within the repository where your script is located
  • --filename: The name of the script file to execute

Example:

Create an executable service that runs a Bash script:

$iagctl create service executable simple-bash \
> --executable-object my-obj \
> --repository gateway-resources \
> --working-dir executable_services/simple-script \
> --filename test.sh

This example uses the executable object named my-obj (which would be configured to use /usr/bin/bash) to run the test.sh script.

Create an executable service with argument formatting

Add the --arg-format parameter to define how IAG passes arguments to your script at runtime.

Syntax:

$iagctl create service executable <service-name> \
> --executable-object <object-name> \
> --repository <repository-name> \
> --working-dir <directory-path> \
> --filename <script-filename> \
> --arg-format "<format-template>"

Example:

Create an executable service with custom argument formatting:

$iagctl create service executable simple-executable \
> --executable-object my-obj \
> --arg-format "{{.Key}} {{.Value}}" \
> --repository gateway-resources \
> --working-dir executable_services/simple-script \
> --filename test.sh

Additional examples

Create an executable service for a Terraform script

$iagctl create service executable terraform-deploy \
> --executable-object terraform-latest \
> --repository infrastructure-repo \
> --working-dir terraform/production \
> --filename main.tf \
> --description "Deploy production infrastructure"

Create an executable service for a Python script

$iagctl create service executable python-util \
> --executable-object python311-standard \
> --repository utility-scripts \
> --working-dir python \
> --filename data-processor.py \
> --description "Process daily data files"

Create an executable service with complex argument formatting

$iagctl create service executable advanced-script \
> --executable-object bash-standard \
> --repository gateway-resources \
> --working-dir scripts \
> --filename process.sh \
> --arg-format "--{{.Key}}={{.Value}}" \
> --description "Process data with custom flags"