diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2024-11-04 12:25:11 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2024-11-04 12:25:11 +0530 |
commit | 7eebab21bbb23ae2029980a6ca3016a8872bc240 (patch) | |
tree | 6f0c1e9378389fd75ca2b9fe4afbf46a6052060f | |
parent | 8c7ee42eedc6fcbc2eaf7ffbc9112835d915bc48 (diff) |
Change VM structure, move away from vagrant
-rw-r--r-- | .gitignore | 3 | ||||
-rwxr-xr-x | build.sh | 42 | ||||
-rw-r--r-- | c_debian/Dockerfile | 25 | ||||
-rw-r--r-- | compose.yaml | 24 | ||||
-rw-r--r-- | debian/Vagrantfile | 31 | ||||
-rw-r--r-- | p_windows11/Vagrantfile | 53 | ||||
-rw-r--r-- | scripts/provision-root.sh | 8 | ||||
-rw-r--r-- | scripts/provision-user.sh | 9 | ||||
-rw-r--r-- | vagrant-libvirt-2.4.gem | bin | 136704 -> 0 bytes |
9 files changed, 53 insertions, 142 deletions
@@ -1,2 +1 @@ -**/.vagrant -swapfile +*.img diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..9b5d342 --- /dev/null +++ b/build.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 [vm_name] [ip_addr:192.168.122.x]" + exit +fi + +VM_NAME="$1" +IP_ADDR="$2" +AMD_GPU_RENDERNODE="/dev/dri/by-path/pci-0000:05:00.0-render" + +set -xe + +virt-builder debian-12 \ + -o imgs/$VM_NAME.img \ + --size 35G \ + --hostname $VM_NAME \ + -m 4096 --smp 4 \ + --run-command "ssh-keygen -A" \ + --append-line "/etc/network/interfaces:allow-hotplug enp1s0" \ + --append-line "/etc/network/interfaces:auto enp1s0" \ + --append-line "/etc/network/interfaces:iface enp1s0 inet static" \ + --append-line "/etc/network/interfaces: address $IP_ADDR" \ + --append-line "/etc/network/interfaces: gateway 192.168.122.1" \ + --run-command "apt-get update" \ + --run-command "apt-get install task-mate-desktop spice-vdagent qemu-guest-agent -y" \ + --run scripts/provision-root.sh \ + --ssh-inject compromyse:file:"$HOME/.ssh/id_rsa.pub" \ + --upload "scripts/provision-user.sh:/home/compromyse/install-nix.sh" \ + --write "/etc/resolv.conf:nameserver 8.8.8.8" + +sudo virt-install --import \ + --os-variant debian12 \ + --name $VM_NAME \ + --ram 2048 \ + --cpu host-passthrough,cache.mode=passthrough \ + --vcpus 4,sockets=1,cores=2,threads=2 \ + --disk path=imgs/$VM_NAME.img,format=raw,bus=virtio \ + --video virtio,model.acceleration.accel3d=yes \ + --graphics spice,gl.enable=yes,listen=none,gl.rendernode="$AMD_GPU_RENDERNODE" \ + --noautoconsole \ + --noreboot diff --git a/c_debian/Dockerfile b/c_debian/Dockerfile deleted file mode 100644 index 420ae94..0000000 --- a/c_debian/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM debian:bookworm - -COPY scripts/provision-root.sh /provision-root.sh -RUN bash /provision-root.sh -RUN rm /provision-root.sh - -COPY scripts/provision-docker.sh /tmp/provision-docker.sh -RUN bash /tmp/provision-docker.sh - -USER compromyse -WORKDIR /home/compromyse - -ENV USER=compromyse -ENV CONFIG=d -ENV TERM=screen-256color-bce - -RUN mkdir ~/.ssh -RUN --mount=type=secret,id=id_rsa,required sudo cp /run/secrets/id_rsa ~/.ssh/id_rsa -RUN --mount=type=secret,id=id_rsa_pub,required sudo cp /run/secrets/id_rsa_pub ~/.ssh/id_rsa.pub -RUN sudo chown compromyse:compromyse ~/.ssh/id_rsa ~/.ssh/id_rsa.pub - -COPY scripts/provision-user.sh /tmp/provision-user.sh -RUN bash /tmp/provision-user.sh - -CMD [ "bash" ] diff --git a/compose.yaml b/compose.yaml deleted file mode 100644 index d63c308..0000000 --- a/compose.yaml +++ /dev/null @@ -1,24 +0,0 @@ -services: - debian: - container_name: debian - build: - context: . - dockerfile: c_debian/Dockerfile - secrets: - - id_rsa - - id_rsa_pub - - stdin_open: true - tty: true - volumes: - - ~/shared:/shared - deploy: - resources: - limits: - cpus: '14' - -secrets: - id_rsa: - file: /home/compromyse/.ssh/id_rsa - id_rsa_pub: - file: ~/.ssh/id_rsa.pub diff --git a/debian/Vagrantfile b/debian/Vagrantfile deleted file mode 100644 index b2d5cba..0000000 --- a/debian/Vagrantfile +++ /dev/null @@ -1,31 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -Vagrant.configure('2') do |config| - config.vm.box = 'cloud-image/debian-12' - - config.vm.box_check_update = false - - # config.vm.network 'forwarded_port', guest: 80, host: 8080 - # config.vm.network 'forwarded_port', guest: 80, host: 8080, host_ip: '127.0.0.1' - - # config.vm.synced_folder './data', '/data' - config.vm.synced_folder '~/shared', '/shared', type: '9p', disabled: false, accessmode: 'mapped' - config.vm.synced_folder '.', '/vagrant', type: '9p', disabled: false, accessmode: 'mapped' - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 14 - libvirt.cputopology :sockets => '1', :cores => '7', :threads => '2' - libvirt.memory = 32768 - - libvirt.machine_virtual_size = 120 - - libvirt.cpu_model = 'host-passthrough' - end - - config.vm.provision 'file', source: '~/.ssh/id_rsa', destination: '.ssh/id_rsa' - config.vm.provision 'file', source: '~/.ssh/id_rsa.pub', destination: '.ssh/id_rsa.pub' - - config.vm.provision 'shell', path: '../scripts/provision-root.sh' - config.vm.provision 'shell', path: '../scripts/provision-user.sh', privileged: false, env: { 'CONFIG': 'v' } -end diff --git a/p_windows11/Vagrantfile b/p_windows11/Vagrantfile deleted file mode 100644 index 38e197c..0000000 --- a/p_windows11/Vagrantfile +++ /dev/null @@ -1,53 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure('2') do |config| - config.vm.box = 'valengus/windows11-22h2-x64' - - config.vm.box_check_update = false - - # config.vm.synced_folder './data', '/data' - # config.vm.synced_folder '~/shared', '/shared', type: '9p', disabled: false, accessmode: 'mapped' - # config.vm.synced_folder '.', '/vagrant', type: '9p', accessmode: 'mapped' - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 8 - libvirt.cputopology sockets: '1', cores: '4', threads: '2' - libvirt.memory = 32768 - - libvirt.video_type = 'vga' - libvirt.input type: 'mouse', bus: 'virtio' - libvirt.input type: 'keyboard', bus: 'virtio' - - libvirt.graphics_type = 'spice' - libvirt.graphics_port = '-1' - - libvirt.pci bus: '0x01', slot: '0x00', function: '0x00' - libvirt.pci bus: '0x01', slot: '0x00', function: '0x01' - libvirt.shmem name: 'looking-glass', type: 'ivshmem-plain', size: '32' - libvirt.memorybacking :access, mode: 'shared' - libvirt.memorybacking :source, type: 'memfd' - - libvirt.machine_virtual_size = 60 - libvirt.cpu_model = 'host-passthrough' - end - - config.vm.provision 'shell', path: '../scripts/provision-win.bat' - - config.trigger.before :up do |t| - t.info = "Binding to VFIO" - t.run = { - path: '../scripts/bind-vfio.sh' - } - end - - [ :destroy, :halt ].each do |action| - config.trigger.after action do |t| - t.info = "Unbinding VFIO" - t.run = { - path: '../scripts/unbind-vfio.sh' - } - end - end -end diff --git a/scripts/provision-root.sh b/scripts/provision-root.sh index 224a6f1..4cd8d17 100644 --- a/scripts/provision-root.sh +++ b/scripts/provision-root.sh @@ -4,9 +4,11 @@ set -xe export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get upgrade -y - apt-get install -y git curl xz-utils sudo ssh +useradd compromyse -G sudo -p changeme -s /bin/bash +mkdir /home/compromyse +cp -rT /etc/skel /home/compromyse +chown -R compromyse:compromyse /home/compromyse +echo "compromyse ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers unset DEBIAN_FRONTEND diff --git a/scripts/provision-user.sh b/scripts/provision-user.sh index 44472f4..79d5558 100644 --- a/scripts/provision-user.sh +++ b/scripts/provision-user.sh @@ -2,6 +2,8 @@ set -xe +CONFIG=vm + sh <(curl -L https://nixos.org/nix/install) --no-daemon . "$HOME/.nix-profile/etc/profile.d/nix.sh" @@ -9,12 +11,11 @@ sh <(curl -L https://nixos.org/nix/install) --no-daemon nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager nix-channel --update -nix-shell '<home-manager>' -A install +nix-shell "<home-manager>" -A install . "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" -ssh-keyscan github.com >> ~/.ssh/known_hosts -git clone git@github.com:compromyse/dotfiles $HOME/.config/home-manager/dotfiles -git clone git@github.com:tmux-plugins/tpm $HOME/.tmux/plugins/tpm +git clone https://github.com/compromyse/dotfiles $HOME/.config/home-manager/dotfiles +git clone https://github.com/tmux-plugins/tpm $HOME/.tmux/plugins/tpm rm $HOME/.config/home-manager/home.nix ln -s $HOME/.config/home-manager/dotfiles/machines/$CONFIG/home.nix $HOME/.config/home-manager/home.nix diff --git a/vagrant-libvirt-2.4.gem b/vagrant-libvirt-2.4.gem Binary files differdeleted file mode 100644 index b7040cf..0000000 --- a/vagrant-libvirt-2.4.gem +++ /dev/null |