Fixes cloud init initialization

This commit is contained in:
markmental 2025-12-15 17:05:24 -05:00
commit a6fa0b22cf

36
main.go
View file

@ -191,21 +191,26 @@ users:
- name: %s
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/sh
lock_passwd: true
create_home: true
ssh_pwauth: false
disable_root: true
write_files:
- path: /home/%s/.ssh/authorized_keys
owner: %s:%s
permissions: '0600'
content: |
%s
runcmd:
- mkdir -p /home/%s/.ssh
- echo '%s' > /home/%s/.ssh/authorized_keys
- chown -R %s:%s /home/%s/.ssh
`, img.User, img.User, img.User, img.User, sshKey,
img.User, img.User, img.User)
- chmod 700 /home/%s/.ssh
- chmod 600 /home/%s/.ssh/authorized_keys
`, img.User,
img.User,
sshKey,
img.User,
img.User, img.User,
img.User,
img.User,
img.User)
metaData := fmt.Sprintf(
"instance-id: %s\nlocal-hostname: %s\n",
@ -219,13 +224,10 @@ runcmd:
}
defer os.RemoveAll(tmpDir)
userDataPath := filepath.Join(tmpDir, "user-data")
metaDataPath := filepath.Join(tmpDir, "meta-data")
if err := os.WriteFile(userDataPath, []byte(userData), 0644); err != nil {
if err := os.WriteFile(filepath.Join(tmpDir, "user-data"), []byte(userData), 0644); err != nil {
panic(err)
}
if err := os.WriteFile(metaDataPath, []byte(metaData), 0644); err != nil {
if err := os.WriteFile(filepath.Join(tmpDir, "meta-data"), []byte(metaData), 0644); err != nil {
panic(err)
}
@ -235,8 +237,8 @@ runcmd:
"-volid", "cidata",
"-joliet",
"-rock",
userDataPath,
metaDataPath,
filepath.Join(tmpDir, "user-data"),
filepath.Join(tmpDir, "meta-data"),
)
if out, err := cmd.CombinedOutput(); err != nil {
@ -245,6 +247,7 @@ runcmd:
}
func renderBoxTable(headers []string, rows [][]string) {
colWidths := make([]int, len(headers))
@ -490,6 +493,7 @@ func main() {
switch os.Args[1] {
case "create":
createVM(os.Args[2], parseArg(os.Args, "--os"), parseArg(os.Args, "--pubkey-path"))
updateCloudVM(os.Args[2], parseArg(os.Args, "--pubkey-path"))
case "start":
startVM(os.Args[2])
case "stop":