A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.hashicorp.com/terraform/cloud-docs/agents/hooks below:

HCP Terraform agent hooks | Terraform

HCP Terraform Agents support running custom programs, or hooks, during strategic points of a Terraform run. These hooks allow you to extend the functionality of Terraform runs. For example, you may create a hook to dynamically download software required by the Terraform run or send an HTTP request to a system to kick off an external workflow.

HCP Terraform Agents support the following hooks:

Please note the following behavior when using hooks:

Hooks may be used to set environment variables for subsequent terraform commands to use. To set an environment variable, write lines in KEY=value format to the file pointed to by the $TFC_AGENT_ENV environment variable. Newlines are used to separate multiple environment variables. For example, to set the FOO and BAR environment variables for the terraform plan operation to consume, write the following in a pre-plan hook script:

#!/bin/sh
echo FOO=hello >> $TFC_AGENT_ENV
echo BAR=world >> $TFC_AGENT_ENV

Environment variables set by a hook script in this way are only applicable to the current operation, and are not persisted for later operations. For example, if FOO=bar is set in the pre-plan hook, then FOO=bar will be set during the terraform plan command, but will not be set during terraform apply. To use the variable during the apply phase, write the variable to the $TFC_AGENT_ENV file again in the pre-apply hook script.

Hooks are stored within the hooks subdirectory of the agent's data directory. By default, that's ~/.tfc-agent/hooks.

To configure a hook, create a file named terraform-${HOOK} where ${HOOK} is one of the hooks listed above. Then store that file within the hooks subdirectory and make it executable. The agent will trigger configured hooks at the appropriate points during Terraform runs.

For example, a pre-plan hook is an executable file named ~/.tfc-agent/hooks/terraform-pre-plan. When this hook is configured, an agent will run this hook before terraform init during a plan operation.

Running an Agent as a Binary

To configure hooks when running the tfc-agent binary directly on a Linux instance:

  1. Create the hooks directory within the agent's data directory.

    mkdir -p ~/.tfc-agent/hooks
    
  2. Create one or more hooks inside the hooks directory. The following example creates a pre-plan hook that prints a message when it runs.

    cat <<EOF > ~/.tfc-agent/hooks/terraform-pre-plan
    #!/bin/bash
    echo "Example hook output."
    EOF
    
  3. Make the hooks executable.

    chmod +x ~/.tfc-agent/hooks/terraform-pre-plan
    
  4. Start the agent.

  5. The agent will now trigger configured hooks at the appropriate points during Terraform runs. The standard output and standard error from the hook will be printed alongside the Terraform run in the HCP Terraform or Terraform Enterprise user interface.

    Terraform v1.1.0
    Executing pre-plan hook...
    Example hook output.
    Initializing plugins and modules...
    
Running an Agent with Docker

When running tfc-agent using Docker, you must build a new Docker image containing the hooks. To configure hooks:

  1. Create a new directory and navigate into it. This limits the Docker build context to this new directory.

    mkdir hooks-docker-example
    cd hooks-docker-example
    
  2. Create a hooks directory.

  3. Create one or more hooks inside the hooks directory. The following example creates a pre-plan hook that prints a message when it runs.

    cat <<EOF > hooks/terraform-pre-plan
    #!/bin/bash
    echo "Example hook output."
    EOF
    
  4. Make the hooks executable.

    chmod +x hooks/terraform-pre-plan
    
  5. Create a Dockerfile with the following content.

    FROM hashicorp/tfc-agent:latest
    RUN mkdir /home/tfc-agent/.tfc-agent
    ADD --chown=tfc-agent:tfc-agent hooks /home/tfc-agent/.tfc-agent/hooks
    
  6. Build a new hashicorp/tfc-agent Docker image using the Dockerfile.

    docker build -t hashicorp/tfc-agent:your-tag .
    
  7. Start the agent using the Docker image.

    docker run -e TFC_AGENT_TOKEN=your-token -e TFC_AGENT_NAME=your-agent-name \
      hashicorp/tfc-agent:your-tag
    
  8. The agent will now trigger configured hooks at the appropriate points during Terraform runs. The standard output and standard error from the hook will be printed alongside the Terraform run in the HCP Terraform or Terraform Enterprise user interface.

    Terraform v1.1.0
    Executing pre-plan hook...
    Example hook output.
    Initializing plugins and modules...
    

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4