From a6fa0b22cf15558118c2dae92cb9428d44877c18 Mon Sep 17 00:00:00 2001 From: markmental Date: Mon, 15 Dec 2025 17:05:24 -0500 Subject: [PATCH] Fixes cloud init initialization --- main.go | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/main.go b/main.go index 486930e..33072da 100644 --- a/main.go +++ b/main.go @@ -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":