Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Fleet as a method to deploy Cloudflare WARP client #17606

Merged
merged 8 commits into from
Nov 13, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
pcx_content_type: how-to
title: Fleet
sidebar:
order: 1
---

This guide covers how to deploy the Cloudflare WARP client using [Fleet](https://fleetdm.com/) device management software.

## macOS

### 1. Create a custom MDM file

1. [Download](/cloudflare-one/static/mdm/CloudflareWARP.mobileconfig) an example `.mobileconfig` file.
2. Modify the file with your desired [deployment parameters](/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/parameters/).

### 2. Upload MDM file to Fleet

1. In the Fleet admin console, go to **Controls**.
2. From the **Teams** dropdown, select the team (group of hosts) that requires Cloudflare WARP.
3. Select **OS settings** > **Custom settings**.
4. Select **Add profile** and upload the custom `.mobileconfig`.
5. Select the hosts which require Cloudflare WARP:
- **All hosts**: Deploys WARP to all hosts in the team.
- **Custom**: Deploys WARP to a subset of the hosts in the team. Use [labels](https://fleetdm.com/guides/managing-labels-in-fleet#basic-article) to define the hosts that should be included or excluded.
6. Select **Add profile**.

The defined hosts will immediately receive the deployment profile, but WARP is not yet installed.

### 3. Download WARP package for macOS

Visit the [Download page](/cloudflare-one/connections/connect-devices/warp/download-warp/#macos) to review system requirements and download the installer for your operating system.

### 4. Upload WARP package to Fleet

To add the WARP client installer package for distribution to your hosts enrolled in Fleet:

1. In the Fleet admin console, go to **Software**.
2. From the **Teams** dropdown, select the team (group of hosts) that requires Cloudflare WARP.
3. Select **Add Software** and upload the `.pkg` file that was previously downloaded.

### 5. Install WARP with Fleet

To deploy the uploaded `.pkg` file to your hosts:

1. In the Fleet admin console, go to **Hosts**.
2. Select the host that requires the WARP client.
3. Go to **Software** and search for `Cloudflare`.
4. Select **Actions** > **Install**.

Installation will happen automatically when the host comes online. To deploy with REST API or GitOps, refer to the [Fleet documentation](https://fleetdm.com/guides/deploy-software-packages).

### 6. Uninstall WARP with Fleet

To uninstall the Fleet-deployed WARP client:

1. In the Fleet admin console, go to **Hosts**.
2. Select the host that requires the WARP client to be uninstalled.
3. Go to **Software** and search for `Cloudflare`.
4. Select **Actions** > **Uninstall**.

## Windows

### 1. Download WARP package for Windows

Visit the [Download page](/cloudflare-one/connections/connect-devices/warp/download-warp/#windows) to review system requirements and download the installer for your operating system.

### 2. Upload WARP package to Fleet

To add the WARP client installer package for distribution to your hosts enrolled in Fleet:

1. In the Fleet admin console, go to **Software**.
2. From the **Teams** dropdown, select the team (group of hosts) that requires Cloudflare WARP.
3. Select **Add Software** and upload the `.msi` file that was previously downloaded.
4. (Optional) To allow users to install WARP from Fleet Desktop, select **Self-service**.
5. Select **Advanced options**.
ranbel marked this conversation as resolved.
Show resolved Hide resolved
6. In **Install script**, replace the default script with the following:

```bash
$logFile = "${env:TEMP}/fleet-install-software.log"

try {

$installProcess = Start-Process msiexec.exe `
-ArgumentList "/quiet /norestart ORGANIZATION=your-team-name SUPPORT_URL=https://example.com /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait

Get-Content $logFile -Tail 500

Exit $installProcess.ExitCode

} catch {
Write-Host "Error: $_"
Exit 1
}
```

Refer to [deployment parameters](/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/parameters/) for a description of each argument.

### 3. Install WARP with Fleet

ranbel marked this conversation as resolved.
Show resolved Hide resolved
To deploy the uploaded `.pkg` file to your hosts:

1. In the Fleet admin console, go to **Hosts**.
2. Select the host that requires the WARP client.
3. Go to **Software** and search for `Cloudflare`.
4. Select **Actions** > **Install**.

Installation will happen automatically when the host comes online. To deploy with REST API or GitOps, refer to the [Fleet documentation](https://fleetdm.com/guides/deploy-software-packages).

### 4. Uninstall WARP with Fleet

To uninstall the Fleet-deployed WARP client:

1. In the Fleet admin console, go to **Hosts**.
2. Select the host that requires the WARP client to be uninstalled.
3. Go to **Software** and search for `Cloudflare`.
4. Select **Actions** > **Uninstall**.

## Linux

Fleet allows you to [execute custom scripts](https://fleetdm.com/guides/scripts) on Linux hosts. The following example script creates an [MDM file](/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/#linux) and installs WARP on an Ubuntu 22.04 host:

```sh
#!/bin/sh

# Write the mdm.xml file
touch /var/lib/cloudflare-warp/mdm.xml
echo -e "<dict>\n <key>organization</key>\n <string>your-team-name</string>\n</dict>
" > /var/lib/cloudflare-warp/mdm.xml

# Add cloudflare gpg key
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg

# Add this repo to your apt repositories
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list

# Install
sudo apt-get -y update && sudo apt-get -y install cloudflare-warp
```

To install WARP on other Linux distributions, refer to the [package repository](https://pkg.cloudflareclient.com/).
Loading