Bring your first server
At the end of this guide, a Linux server you already run is part of Frazer: one command from your laptop has installed the agent, checked the server’s code and accepted it, Frazer has inspected it, and it is Available in a pool of your organization’s host project. Nothing on the server is wiped, and you keep its operating system.
You need:
- A Frazer organization. Every organization has a host project named after it,
acme-infrafor Acme, where servers, sites and pools live. - The Servers admin role (
roles/servers.admin) on the host project. - A Linux server you can reach with
sshas root, or as a user withsudo, running Ubuntu 22.04 or 24.04, Debian 12 or 13, or Rocky Linux or RHEL 9 or 10, with at least an x86-64-v2 CPU with 8 cores, 32 GB of memory (16 GB for a trial) and a 240 GB SSD to boot from. - Outbound access from the server on TCP 443 and UDP 51820 (or 443 only), NTP and DNS. No inbound port is opened for Frazer, and an HTTP(S) proxy works.
Add the server
Section titled “Add the server”-
Install the CLI and sign in on your laptop.
Terminal window curl -fsSL https://get.frazer.ai | shfrazer loginfrazer loginopens your browser. On a machine without one, runfrazer login --no-browserand enter the code it prints athttps://console.frazer.ai/device. -
Check that SSH works.
ssh root@203.0.113.10should log you in. The CLI runs your ownsshclient, so your keys, agent,~/.ssh/configaliases and jump hosts work as they do now, and the server’s host key is checked against yourknown_hosts. -
Pick the site and the pool. A site is where the server sits: one failure domain, such as an office, a rack or a provider data center. This guide uses the site
sf-officeand its poolsf-office-default; create them in the console under Infrastructure › Sites if they do not exist yet. -
Add the server.
Terminal window frazer servers add root@203.0.113.10 --site sf-office --pool sf-office-defaultThe CLI creates a join token for this run only: single use, short-lived and bound to the site and pool. A join token can only make a server appear as pending; it grants nothing else, and your own Frazer credentials never leave your laptop. Over SSH, the CLI runs the signed install script, which checks the signatures of itself and the agent before it installs anything. The agent runs its preflight checks, generates the server’s machine key on the server (sealed in the TPM when there is one) and prints a fingerprint and a 6-character code. The CLI reads the code over the same SSH session, so it knows the pending server is the machine you reached, and accepts it as you:
Output ✓ SSH root@203.0.113.10 · Ubuntu 24.04 · host key known✓ Join token sf-office · sf-office-default · single use · for this run only✓ Agent installed from get.frazer.ai/node · signature verified✓ Preflight kernel · cgroups v2 · clock · swap · disk · 443✓ Machine key generated on the server · TPM-sealed→ Fingerprint TPM EK 9f3a…c41e✓ Code H4K-7NP read over SSH · accepted by lena@acme.example · audit entryinspecting … availableAccepting gives the server a 24-hour certificate, renewed while it stays healthy. With it, Frazer can send typed operations only: inventory, health, join a cluster, reboot in your maintenance window. There is no shell, and a wipe or reinstall always needs your approval. The accept is recorded in the audit log with the fingerprint and the token used.
From the moment you accept, the server is metered per physical core, by the hour; hyperthreads never count. See pricing.
-
Watch it become available. The command waits while the server is Inspecting, which runs six checks: certificate, inventory, disk health, operating system, network test and available. Burn-in is optional for a server you bring. When the checks pass, the server is Available: healthy and schedulable.
-
See it in the pool. Open Infrastructure › Pools and select
sf-office-default: the server is listed with its state, site and agent. From your laptop:Terminal window frazer servers server-pools list --project acme-infraOn the server,
sudo frazer-nodelet statusshows the agent’s own view. The agent sends a heartbeat every 30 seconds and listens on no network port except localhost.
Other ways to run it
Section titled “Other ways to run it”-
On the server itself. Install the CLI on the server, sign in with
frazer login --no-browser, then runsudo frazer servers add --site sf-office --pool sf-office-defaultwith no destination. -
Someone else accepts. Add
--no-accept, or run the command without the Servers admin role: the server waits as Pending in the console’s Waiting for servers panel, with its code, its fingerprint, the hardware it detected and the preflight results. An admin compares the code with the one the command printed, then chooses Accept. Reject deletes the record and blocks the fingerprint. -
Automation and cloud-init. Create a join token in Infrastructure › Servers › Add server › Run install command or with
frazer servers join-tokens create, and run the line it gives in the server’s cloud-init or your configuration management:Terminal window curl -fsSL https://get.frazer.ai/node | sudo sh -s -- --token <join-token> --site sf-officeThe token expires in 24 hours by default (30 days at most), has a use limit and can be revoked. The server waits as pending until a person, or a pool rule, accepts it.
If the server does not appear
Section titled “If the server does not appear”Run sudo frazer-nodelet diagnose on the server. The usual causes:
- SSH fails. The CLI stops before it changes anything and prints
ssh’s own error. Check thatssh root@203.0.113.10works on its own. - Outbound 443 is blocked. Set
HTTPS_PROXYon the server and runfrazer servers addagain. - The clock is more than 5 minutes off. Fix time sync, then run the command again.
- The token was used or has expired (install command). Create a new one and run the line with it;
frazer servers addmakes a fresh token on every run. - The server joined Frazer before. The console offers to re-attach it to its existing record instead of creating a second one.
Take the server back
Section titled “Take the server back”Detach the server in the console, or run this on the server; it works even when Frazer is unreachable:
sudo frazer-nodelet detachFrazer’s components and credentials are removed, and you choose whether to keep the disks, reset state or crypto-erase them. Billing stops, and the record stays for the audit log.