Skip to content

Commit 8aa0c76

Browse files
committed
Updates for installation and remove pre-release auto command
Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
1 parent 3fbd749 commit 8aa0c76

2 files changed

Lines changed: 74 additions & 159 deletions

File tree

docs/getting-started/install.md

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,77 @@
11
# Installation for Slicer for Linux
22

3-
Don't wait for the perfect system. Slicer can run practically anywhere.
3+
Looking for Slicer for Mac? See the [Slicer for Mac installation guide](/mac/installation).
44

5-
To activate Slicer, pick the tier that matches your use-case on the [Slicer pricing page](https://slicervm.com/pricing). A free trial is available.
5+
## System requirements
66

7-
If you need Slicer for Mac instead, use the [Slicer for Mac installation guide](/mac/installation) first.
7+
You can run Slicer on a varied range of hardware, from mini PCs, to your Mac, to cloud-based VMs with nested virtualisation support.
88

9-
After the installation, when you run `slicer activate` you'll get an invite link to the Discord server. We highly recommend joining.
9+
* Bare-metal or nested virtualisation
10+
* x86_64 or Arm64 (including Raspberry Pi)
11+
* Ubuntu LTS is the preferred/supported OS (Debian, and RHEL-like should also work)
1012

11-
## System requirements
13+
See the [appendix](#appendix) for suggested local hardware and cloud-based options.
1214

13-
Any reasonably modern computer can run Slicer, the requirements are very low - x86_64 or Arm64 (including the Raspberry Pi).
15+
Slicer is designed to run on a basic OS installation, without Docker, Kubernetes, or other virtualisation tools. Slicer installs and manage its own dependencies, such as Firecracker, Cloud Hypervisor, and containerd.
1416

15-
Ideal for labs and the home office:
17+
## Quick installation
1618

17-
* Low powered mini PC i.e. [Intel N100](https://blog.alexellis.io/n100-mini-computer/), Beelink, Minisforum, Acemagic, etc
18-
* [Adlink Ampere Developer Platform](https://www.adlinktech.com/Products/computer_on_modules/COM-HPC-Server-Carrier-and-Starter-Kit/Ampere_Altra_Developer_Platform?lang=en) / [system76 Thelio Astra](https://system76.com/desktops/thelio-astra-a1.1-n1/configure) / [Raspberry Pi 4 or 5](https://www.raspberrypi.com/products/raspberry-pi-5/) (an NVMe is better than SD card)
19-
* Mac Mini M1 or M2 (with [Asahi Linux](https://asahilinux.org/) installed)
20-
* PC, laptop, or used server from eBay - under your desk or in your basement.
19+
The default slicer installation only enables support for [`image` storage](/storage/overview). Additional storage backends for [zfs](/storage/zfs) or [devmapper](/storage/devmapper) can be enabled using the `--zfs` and `--devmapper` flags. See [Snapshot-based storage](#snapshot-based-storage).
2120

22-
Cloud-based bare-metal:
21+
```sh
22+
curl -sLS https://get.slicervm.com | sudo bash
23+
```
2324

24-
* [Hetzner bare-metal](https://www.hetzner.com/bare-metal-server) aka "robot" (cheapest, best value)
25-
* [Phoenix NAP](https://phoenixnap.com/bare-metal-cloud/instances)
26-
* [Latitude.sh](https://www.latitude.sh/features)
25+
> See also: [installation script](https://github.com/slicervm/slicervm.com/blob/master/get.sh)
2726
28-
Additional cloud-based options for KVM are [included on this page on our sister site (Actuated)](https://docs.actuated.com/provision-server/)
27+
The installer sets up [Firecracker](https://firecracker-microvm.github.io), [Cloud Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor), [containerd](https://containerd.io/) for storage, and a few networking options.
2928

30-
Enterprise:
29+
**Setup the license key**
3130

32-
* On-premises datacenter with your own bare-metal servers
33-
* OpenStack / VMware (with nested virtualisation)
34-
* Azure, DigitalOcean, GCP VMs (with nested virtualisation)
31+
If you have a subscription for Slicer Individual, Team or Platform, then you'll have received a license key via email. Save it to ~/.slicer/LICENSE`. This license will not expire, so long as your subscription remains active.
3532

36-
A Linux system with KVM is required (bare-metal or nested virtualisation), so if you see `/dev/kvm`, Slicer will work there.
33+
If you're paying for Slicer Individual via GitHub Sponsors, then after installation, you should run `slicer activate` to link your GitHub account to your Slicer installation. The keys for sponsors last for 30 days, but can be refreshed using the same command.
3734

38-
Ubuntu LTS is formally supported, whilst Debian, Fedora, RHEL-like Operating Systems (Rocky, Alma, CentOS), and Arch Linux should work - we won't be able to debug your system.
35+
Next, start your first VM with the [walk through](/getting-started/walkthrough).
3936

40-
Ideally, nothing else should be installed on a host that runs Slicer. It should be thought of as a basic appliance - a bare OS, with minimal packages.
37+
For production, use [snapshot based storage](#snapshot-based-storage) for near-instance VM creation times.
4138

42-
## Quick installation
39+
### Updating slicer
4340

44-
The default slicer installation only enables support for [`image` storage](/storage/overview). Additional storage backends for [zfs](/storage/zfs) or [devmapper](/storage/devmapper) can be enabled using the `--zfs` and `--devmapper` flags. See [Snapshot-based storage](#snapshot-based-storage).
41+
To update Slicer, use the `slicer update` command:
4542

46-
```sh
47-
curl -sLS https://get.slicervm.com | sudo bash
43+
```bash
44+
sudo slicer update
4845
```
4946

50-
The installer sets up [Firecracker](https://firecracker-microvm.github.io), [Cloud Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor), [containerd](https://containerd.io/) for storage, and a few networking options.
47+
## Appendix
5148

52-
> Feel free to read/verify [the installation script](https://get.slicervm.com) before running it.
49+
### Local hardware for Slicer
5350

54-
Additional storage backends can always be enabled later by running the installer again with the appropriate flags.
51+
Ideal for labs/or and the home office:
5552

56-
If you have a subscription for Slicer Individual, Team or Platform, then you'll have received a license key via email. Save it to ~/.slicer/LICENSE`.
53+
* Low powered mini PC i.e. [Intel N100](https://blog.alexellis.io/n100-mini-computer/), Beelink, Minisforum, Acemagic, etc
54+
* [Adlink Ampere Developer Platform](https://www.adlinktech.com/Products/computer_on_modules/COM-HPC-Server-Carrier-and-Starter-Kit/Ampere_Altra_Developer_Platform?lang=en) / [system76 Thelio Astra](https://system76.com/desktops/thelio-astra-a1.1-n1/configure) / [Raspberry Pi 4 or 5](https://www.raspberrypi.com/products/raspberry-pi-5/) (an NVMe is better than SD card)
55+
* Mac Mini M1 or M2 (with [Asahi Linux](https://asahilinux.org/) installed)
56+
* PC, laptop, or used server from eBay - under your desk or in your basement.
5757

58-
If you're using the GitHub Sponsors bundle for SlicerVM, K3sup Pro and Superterm, then you can run `slicer activate` to obtain a key with your GitHub account. The key will last for 30 days, but can be refreshed via `slicer activate`. When refreshing, it'll use the stored GitHub token, instead of running the device flow again.
58+
### Cloud options for Slicer
5959

60-
Next, start your first VM with the [walk through](/getting-started/walkthrough).
60+
Cloud-based bare-metal:
6161

62-
## Snapshot-based storage
62+
* [Hetzner bare-metal](https://www.hetzner.com/bare-metal-server) aka "robot" (cheapest, best value)
63+
* [Phoenix NAP](https://phoenixnap.com/bare-metal-cloud/instances)
64+
* [Latitude.sh](https://www.latitude.sh/features)
65+
66+
Enterprise:
67+
68+
* On-premises datacenter with your own bare-metal servers
69+
* OpenStack / VMware (with nested virtualisation)
70+
* Azure, DigitalOcean, GCP VMs (with nested virtualisation)
71+
72+
Additional cloud-based options for KVM are [included on this page on our sister site (Actuated)](https://docs.actuated.com/provision-server/)
73+
74+
### Snapshot-based storage
6375

6476
Snapshot-based storage is not required for development and testing, instead, it's recommended that most users use the `image` storage approach instead, until they want to trade a little extra setup, for much improved VM disk clone times.
6577

@@ -100,17 +112,3 @@ curl -sLS https://get.slicervm.com | sudo bash -s -- \
100112

101113
The `--devmapper` and `--zfs` flags can be used together to enable both storage backends.
102114

103-
## Updating slicer
104-
105-
To update Slicer, use the `slicer update` command:
106-
107-
```bash
108-
sudo slicer update
109-
```
110-
111-
Alternatively, if you're on an earlier version, repeat this command from the installation step:
112-
113-
```bash
114-
sudo arkade oci install ghcr.io/openfaasltd/slicer:latest \
115-
--path /usr/local/bin
116-
```

docs/getting-started/walkthrough.md

Lines changed: 28 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -60,158 +60,75 @@ sudo slicer up ./vm-image.yaml
6060

6161
Having customised the `github_user` to your own username, your SSH keys will have been fetched from your profile, and preinstalled into the VM.
6262

63-
On your workstation, add any routes that are specified so you can access the VMs on their own network.
63+
**Getting a shell**
6464

65-
If you need to get the route output back again, you can use the `slicer vm route` command on the host itself, specifying the config file as the argument.
65+
You can get an interactive shell with `slicer vm shell` - this is the simplest option and can be run directly on the host, or from another machine over the network if you have the API bound to a TCP address.
6666

67-
Never run any route commands outputted by Slicer on the host itself. It's not required and will break the networking.
67+
When using `bridge` networking, you can run the routing commands printed out on start-up or via `slicer route` on another machine. then you can connect via SSH i.e. `ssh ubuntu@192.168.137.2`.
6868

69-
Then, you can connect with SSH:
69+
Do not run the route commands on the host itself because it'll break the networking.
7070

71-
```bash
72-
ssh ubuntu@192.168.137.2
73-
```
74-
75-
## Quick start with slicer auto
71+
## View the serial console
7672

77-
If you want to skip the configuration step, use `slicer auto`:
73+
The logs from the serial console including the output from the boot process are available on disk:
7874

79-
```bash
80-
sudo slicer auto
8175
```
76+
$ sudo tail -f /var/log/slicer/vm-1.txt
8277
83-
This will:
84-
85-
* Auto-detect a free bridge network range from `10.0.0.0/8` that doesn't conflict with your existing interfaces
86-
* Pick a random API port (so multiple instances don't clash)
87-
* Import your SSH keys from `~/.ssh/*.pub`
88-
* Write an `auto.yaml` config in the current directory
89-
* Start the API server ready for VMs to be launched
90-
91-
The API port is printed on startup and written to `auto.yaml` for reference.
92-
93-
To launch a VM, open a new terminal and run:
78+
Starting OpenBSD Secure Shell server...
79+
[ OK ] Started OpenBSD Secure Shell server.
80+
[ OK ] Reached target Multi-User System.
81+
[ OK ] Reached target Graphical Interface.
82+
Starting Record Runlevel Change in UTMP...
83+
[ OK ] Finished Record Runlevel Change in UTMP.
9484
95-
```bash
96-
export SLICER_URL="http://127.0.0.1:PORT"
97-
export SLICER_TOKEN_FILE="/var/lib/slicer/auth/token"
85+
Ubuntu 22.04.5 LTS vm-1 ttyS0
9886
99-
slicer vm add
87+
vm-1 login:
10088
```
10189

102-
Replace `PORT` with the port shown in the `auto.yaml` file or the startup output.
103-
104-
### Flags
105-
106-
| Flag | Default | Description |
107-
|---|---|---|
108-
| `--count` | `0` | Number of VMs to pre-start (0 means API-only, launch with `slicer vm add`) |
109-
| `--ram` | `4` | RAM in GiB per VM |
110-
| `--cpu` | `2` | vCPUs per VM |
111-
| `--isolated` | `false` | Use isolated networking instead of bridge |
112-
| `--ssh-key` | | SSH public key(s) to add (can be repeated) |
113-
| `--github` | | GitHub username to import SSH keys from |
114-
| `--find-ssh-keys` | `true` | Scan `~/.ssh/` for public keys |
115-
| `--api-port` | auto | Explicit API server port (default: auto-assign free port) |
116-
| `--api-bind` | `127.0.0.1` | API bind address or unix socket path |
117-
| `--socket` | `false` | Use a unix socket at `./auto.sock` instead of TCP |
118-
| `--kernel` | | Path to a custom kernel, or leave blank to extract one from the rootfs |
119-
120-
### Examples
121-
122-
Pre-start VMs with the daemon instead of launching them separately:
90+
If you want to tail the logs from all available VMs at once, use `fstail` via `arkade get fstail`:
12391

12492
```bash
125-
sudo slicer auto --count=1
126-
127-
sudo slicer auto --count=3 --ram=8 --cpu=4
93+
sudo -E fstail /var/log/slicer/
12894
```
12995

130-
SSH keys from `~/.ssh/*.pub` on the host are imported automatically. You can also import keys from a GitHub profile:
96+
Additionally, you can run `slicer vm logs`.
13197

132-
```bash
133-
sudo slicer auto --github=alexellis
134-
```
98+
## Managing VMs
13599

136-
Use isolated networking (no bridge, access VMs via `slicer vm exec` / `slicer vm forward`):
100+
Copy a file to the VM:
137101

138102
```bash
139-
sudo slicer auto --isolated
103+
slicer vm cp ./file vm-1:~/file
140104
```
141105

142-
Use a unix socket instead of TCP for the API:
106+
Copy a file back to the host:
143107

144108
```bash
145-
sudo slicer auto --socket
109+
slicer vm cp vm-1:~/file ./file
146110
```
147111

148-
Set a fixed API port instead of auto-assigning:
112+
Copy a folder to the VM:
149113

150114
```bash
151-
sudo slicer auto --api-port=9090
115+
slicer vm cp --mode=tar ~/go/src/github.com/alexellis/arkade vm-1:~/arkade
152116
```
153117

154-
### Re-run behavior
155-
156-
On subsequent runs, `sudo slicer auto` reuses the existing `auto.yaml` - including the same port and CIDR. Pass any flag (like `--count=3`) to regenerate it with new settings.
157-
158-
The generated `auto.yaml` is a standard Slicer config - you can inspect or edit it to learn the format, then graduate to `slicer new` + `slicer up` for full control over networking, storage, and naming.
159-
160-
## Ignore changing SSH host keys
161-
162-
If, like the developers of Slicer, you'll be re-creating many hosts with the same IP addresses, you have two options:
163-
164-
* Memorise and get familiar with the `ssh-keygen -R <ip-address>` command
165-
* Or add the following to your `~/.ssh/config` file to stop it complaining
166-
167-
```
168-
Host 192.168.137.*
169-
StrictHostKeyChecking no
170-
UserKnownHostsFile /dev/null
171-
GlobalKnownHostsFile /dev/null
172-
CheckHostIP no
173-
LogLevel QUIET
174-
User ubuntu
175-
```
176-
177-
Repeat it once for each IP range you use with Slicer.
178-
179-
And bear in mind that you should not do this for production or long-running hosts.
180-
181-
## View the serial console
182-
183-
The logs from the serial console including the output from the boot process are available on disk:
184-
185-
```
186-
$ sudo tail -f /var/log/slicer/vm-1.txt
187-
188-
Starting OpenBSD Secure Shell server...
189-
[ OK ] Started OpenBSD Secure Shell server.
190-
[ OK ] Reached target Multi-User System.
191-
[ OK ] Reached target Graphical Interface.
192-
Starting Record Runlevel Change in UTMP...
193-
[ OK ] Finished Record Runlevel Change in UTMP.
194-
195-
Ubuntu 22.04.5 LTS vm-1 ttyS0
196-
197-
vm-1 login:
198-
```
199-
200-
If you want to tail the logs from all available VMs at once, use `fstail` via `arkade get fstail`:
118+
Copy a folder back to the host:
201119

202120
```bash
203-
sudo -E fstail /var/log/slicer/
121+
slicer vm cp --mode=tar vm-1:~/arkade ~/go/src/github.com/alexellis/arkade
204122
```
205123

206-
## Managing VMs
207124

208125
List running VMs:
209126

210127
```bash
211128
slicer vm list
212129
```
213130

214-
Launch additional VMs without restarting the daemon:
131+
Launch ephemeral VMs:
215132

216133
```bash
217134
slicer vm add

0 commit comments

Comments
 (0)