Fixes cloud init initialization
This commit is contained in:
parent
034fe688cd
commit
a6fa0b22cf
1 changed files with 20 additions and 16 deletions
36
main.go
36
main.go
|
|
@ -191,21 +191,26 @@ users:
|
||||||
- name: %s
|
- name: %s
|
||||||
sudo: ALL=(ALL) NOPASSWD:ALL
|
sudo: ALL=(ALL) NOPASSWD:ALL
|
||||||
shell: /bin/sh
|
shell: /bin/sh
|
||||||
|
lock_passwd: true
|
||||||
|
create_home: true
|
||||||
|
|
||||||
ssh_pwauth: false
|
ssh_pwauth: false
|
||||||
disable_root: true
|
disable_root: true
|
||||||
|
|
||||||
write_files:
|
|
||||||
- path: /home/%s/.ssh/authorized_keys
|
|
||||||
owner: %s:%s
|
|
||||||
permissions: '0600'
|
|
||||||
content: |
|
|
||||||
%s
|
|
||||||
|
|
||||||
runcmd:
|
runcmd:
|
||||||
|
- mkdir -p /home/%s/.ssh
|
||||||
|
- echo '%s' > /home/%s/.ssh/authorized_keys
|
||||||
- chown -R %s:%s /home/%s/.ssh
|
- chown -R %s:%s /home/%s/.ssh
|
||||||
`, img.User, img.User, img.User, img.User, sshKey,
|
- chmod 700 /home/%s/.ssh
|
||||||
img.User, img.User, img.User)
|
- 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(
|
metaData := fmt.Sprintf(
|
||||||
"instance-id: %s\nlocal-hostname: %s\n",
|
"instance-id: %s\nlocal-hostname: %s\n",
|
||||||
|
|
@ -219,13 +224,10 @@ runcmd:
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
userDataPath := filepath.Join(tmpDir, "user-data")
|
if err := os.WriteFile(filepath.Join(tmpDir, "user-data"), []byte(userData), 0644); err != nil {
|
||||||
metaDataPath := filepath.Join(tmpDir, "meta-data")
|
|
||||||
|
|
||||||
if err := os.WriteFile(userDataPath, []byte(userData), 0644); err != nil {
|
|
||||||
panic(err)
|
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)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -235,8 +237,8 @@ runcmd:
|
||||||
"-volid", "cidata",
|
"-volid", "cidata",
|
||||||
"-joliet",
|
"-joliet",
|
||||||
"-rock",
|
"-rock",
|
||||||
userDataPath,
|
filepath.Join(tmpDir, "user-data"),
|
||||||
metaDataPath,
|
filepath.Join(tmpDir, "meta-data"),
|
||||||
)
|
)
|
||||||
|
|
||||||
if out, err := cmd.CombinedOutput(); err != nil {
|
if out, err := cmd.CombinedOutput(); err != nil {
|
||||||
|
|
@ -245,6 +247,7 @@ runcmd:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func renderBoxTable(headers []string, rows [][]string) {
|
func renderBoxTable(headers []string, rows [][]string) {
|
||||||
colWidths := make([]int, len(headers))
|
colWidths := make([]int, len(headers))
|
||||||
|
|
||||||
|
|
@ -490,6 +493,7 @@ func main() {
|
||||||
switch os.Args[1] {
|
switch os.Args[1] {
|
||||||
case "create":
|
case "create":
|
||||||
createVM(os.Args[2], parseArg(os.Args, "--os"), parseArg(os.Args, "--pubkey-path"))
|
createVM(os.Args[2], parseArg(os.Args, "--os"), parseArg(os.Args, "--pubkey-path"))
|
||||||
|
updateCloudVM(os.Args[2], parseArg(os.Args, "--pubkey-path"))
|
||||||
case "start":
|
case "start":
|
||||||
startVM(os.Args[2])
|
startVM(os.Args[2])
|
||||||
case "stop":
|
case "stop":
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue