# Mirror Env This repo helps quickly set up a vm development environment for cs club's mirrors using ansible. There are three options for getting the mirror dev vm running: - qemu - libvirt - manual Follow the relevant instructions below. ## VM Installation Option 1 (qmeu) Install the following: - ansible - qemu - genisoimage - ovmf (find the location of OVMF\_CODE.fd, it is system dependent) Before doing anything else, edit the config files in `group_vars/` to your system's needs. For qemu installation specifically, you need to provide the location of your `OVMF_CODE.fd` file. To begin the setup process, in this repo's root, run: ``` $ ansible-playbook -K qemu/main.yml ``` Due to the way the ubuntu autoinstall is designed, user confirmation is required to start the autoinstallation process. To view the vm, you also need a vnc viewer. [TigerVNC](https://github.com/TigerVNC/tigervnc) is a good choice. Simply run ``` $ vncviewer :5900 ``` Enter `yes` when prompted with this line: ``` Continue with autoinstall (yes|no) ``` Once the installation is complete, you can run the vm using: ``` $ ansible-playbook qemu/run/yml ``` The default login user has ``` username: ubuntu password: ubuntu ``` ## VM Install Option 2 (libvirt) Follow instructions in the README.md of the libvirt directory ## System Details Further system information for those that are interested. ``` $ lsblk 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. ## Issues/Remarks - `/etc/cron.d/csc-mirror` is commented out for now - need to update `/home/mirror/config/(ADDRESS|ADDRESS_V6)` - `/mirror/root/include/motd.msg` contains the wrong address - may want to generate cert for nginx - will need to modify nginx server_name - update /etc/rsyncd.conf hosts allow - cannot find how to push user is chroot jailed - merlin service should be copied to systemd - create playbook to add a new project?