summaryrefslogtreecommitdiff
path: root/others/vm3/.config/cloud-init-generator/fedora40.sh
diff options
context:
space:
mode:
Diffstat (limited to 'others/vm3/.config/cloud-init-generator/fedora40.sh')
-rwxr-xr-xothers/vm3/.config/cloud-init-generator/fedora40.sh105
1 files changed, 0 insertions, 105 deletions
diff --git a/others/vm3/.config/cloud-init-generator/fedora40.sh b/others/vm3/.config/cloud-init-generator/fedora40.sh
deleted file mode 100755
index bd3e0c3..0000000
--- a/others/vm3/.config/cloud-init-generator/fedora40.sh
+++ /dev/null
@@ -1,105 +0,0 @@
1#!/bin/bash
2
3# generates user data, meta data, and seed.iso for cloud init. for fedora
4# requires the name of the vm as an argument
5#
6# osinfo-query os to list all available vm types to deploy. fedora is fedora 40
7
8
9image_url="https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2"
10
11sshkeysdir="/root/k"
12
13scriptdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #&& echo $scriptdir
14dir_path="/var/lib/libvirt/images/.image_store"
15src_file="${dir_path}/fedora40.qcow2"
16config_dir="/var/lib/libvirt/images/.temp"
17user_data="${config_dir}/user-data"
18meta_data="${config_dir}/meta-data"
19seed_iso="${config_dir}/seed.iso"
20# note that cloud init specifically looks for "user-data" and "meta-data" in the seed.iso disk. do not deviate from the naming convention.
21
22if [ $# -ne 1 ]; then
23 echo "Usage: $0 <vm-name>"
24 exit 1
25fi
26
27sudo mkdir -p "$dir_path"
28sudo mkdir -p "$config_dir"
29
30[ ! -f "$src_file" ] && echo "source image does not exist! downloading..." && sudo wget -O "$src_file" "$image_url"
31
32cat > "$user_data" << EOF
33#cloud-config
34users:
35 - name: user
36 ssh-authorized-keys:
37EOF
38
39for key in $sshkeysdir/*.pub; do
40 echo " - $(cat "$key")" >> $user_data
41done
42
43
44
45
46
47
48
49
50
51cat >> "$user_data" << 'EOF'
52 sudo: ['ALL=(ALL) NOPASSWD:ALL']
53 groups: wheel
54 shell: /bin/bash
55runcmd:
56 - sudo growpart /dev/sda 1
57 - sudo xfs_growfs /
58 - |
59 cat > /etc/yum.repos.d/local-fedora.repo << 'FOE'
60 [local-fedora]
61 name=Local Fedora Mirror
62 baseurl=http://192.168.124.227/fedora-base
63 enabled=1
64 gpgcheck=0
65 priority=1
66 [local-updates]
67 name=Local Fedora Updates
68 baseurl=http://192.168.124.227/fedora-updates
69 enabled=1
70 gpgcheck=0
71 priority=1
72 [local-updates-testing]
73 name=Local Fedora Updates Testing
74 baseurl=http://192.168.124.227/fedora-updates-testing
75 enabled=1
76 gpgcheck=0
77 priority=1
78 FOE
79 - sudo sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/fedora.repo
80 - sudo sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/fedora-updates.repo
81 - sudo sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/fedora-updates-testing.repo
82 - sudo dnf install -y vim git
83 - cd /home/user
84 - git clone https://git.0nom.ch/setup
85 - sudo ./setup/setup.sh
86 - touch /home/user/runcmd_done
87EOF
88
89
90
91
92
93
94
95
96
97cat > "$meta_data" << EOF
98instance-id: vm_id
99local-hostname: $1
100EOF
101
102genisoimage -output "$seed_iso" -volid cidata -joliet -rock "$user_data" "$meta_data" &> /dev/null || { echo "Failed to create seed.iso."; exit 1; }
103
104echo "Configuration files generated successfully"
105