> For the complete documentation index, see [llms.txt](https://docs.expel.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.expel.io/connect-your-technology/expel-assembler/deploy-the-virtual-machine/deploy-the-assembler-in-gcp.md).

# Deploy the Assembler in GCP

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](/connect-your-technology/expel-assembler/about-the-expel-assembler.md) guide.

### Prerequisites

* You must have completed all of the steps in [Add a New Assembler](/connect-your-technology/expel-assembler/add-a-new-assembler.md) for each assembler you wish to deploy.

## 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.

1. [Log in to Workbench](https://workbench.expel.io/auth/login?orig=%2F).
2. In the side menu, navigate to **Organization Settings > Assemblers**.
3. 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.&#x20;

{% hint style="info" %}
You may choose a different file format if you like, but the JSON format is recommended for this type of assembler.
{% endhint %}

<figure><img src="/files/Eafkj0BJOEqa4x4PfyJF" alt="Select the JSON format in the right menu, and then select the download link."><figcaption></figcaption></figure>

4. Repeat this process for any additional assemblers.

{% hint style="warning" %}
You must keep track of which files came from which assembler, because each assembler has its own unique ignition file.
{% endhint %}

## Step 2: Configure and Spin Up the Virtual Machine

Now that you have an ignition file, you can spin up the virtual machine and instruct it to use that file to format itself and connect securely to Expel’s platform. If you are using multiple virtual machines because you have multiple assemblers to deploy, make sure you use the correct ignition file for each one.

1. [Log in to the Google Cloud Console.](https://console.cloud.google.com/)
2. Select the **Create a VM** link if it is available on the Welcome page, or navigate to **Compute Engine** and select **Create Instance**.
3. Configure the name and region for your virtual machine.
   * **Name** - enter a name for your virtual machine.
   * **Region** - choose the region your physical infrastructure is located in.
   * **Zone** - choose the zone your physical infrastructure is located in. *If you do not know which zone to choose, check with someone internally in your organization to be sure you choose the correct one.*
4. Configure your machine’s size. A basic configuration that meets the minimum requirements is as follows:
   * Under **Machine Configuration**, choose **General purpose** and select the series **E2**.
   * Under **Machine Type**, choose **Preset** and then select **Standard > e2-standard-2**.
   * Scroll down to **Boot Disk** and select **Change**, then increase the size to **20 GB**.

{% hint style="info" %}
You may choose any machine configuration you wish, as long as it meets the minimum requirements of 2 virtual CPUs, 8 GB RAM, and 20 GB disk space.&#x20;
{% endhint %}

5. Change the virtual machine's operating system to Fedora CoreOS.
   * Under Boot Disk, select **Change**.
   * In the Operating System menu, select **FedoraCoreOS**.
   * In the Version menu, select the **latest FedoreCoreOS** version that is compatible with your machine type. *Google will alert you if you choose a version that is incompatible.*
   * Choose the **Select** button to close the window.
6. Select the VPC for the assembler.
   * Expand the **Advanced Options** section.
   * Go to **Networking** and look for the **Network Interfaces** section.
   * Use the toggle to change the default to the VPC where the assembler will be deployed.&#x20;

{% hint style="warning" %}
The virtual cloud you choose should be the one that allows firewall access for Expel’s two outbound connections.
{% endhint %}

7. Add your ignition file.
   * Still in Advanced Options, look for the **Management** section.
   * Scroll down to **Metadata** and select **Add Item**.
   * **Key** - enter “user-data” as the key.
   * **Value** - paste the contents of your ignition file.
8. Select **Create** to spin up your virtual machine.

{% hint style="warning" %}
Wait for the status to change to “Running” before moving on to the next step.
{% endhint %}

9. Repeat this process for any additional virtual machines.

## Step 3: Verify a “Connected” Status in Workbench

{% hint style="info" %}
It can take 10 to 15 minutes for the assembler’s status to update in Workbench.
{% endhint %}

1. [Log in to Workbench](https://workbench.expel.io/auth/login?orig=%2F).
2. In the side menu, navigate to **Organization Settings > Assemblers** (or, refresh the page if you never logged out).
3. Find your newly created assembler(s) and verify that the status has changed from “Not Yet Connected” to “Connected.”&#x20;
   * If your assembler(s) still do not show as connected after waiting at least 15 minutes and refreshing the page, see the [Troubleshooting](#troubleshooting) section for help.

## Step 4: Connect Your Technology

You can now set up your vendor technology in Workbench.

<button type="button" class="button primary" data-action="search" data-icon="magnifying-glass">Search for your setup guide…</button>

## Troubleshooting

If your assembler is still not showing as “Connected” after 15 minutes:

* Make sure your chosen VPC has the proper [firewall configurations](/connect-your-technology/expel-assembler/add-a-new-assembler.md#step-2-update-your-firewall-configuration) to allow our outbound ports, and that the VPC is selected correctly in GCP ([Step 2](#step-2-configure-and-spin-up-the-virtual-machine)).
* Make sure your chosen machine’s size meets the required minimums (2 virtual CPUs, 8 GB RAM, and 20 GB disk space), and that you did not forget to update the disk space size for the boot disk ([Step 2](#step-2-configure-and-spin-up-the-virtual-machine)).&#x20;

If all firewall, VPC, and machine size settings are correct and you are still unable to connect the assembler, [contact support](/support/how-to-reach-us.md) for help.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.expel.io/connect-your-technology/expel-assembler/deploy-the-virtual-machine/deploy-the-assembler-in-gcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
