diff options
Diffstat (limited to '')
| -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.gemBinary files differ deleted file mode 100644 index b7040cf..0000000 --- a/vagrant-libvirt-2.4.gem +++ /dev/null | 
