Deploy the Assembler in GCP (Terraform)
This guide is only for V2 assemblers being deployed with a virtual machine in the Google Cloud Platform by using Terraform. The V1 assembler is no longer supported as of June 30, 2024.
Each assembler you created must be deployed via a virtual machine, and then you can add your technology as a security device in Workbench to complete the full integration. For more information about the Expel Assembler or how it works, see the About the Expel Assembler guide.
Prerequisites
You must have completed all of the steps in Add a New Assembler for each assembler you wish to deploy.
You must have already created a project in the Google Cloud Console and set up billing.
You must have Terraform installed.
You must have the gcloud CLI installed.
Step 1: Download the Ignition File
The ignition file enables the virtual machine to read a configuration file, and to provision the Fedora CoreOS system based on the contents of that file. You will use this file when you configure the virtual machine in GCP.
In the side menu, navigate to Organization Settings > Assemblers.
Find the assembler you created, leave the file format as JSON, and select Download the CoreOS Ignition File. This action will download a JSON file that you will need in the next section.

Move your ignition file to a remote, secure location such as Google's Cloud Storage. The contents of the ignition file will be stored in plaintext (unencrypted) wherever your Terraform state files are located.
Repeat this process for any additional assemblers.
Step 2: Set Up the Terraform Config File for GCP
Terraform will use the Google Cloud provider to configure your GCP infrastructure.
If you are running Terraform locally, first use the following command to authenticate with GCP.
Create a Terraform config file if you do not have one, and make sure the file has the following configuration.
The google
providerblock is used to configure your GCP authentication credentials.The
projectis your project ID.The
regionis the default location for your created resources.Optional: If you have zonal resources, add
zoneto this config file as well (a zone will be set automatically if you do not specify one).
Step 3: Set the Path and Bucket Name
Use the google_storage_bucket_object_content data source and set the path and bucket name to point to where you stored your ignition file.
Step 4: Configure and Spin Up the Virtual Machine
Use the google_compute_instance resource to configure your virtual machine with the minimum requirements.
machine_typeis “n2-standard-2”, which has the minimum CPU and RAM requirements for an assembler.imageis “fedora-coreos-stable”, which is the image family name provided by Google that is needed for an assembler.sizeis "20", which indicates the 20GB minimum disk size required for an assembler.
Step 5: Verify a “Connected” Status in Workbench
In the side menu, navigate to Organization Settings > Assemblers (or, refresh the page if you never logged out).
Find your newly created assembler(s) and verify that the status has changed from “Not Yet Connected” to “Connected.”
If your assembler(s) still do not show as connected after waiting at least 15 minutes and refreshing the page, see the Troubleshooting section for help.
Step 6: Connect Your Technology
You can now set up your vendor technology in Workbench.
Troubleshooting
If your assembler is still not showing as “Connected” after 15 minutes:
Make sure your chosen connection has the proper firewall configurations to allow our outbound ports.
Make sure your config file includes the correct project name and region (Step 2).
Make sure your ignition file is at the path specified, and that you are referencing the correct ignition file for your assembler (Step 3).
Make sure your chosen machine’s size meets the required minimums (2 virtual CPUs, 8 GB RAM, and 20 GB disk space).
If all firewall, config file, and resource definitions settings are correct and you are still unable to connect the assembler, contact Support for help.
Reference
Full Code Examples
Last updated
Was this helpful?

