fleet/docs/Deploy/deploy-fleet.md
Brock Walters 69b284f98e
Update deploy-fleet.md (#22959)
Cleaned up instructions.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files)
for more information.
- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for
new osquery data ingestion features.
- [ ] Added/updated tests
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes
- [ ] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [ ] Manual QA for all new/changed functionality
- For Orbit and Fleet Desktop changes:
- [ ] Orbit runs on macOS, Linux and Windows. Check if the orbit
feature/bugfix should only apply to one platform (`runtime.GOOS`).
- [ ] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [ ] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2024-10-16 11:36:52 -05:00

5.2 KiB
Raw Blame History

Deploy Fleet

Deploy to Render for an easy one-click proof of concept. Or, choose AWS with Terraform to deploy at scale. Just need to kick the tires? Try Fleet locally on your device.

Looking for other deployment options? Check out the guides.

Render

Deploy to Render in 5 minutes

Render is a cloud hosting service that makes it easy to get up and running fast, without the typical configuration headaches of larger enterprise hosting providers.

Prerequisites

  • A Render account with payment information.

The Fleet Render Blueprint will provision a web service, a MySQL database, and a Redis in-memory data store. Each service requires Render's standard plan at a cost of $7/month each, totaling $21/month.

Instructions

  1. Click "Deploy to Render" to open the Fleet Blueprint on Render. Ensure that the Redis instance is manually set to the same region as your other resources. You will be prompted to create or log in to your Render account with associated payment information.

  2. Give the Blueprint a unique name like yourcompany-fleet.

  3. Click "Deploy Blueprint." Render will provision your services, which should take less than five minutes.

  4. Click the "Dashboard" tab in Render when provisioning is complete to see your new services.

  5. Click on the "Fleet" service to reveal the Fleet URL.

  6. Click on the URL to open your Fleet instance, then follow the on-screen instructions to set up your Fleet account.

Support for add/install software features is coming soon. Get commmunity support.

AWS

Deploy at scale with AWS and Terraform

The simplest way to get started with Fleet at scale is to use AWS with Terraform.

This workflow takes about 30 minutes to complete and supports between 10 and 350,000 hosts.

Prerequisites

  • A new or existing Amazon Web Services (AWS) account

  • An AWS Identity and Access Management (IAM) user with administrator privileges

  • The latest version of AWS Command Line Interface awscli

  • The latest version of HashiCorp Terraform

  • A Fully-Qualified Domain Name (FQDN) for hosting Fleet

Instructions

  1. Download the Fleet main.tf Terraform file.

  2. Edit the following variables in the main.tf Terraform file you just downloaded to match your environment:

    # Change these to match your environment.
    domain_name = "fleet.example.com"
    vpc_name = "fleet-vpc"
    osquery_carve_bucket_name   = "fleet-osquery-carve"
    osquery_results_bucket_name = "fleet-osquery-results"
    osquery_status_bucket_name  = "fleet-osquery-status"
    

    Terraform modules for Fleet features can be enabled and disabled by commenting or uncommenting sections of the code as needed. To learn more about the modules, check out our AWS with Terraform advanced guide.

  3. Log in to your AWS account using your IAM identity.

  4. Run a command like the following in Terminal:

    % terraform init ~/Downloads/main.tf
    

    If the file was not downloaded to the downloads folder, ensure that you adjust the file path in the command.

    This step will take around 15 minutes.

  5. Run the following command in Terminal:

    terraform apply -target module.fleet.module.vpc
    
  6. Run the following command in Terminal:

    terraform apply -target module.osquery-carve -target module.firehose-logging
    
  7. Log in to your AWS Route 53 instance

  8. Run the following command in Terminal:

    terraform apply -target aws_route53_zone.main
    
  9. From the Terminal output, obtain the NS records created for the zone and add them to the parent DNS zone in the AWS Route 53 GUI.

  10. Run the following command in Terminal:

    terraform apply -target module.fleet
    
  11. Run the following command in Terminal:

    terraform apply
    
  12. Thats it! You should now be able to log in to Fleet and enroll a host.