mirror-env/README.md

111 lines
3.2 KiB
Markdown
Raw Normal View History

2021-08-30 11:31:56 -04:00
# Mirror Env
2021-09-02 15:47:07 -04:00
This script helps quickly set up a vm development environment for cs club's mirrors.
2021-09-12 13:14:40 -04:00
## VM Installation Option 1 (qmeu-vm.yml)
2021-09-12 18:33:30 -04:00
**instructions need to be rewritten**
2021-09-02 15:47:07 -04:00
Install the following dependencies
- qemu
- genisoimage
- ovmf (find the location of OVMF\_CODE.fd, it is system dependent)
Edit the configuration variables in the script file to reflect your system.
The `mirror-vm` script will will automatically install ubuntu using the [autoinstall](https://ubuntu.com/server/docs/install/autoinstall) feature.
2021-08-31 22:48:50 -04:00
```
curl -O https://releases.ubuntu.com/20.04/ubuntu-20.04.2-live-server-amd64.iso
2021-09-02 15:47:07 -04:00
$ ./mirror-vm create
$ ./mirror-vm run-install
2021-08-31 22:48:50 -04:00
```
2021-09-02 15:47:07 -04:00
To view the vm, you also need a vnc viewer. [TigerVNC](https://github.com/TigerVNC/tigervnc) is a good choice. Simply run
```
$ vncviewer :5900
```
Due to the way the ubuntu autoinstall is designed, user confirmation is required to start the autoinstallation process. Enter `yes` when prompted with this line:
```
Continue with autoinstall (yes|no)
```
After going through the install process you can run the vm with
```
$ ./mirror-vm run
```
The default login user has
```
username: ubuntu
password: ubuntu
```
2021-09-12 13:14:40 -04:00
### Run Playbook
```
ansible-playbook qemu-vm.yml
```
## VM Install Option 2 (kvm)
### Install Packages (debian)
```
$ apt install qemu-kvm libvirt virt-install virt-viewer ansible
```
### Install Packages (archlinux)
```
$ pacman -S qemu libvirt virt-install virt-viewer ansible
```
### Run Playbook
```
ansible-playbook kvm-vm.yml
```
2021-09-02 15:47:07 -04:00
## Post-Installation
2021-09-11 23:56:31 -04:00
The ubunutu autoinstall can only handle basic installation. We require a more powerful tool to configure the post-install environment. For this reason, we will be using ansible.
First, install ansible and sshpass. Perform all the following commands in the `post-install/` directory.
2021-09-12 18:57:51 -04:00
Also install the extra roles
```
$ ansible-galaxy install -r requirements.yml
```
2021-09-11 23:56:31 -04:00
Check that ansible can talk to the vm:
```
$ ansible -m ping all
```
We can now complete the rest of the post-install with
```
$ ansible-playbook -K playbook.yml
```
2021-09-02 15:47:07 -04:00
## System Details
```
2021-09-12 13:14:40 -04:00
$ lsblk
2021-09-02 15:47:07 -04:00
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 10G 0 disk
├─vda1 252:1 0 500M 0 part /boot/efi
└─vda2 252:2 0 9G 0 part
└─md0 9:0 0 9G 0 raid1
└─vg0-root 253:0 0 8G 0 lvm /
vdb 252:16 0 10G 0 disk
├─vdb1 252:17 0 500M 0 part
└─vdb2 252:18 0 9G 0 part
└─md0 9:0 0 9G 0 raid1
└─vg0-root 253:0 0 8G 0 lvm /
vdc 252:32 0 10G 0 disk
├─vdc1 252:33 0 10G 0 part
└─vdc9 252:41 0 8M 0 part
vdd 252:48 0 10G 0 disk
├─vdd1 252:49 0 10G 0 part
└─vdd9 252:57 0 8M 0 part
vde 252:64 0 10G 0 disk
├─vde1 252:65 0 10G 0 part
└─vde9 252:73 0 8M 0 part
vdf 252:80 0 10G 0 disk
├─vdf1 252:81 0 10G 0 part
└─vdf9 252:89 0 8M 0 part
```
Drives vda and vdb are for the main filesystem, they use raid1. Drives vdc, vdd, vde and vdf are in a raidz2 zpool.