summaryrefslogtreecommitdiff
path: root/others/vm3/.config
diff options
context:
space:
mode:
Diffstat (limited to 'others/vm3/.config')
-rwxr-xr-xothers/vm3/.config/cloud-init-generator/debian12.sh60
1 files changed, 30 insertions, 30 deletions
diff --git a/others/vm3/.config/cloud-init-generator/debian12.sh b/others/vm3/.config/cloud-init-generator/debian12.sh
index 0bdb418..245f73c 100755
--- a/others/vm3/.config/cloud-init-generator/debian12.sh
+++ b/others/vm3/.config/cloud-init-generator/debian12.sh
@@ -18,36 +18,36 @@ if [ $# -ne 1 ]; then
echo "Usage: $0 <vm-name>"
exit 1
fi
-sudo mkdir -p "$dir_path"
+sudo mkdir -p "$dir_path" # make image store dir
sudo mkdir -p "$config_dir"
+
[ ! -f "$src_file" ] && echo "source image does not exist! downloading..." && sudo wget -O "$src_file" "$image_url"
-cat > "$user_data" << EOF
-#cloud-config
-users:
- - name: user
- ssh-authorized-keys:
-EOF
-for key in $sshkeysdir/*.pub; do
- echo " - $(cat "$key")" >> $user_data
-done
-cat >> "$user_data" << 'EOF'
- sudo: ['ALL=(ALL) NOPASSWD:ALL']
- groups: sudo
- shell: /bin/bash
-runcmd:
- - sudo growpart /dev/sda 1
- - sudo resize2fs /dev/sda1
- - sudo apt-get update
- - sudo apt-get install -y vim git
- - cd /home/user
- - #git clone https://git.0nom.ch/setup
- - #sudo ./setup/setup.sh
- - touch /home/user/runcmd_done
-EOF
-cat > "$meta_data" << EOF
-instance-id: vm_id
-local-hostname: $1
-EOF
-genisoimage -output "$seed_iso" -volid cidata -joliet -rock "$user_data" "$meta_data" &> /dev/null || { echo "Failed to create seed.iso."; exit 1; }
-echo "Configuration files generated successfully"
+
+# First create a command that will generate all the ssh-inject options
+SSH_INJECT_OPTS=$(find ${sshkeysdir} -name "*.pub" -exec echo "--ssh-inject user:file:{}" \;)
+
+flag_file="${dir_path}/debian12_customized"
+
+# Check if customization has already been done
+if [ -f "$flag_file" ]; then
+ echo "Image already customized, skipping customization..."
+else
+ echo "Customizing image..."
+ export LIBGUESTFS_BACKEND=direct
+ sudo -E virt-customize -a /var/lib/libvirt/images/.image_store/debian12.qcow2 \
+ --run-command 'useradd -m -s /bin/bash user' \
+ $SSH_INJECT_OPTS \
+ --update \
+ --install openssh-server,git \
+ --run-command 'echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/user' \
+ --run-command 'sed -i "s/PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config' \
+ --run-command 'sed -i "s/#PasswordAuthentication yes/PasswordAuthentication no/" /etc/ssh/sshd_config' \
+ --run-command 'cd /home/user && git clone https://git.0nom.ch/keys && chown -R user:user keys && sudo -u user ./keys/add-ssh-keys.sh' \
+ --run-command 'tee -a /etc/bashrc > /dev/null << "EOF"
+LS_COLORS=$LS_COLORS:'\''di=38;5;135:ex=00;32:'\'' ; export LS_COLORS
+PS1='\''[\[\033[01;32m\]\u\[\033[00m\]@\h \[\033[38;5;135m\]\W\[\033[00m\]]\$ '\''
+EOF' && \
+ # Create flag file after successful customization
+ sudo touch "$flag_file"
+fi