# Automate Board Provisioning

## Pre-requisites

Before we start this tutorial, you will need:

* An AMD x86-64 or ARM device to act as a remote proxy device
* A board to be provisioned
* USB cable to connect the board to the remote proxy device
* A Remote Proxy [Fleet](https://docs.chassy.io/user-guides/fleet-user-guide)

{% stepper %}
{% step %}

### Enroll a Remote Proxy Device

Navigate to the **Remote Proxies** tab on the Fleet panel. If you haven't already, create a Remote Proxy Fleet to manage all of your upcoming proxy device enrollments. Make sure that the *Proxy Fleet* checkbox is ticked. Detailed instructions on how to create a fleet and enroll devices can be found at [creating-a-fleet](https://docs.chassy.io/user-guides/fleet-user-guide/creating-a-fleet "mention") and [enrolling-machines](https://docs.chassy.io/user-guides/fleet-user-guide/enrolling-machines "mention") guides respectively.

{% hint style="warning" %}
Several NVIDIA-required packages must be present on the Linux host serving as the Remote Proxy. Install them by running the following command once in a terminal.

```
curl -sfL https://cdn.chassy.io/test/provision-dependencies | bash -
```

{% endhint %}
{% endstep %}

{% step %}

### Set Up a Provisioning Workflow

Create a new [Workflow](https://docs.chassy.io/user-guides/workflow-user-guide/creating-a-workflow) to set up your provisioning details. Utilize the [Find Package](https://docs.chassy.io/reference/workflow-components/steps#find-package) and [Import Package](https://docs.chassy.io/reference/workflow-components/steps#import-package) steps to upload files into Chassy Index when needed.

Add a [Provision Setup](https://docs.chassy.io/reference/workflow-components/steps#provisioning) step to select your remote proxy device, and provide details on how you want the connected boards to be set up. Run the workflow when completed.

<figure><img src="https://2391222196-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fbwi13HaBqeFSGqsnJ8aD%2Fuploads%2Fg7I4lFXGMv8qM0nMrIME%2Fimage.png?alt=media&#x26;token=3ca0166b-739c-4481-b579-3739c31972fd" alt="A screenshot of the Provision Setup step and its details"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Connect a Board to your Remote Proxy

Going back to the **Remote Proxies** tab on the Fleet panel, you should see your remote proxy machine and its status.

Put your board into recovery mode, then connect it to your remote proxy machine using a USB cable. The provisioning process will automatically begin. On the Chassy Console, you can see which provisioning phase the connected board is on: `Attached`, `Flashing`, `Configuring`, `Verifying`, `Succeeded`, `Error`, `Terminated`, or `Timed out`.

For connected boards that got `Error` , `Terminated` , or `Timed out` , you can restart the provisioning process by clicking on the restart button.

{% hint style="info" %}
Jetson boards have to be in recovery mode for it to be auto-detected and flashed by the remote proxy.
{% endhint %}
{% endstep %}

{% step %}

### Success! Your connected board is booting up.

The connected board will automatically reboot once the process is complete.
{% endstep %}
{% endstepper %}
