diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..882c860 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "ansible.python.interpreterPath": "/etc/profiles/per-user/nils/bin/python" +} \ No newline at end of file diff --git a/ansible/debian.yml b/ansible/debian.yml new file mode 100644 index 0000000..2504044 --- /dev/null +++ b/ansible/debian.yml @@ -0,0 +1,6 @@ +--- +- name: Install Debian + hosts: all + become: true + roles: + - update diff --git a/ansible/roles/update/tasks/main.yml b/ansible/roles/update/tasks/main.yml new file mode 100644 index 0000000..6d8add8 --- /dev/null +++ b/ansible/roles/update/tasks/main.yml @@ -0,0 +1,6 @@ +- name: Update + ansible.builtin.apt: + update_cache: true +- name: Upgrade + ansible.builtin.apt: + upgrade: true \ No newline at end of file diff --git a/create-vms.sh b/create-vm.sh similarity index 71% rename from create-vms.sh rename to create-vm.sh index faf9443..deec6f1 100755 --- a/create-vms.sh +++ b/create-vm.sh @@ -2,8 +2,6 @@ set -eu -DIR="$(dirname "$(realpath "$0")")" - NAME="$1" mkdir -p tmp @@ -33,11 +31,20 @@ virt-install -n "$NAME" \ --import --disk "path=$DISK,bus=virtio" \ --network network=default,model=virtio \ --graphics=none --rng /dev/urandom \ - "--cloud-init=user-data=$DIR/user-data,meta-data=$meta_data" \ + "--cloud-init=user-data=user-data,meta-data=$meta_data" \ --noautoconsole rm "$meta_data" echo "Successfully created $NAME" -virsh domifaddr "$NAME" +until virsh domifaddr "$NAME" | grep ipv4 >/dev/null; do + echo "waiting for VM to start up and get an IP" + sleep 1 +done + +ip=$(virsh domifaddr "$NAME" | grep ipv4 | awk '{print $4}' | cut -d/ -f1) + +echo "IP: $ip" + +echo "$ip" >> vm-state/inventory.ini diff --git a/init.sh b/init.sh new file mode 100644 index 0000000..bc88fc2 --- /dev/null +++ b/init.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +mkdir -p vm-state + +cat >vm-state/inventory-ini < { } }: pkgs.mkShell { - packages = with pkgs; [ debootstrap ]; + packages = with pkgs; [ debootstrap ansible ansible-lint ]; }