docs/server-os/posts/01-alpine-install.md: update
Added post installation section, consisting of repository setup, firmware and drivers installation, swap setup and user setup.
This commit is contained in:
parent
880e54bde5
commit
81bd613c6c
1 changed files with 126 additions and 3 deletions
|
@ -1,13 +1,13 @@
|
||||||
---
|
---
|
||||||
title: Alpine Linux base installation
|
title: Alpine Linux base installation
|
||||||
slug: alpine-linux-base-install
|
slug: alpine-linux-base-install
|
||||||
date: 2024-08-30
|
date: 2024-08-12
|
||||||
draft: false
|
draft: false
|
||||||
authors:
|
authors:
|
||||||
- luc
|
- luc
|
||||||
|
- nils
|
||||||
tags:
|
tags:
|
||||||
- Alpine Linux
|
- Alpine Linux
|
||||||
- Linux
|
|
||||||
categories:
|
categories:
|
||||||
- Base installation
|
- Base installation
|
||||||
---
|
---
|
||||||
|
@ -336,4 +336,127 @@ sh# exit
|
||||||
sh# umount -lf /mnt
|
sh# umount -lf /mnt
|
||||||
sh# zpool export rpool
|
sh# zpool export rpool
|
||||||
sh# reboot
|
sh# reboot
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Post installation
|
||||||
|
|
||||||
|
### Repositories
|
||||||
|
|
||||||
|
To set the correct repositories configure:
|
||||||
|
|
||||||
|
``` shell title="/etc/apk/repositories"
|
||||||
|
https://dl-cdn.alpinelinux.org/alpine/latest-stable/main
|
||||||
|
https://dl-cdn.alpinelinux.org/alpine/latest-stable/community
|
||||||
|
```
|
||||||
|
|
||||||
|
This will use the latest stable repository of Alpine (for example `v3.19`). To use a different version of Alpine simply change `latest-stable` to whatever version you want. Do note that you cannot (easily) downgrade your system's version.
|
||||||
|
|
||||||
|
There is also the `edge` repository which contains the latest packages, but is not recommended, due to the instability it imposes on the system.
|
||||||
|
|
||||||
|
> If a package is not yet in a stable release one may additionally configure:
|
||||||
|
>
|
||||||
|
> ``` shell title="/etc/apk/repositories"
|
||||||
|
> @<repository> https://dl-cdn.alpinelinux.org/alpine/edge/<repository>
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> for the relevant `<repository>` and perform:
|
||||||
|
>
|
||||||
|
> ``` shell-session
|
||||||
|
> sh# apk add <package>@<repository>
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> for the relevant `<package>`.
|
||||||
|
|
||||||
|
### Firmware and drivers
|
||||||
|
|
||||||
|
Install the device firmware for either AMD or Intel:
|
||||||
|
|
||||||
|
=== "AMD"
|
||||||
|
|
||||||
|
``` shell-session
|
||||||
|
sh# apk add amd-ucode
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Intel"
|
||||||
|
|
||||||
|
``` shell-session
|
||||||
|
sh# apk add intel-ucode
|
||||||
|
```
|
||||||
|
|
||||||
|
To make sure it is included during boot, regenerate the UKI with:
|
||||||
|
|
||||||
|
``` shell-session
|
||||||
|
sh# apk fix kernel-hooks
|
||||||
|
```
|
||||||
|
|
||||||
|
### Swap
|
||||||
|
|
||||||
|
To configure Swap install `zram-init`:
|
||||||
|
|
||||||
|
``` shell-session
|
||||||
|
sh# apk add zram-init
|
||||||
|
```
|
||||||
|
|
||||||
|
and add it to the default runlevel:
|
||||||
|
|
||||||
|
``` shell-session
|
||||||
|
sh# rc-update add zram-init default
|
||||||
|
```
|
||||||
|
|
||||||
|
Configure `zram-init` by editing:
|
||||||
|
|
||||||
|
``` shell title="/etc/conf.d/zram-init"
|
||||||
|
num_devices=<n>
|
||||||
|
|
||||||
|
# swap - 500M
|
||||||
|
|
||||||
|
#size0=512
|
||||||
|
size0=`LC_ALL=C free -m | awk '/^mem:/{print int($2/4)}'`
|
||||||
|
```
|
||||||
|
|
||||||
|
Now the size of the swap device will be one fourth of the ram size.
|
||||||
|
|
||||||
|
### Users
|
||||||
|
|
||||||
|
To run applications securely, in an environment with fewer privileges, a user is necessary.
|
||||||
|
|
||||||
|
Before creating the user, install `doas`. To be able to "do as" root when it is required:
|
||||||
|
|
||||||
|
``` shell-session
|
||||||
|
sh# apk add doas
|
||||||
|
```
|
||||||
|
|
||||||
|
and configure `doas` by editing:
|
||||||
|
|
||||||
|
``` shell title="/etc/doas.d/wheel.conf"
|
||||||
|
permit persist :wheel as root
|
||||||
|
```
|
||||||
|
|
||||||
|
A user can be added in Alpine Linux with the `setup-user` script. Here we can specify the name, groups and more:
|
||||||
|
|
||||||
|
```
|
||||||
|
# setup-user -g wheel <username>
|
||||||
|
# passwd <username>
|
||||||
|
```
|
||||||
|
|
||||||
|
You may have to change the shell of the user in `/etc/passwd` from `/sbin/nologin` to a shell from `/etc/shells`. Alpine Linux comes with `/bin/ash` by default:
|
||||||
|
|
||||||
|
``` shell title="/etc/passwd"
|
||||||
|
<username>:x:1234:1234:<Full Name>:/home/<username>:/bin/<shell>
|
||||||
|
```
|
||||||
|
|
||||||
|
If you have checked that `doas` works with the user then you can lock the root account because it imposes security risks if it is kept open. This can be done with:
|
||||||
|
|
||||||
|
```
|
||||||
|
# passwd -l root
|
||||||
|
```
|
||||||
|
|
||||||
|
and by changing its login shell to:
|
||||||
|
|
||||||
|
``` shell title="/etc/passwd"
|
||||||
|
root:x:0:0:root:/root:/sbin/nologin
|
||||||
|
```
|
||||||
|
|
||||||
|
## Concluding remarks
|
||||||
|
|
||||||
|
This is essentially it, you now have a fully operational alpine base system running, configured for server use. The next steps are the optimisation of the security of the system and the configuration of the container management software.
|
Loading…
Add table
Add a link
Reference in a new issue