@@ -3,19 +3,29 @@ packages:
33 - htop
44 - docker
55
6+ bootcmd :
7+ # cloud-init runs before EBS volume mount (sometimes?), so we have to wait. See https://stackoverflow.com/a/77868589/11138267
8+ - echo "$(date --rfc-3339=ns) | Waiting for EBS volume device to be available"
9+ - echo "$(lsblk)"
10+ - timeout 30s sh -c 'while [ ! -e ${device_name} ]; do sleep 1; done'
11+ - echo "$(date --rfc-3339=ns) | Device found"
12+ - echo "$(lsblk)"
13+
614timezone : ${timezone}
715
816device_aliases : { "minecraft_data": "${device_name}" }
917disk_setup :
1018 minecraft_data :
1119 table_type : gpt
1220 layout : true
21+ overwrite : true
1322
1423fs_setup :
1524 - device : minecraft_data
1625 label : Minecraft
1726 filesystem : xfs
1827 partition : any
28+ overwrite : true
1929
2030mounts :
2131 - [
@@ -27,32 +37,6 @@ mounts:
2737 " 2" ,
2838 ]
2939
30- runcmd :
31- - systemctl daemon-reload
32- # Finish Duck DNS setup
33- - systemctl enable duck.service
34- - systemctl start duck.service
35- # Manually install Docker Compose plugin
36- - mkdir -p /usr/local/lib/docker/cli-plugins
37- - [
38- curl,
39- -SL,
40- " https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-aarch64" ,
41- -o,
42- /usr/local/lib/docker/cli-plugins/docker-compose,
43- ]
44- - chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
45- # Finish Docker setup
46- - usermod -a -G docker ec2-user # Allow docker commands without sudo
47- - systemctl enable docker
48- - systemctl start docker
49- # Initialize Minecraft server
50- - chown ec2-user:ec2-user -R ${minecraft_data_path} # Fix permissions
51- - systemctl enable minecraft
52- - systemctl start minecraft
53- - systemctl enable minecraft_shutdown.timer
54- - systemctl start minecraft_shutdown.timer
55-
5640write_files :
5741 # Duck DNS files
5842 - path : /home/ec2-user/duck.sh
@@ -92,3 +76,31 @@ write_files:
9276 defer : true
9377 encoding : base64
9478 content : ${minecraft_shutdown_timer_file_content_b64}
79+
80+ runcmd :
81+ - lsblk
82+ - cat /etc/fstab
83+ - systemctl daemon-reload
84+ # Finish Duck DNS setup
85+ - systemctl enable duck.service
86+ - systemctl start duck.service
87+ # Manually install Docker Compose plugin
88+ - mkdir -p /usr/local/lib/docker/cli-plugins
89+ - [
90+ curl,
91+ -SL,
92+ " https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-aarch64" ,
93+ -o,
94+ /usr/local/lib/docker/cli-plugins/docker-compose,
95+ ]
96+ - chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
97+ # Finish Docker setup
98+ - usermod -a -G docker ec2-user # Allow docker commands without sudo
99+ - systemctl enable docker
100+ - systemctl start docker
101+ # Initialize Minecraft server
102+ - chown ec2-user:ec2-user -R ${minecraft_data_path} # Fix permissions
103+ - systemctl enable minecraft
104+ - systemctl start minecraft
105+ - systemctl enable minecraft_shutdown.timer
106+ - systemctl start minecraft_shutdown.timer
0 commit comments