mirror of
https://github.com/PhyllomeOS/phyllomeos.git
synced 2024-12-22 13:05:17 +00:00
Improve the README.md
Test the deployment, break down the readme into sections
This commit is contained in:
parent
9bec88b4bb
commit
f52de41f32
134
README.md
134
README.md
@ -1,49 +1,52 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
# Phyllome OS
|
||||
|
||||
> Virtualization for the rest of us
|
||||
|
||||
### What ?
|
||||
## What ?
|
||||
|
||||
* This repository contains kickstart files for Phyllome itself and its RPM-based guests.
|
||||
* This repository contains the basic building blocks required for deploying [Phyllome OS](https://phyllo.me/) bare-metal or in a virtual machine using [kickstart](https://en.wikipedia.org/wiki/Kickstart_(Linux)) files.
|
||||
|
||||
### Examples
|
||||
## Development
|
||||
|
||||
* With a remotely hosted kickstart file, install a minimal Linux RPM-based operating system automatically on an UEFI-based, Q35 PCI Express virtual motherboard with virtio-devices.
|
||||
For development purposes, Phyllome OS can be deployed in a virtual machine, leveraging nested-virtualization.
|
||||
|
||||
Adjust settings according to your needs
|
||||
### Requirements
|
||||
|
||||
```
|
||||
virt-install \
|
||||
--connect qemu:///system \
|
||||
--name flat-dmd \
|
||||
--virt-type kvm \
|
||||
--arch x86_64 \
|
||||
--machine q35 \
|
||||
--boot uefi \
|
||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=2 \
|
||||
--vcpus 4 \
|
||||
--memory 8192 \
|
||||
--controller type=scsi,model=virtio-scsi \
|
||||
--disk path=/var/lib/libvirt/images/flat-dmd.img,format=raw,bus=virtio,cache=writeback,size=10 \
|
||||
--controller type=virtio-serial \
|
||||
--video virtio \
|
||||
--network network=default,model=virtio \
|
||||
--input type=keyboard,bus=virtio \
|
||||
--input type=tablet,bus=virtio \
|
||||
--rng /dev/urandom,model=virtio \
|
||||
--channel spicevmc \
|
||||
--autoconsole none \
|
||||
--sound none \
|
||||
--controller type=usb,model=none \
|
||||
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Everything/x86_64/os/ \
|
||||
--extra-args="inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/flat/flat-dmd.cfg"
|
||||
```
|
||||
* A x86_64 platform that supports hardware-assisted virtualization
|
||||
* A recent Linux Kernel (5.X)
|
||||
* The `virt-install` and `virt-manager` tools
|
||||
* `libvirt` and `qemu-kvm`up and running
|
||||
* Nested-virtualization enabled
|
||||
|
||||
### This one bellow works
|
||||
### Preparation
|
||||
|
||||
*Enable nested-virtualization* :
|
||||
|
||||
* For AMD-based systems
|
||||
|
||||
```to be done```
|
||||
|
||||
* For Intel-based systems
|
||||
|
||||
```to be done```
|
||||
|
||||
* For Fedora 34
|
||||
|
||||
*Install the prerequisites* :
|
||||
|
||||
```sudo dnf install -y qemu-kvm libvirt libvirt-daemon-config-network libvirt-daemon-kvm virt-install virt-top virt-manager libguestfs-tools python3-libguestfs guestfs-tools```
|
||||
|
||||
* For Ubuntu 20.4 or Debian 11
|
||||
|
||||
```To be done```
|
||||
|
||||
### Fire!
|
||||
|
||||
> Note : the following scripts relies on a kickstart tuned for Intel CPU and GPU, but may nonetheless on other systems.
|
||||
|
||||
This script will automatically deploy the alpha version of Phyllome OS, on a Q35 virtual motherboard, a UEFI-based firmware, virtio-devices accross the board, 2 vCPUs, 4 GB of RAM and a disk of 5 GB.
|
||||
|
||||
Adjust it according to your need. When ready, copy and paste it to your terminal and fire-up it up!
|
||||
|
||||
```
|
||||
virt-install \
|
||||
@ -51,11 +54,11 @@ virt-install \
|
||||
--virt-type kvm \
|
||||
--arch x86_64 \
|
||||
--machine q35 \
|
||||
--name flat-dmd \
|
||||
--name phyllome-alpha \
|
||||
--boot uefi \
|
||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=2 \
|
||||
--vcpus 4 \
|
||||
--memory 8192 \
|
||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
|
||||
--vcpus 2 \
|
||||
--memory 4096 \
|
||||
--video virtio \
|
||||
--channel spicevmc \
|
||||
--autoconsole none \
|
||||
@ -67,59 +70,20 @@ virt-install \
|
||||
--input type=keyboard,bus=virtio \
|
||||
--input type=tablet,bus=virtio \
|
||||
--rng /dev/urandom,model=virtio \
|
||||
--disk path=/var/lib/libvirt/images/flat-dmd.img,format=raw,bus=virtio,cache=writeback,size=5 \
|
||||
--disk path=/var/lib/libvirt/images/flat-dhimd.img,format=raw,bus=virtio,cache=writeback,size=5 \
|
||||
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Everything/x86_64/os/ \
|
||||
--extra-args="inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/flat/flat-dmd.cfg"
|
||||
--extra-args="inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/flat/flat-dhimd.cfg"
|
||||
```
|
||||
|
||||
--initrd-inject bmd.cfg --extra-args "inst.ks=file:/bmd.cfg"
|
||||
|
||||
### Basic building blocks
|
||||
|
||||
%include bmd.cfg # A minimal machine
|
||||
%include bdmd.cfg # A desktop environment
|
||||
%include bhmd.cfg # A base hypervisor
|
||||
%include bhamd.cfg # Specific virtualization configuration for AMD (tm) CPUs
|
||||
|
||||
### Explanation
|
||||
|
||||
```
|
||||
virt-install \
|
||||
--name flat-dmd \ # [Optionnal] name of the machine
|
||||
--connect qemu:///system \ # we connect to QEMU through the system socket ?
|
||||
--virt-type kvm \ # pick kvm VMM
|
||||
--arch x86_64 \ # x64 architecture
|
||||
--machine q35 \ # pci-express chipset enabled motherboard
|
||||
--boot uefi \ # boot type {bios;uefi?}
|
||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=2 \
|
||||
--vcpus 4 \ # vCPU number
|
||||
--memory 8192 \ # 8192 Mb of RAM
|
||||
--controller type=scsi,model=virtio-scsi \
|
||||
--disk path=/var/lib/libvirt/images/flat-dmd.img,format=raw,bus=virtio,cache=writeback,size=10 \ # Create a 10 GiB RAW image
|
||||
--controller type=virtio-serial \
|
||||
--video virtio \ # virtual grahicard card, aka virtio-gpu
|
||||
--network network=default,model=virtio \ # virtio NAT-based network
|
||||
--input type=keyboard,bus=virtio \ # virtio keyboard
|
||||
--input type=tablet,bus=virtio \ # virtio tablet/mouse
|
||||
--rng /dev/urandom,model=virtio \
|
||||
--channel spicevmc \ # use spice channel. Useful ?
|
||||
--autoconsole none \ # no auto connection to console on launch
|
||||
--sound none \ no sound emulation
|
||||
--controller type=usb,model=none \ no emulated USB controller
|
||||
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Everything/x86_64/os/ \
|
||||
--extra-args="inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/flat/flat-dmd.cfg"
|
||||
```
|
||||
|
||||
|
||||
### Licence
|
||||
|
||||
* [GENERAL PUBLIC LICENCE 3](./LICENSE)
|
||||
|
||||
### Acknowledgement
|
||||
|
||||
* Contributors of the official Fedora kickstart files repository, and direct inspiration for the automated, kickstart-based deployment :
|
||||
* I would like to thanks the main contributors of the official Fedora kickstart files repository, and related tools.
|
||||
|
||||
Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert,
|
||||
> Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert,
|
||||
Colin Walters, Fabian Affolter, Igor Pires Soares, Jens Petersen, Jeremy Katz, Jeroen van Meeuwen
|
||||
Jesse Keating, Luya Tshimbalanga, Matthias Clasen, Pedro Silva, Rahul Sundaram, Sebastian Dziallas
|
||||
Sebastian Vahl, wart. More information here : https://pagure.io/fedora-kickstarts
|
||||
|
Loading…
Reference in New Issue
Block a user