diff --git a/internal/metadata/templates/vendor-data.tmpl b/internal/metadata/templates/vendor-data.tmpl index 148d6db..fe0dcd8 100644 --- a/internal/metadata/templates/vendor-data.tmpl +++ b/internal/metadata/templates/vendor-data.tmpl @@ -2,12 +2,8 @@ users: - name: syonad lock_passwd: false - gecos: alpine Cloud User - groups: [adm, wheel] - doas: - - permit nopass syonad sudo: ["ALL=(ALL) NOPASSWD:ALL"] - shell: /bin/ash + shell: /bin/bash passwd: "{{ .Password }}" ssh_authorized_keys: - - "{{ .SSHKEY }}" \ No newline at end of file + - "{{ .SSHKEY }}" diff --git a/internal/netif/gateway_linux.go b/internal/netif/gateway_linux.go index 7636b7a..6141c64 100644 --- a/internal/netif/gateway_linux.go +++ b/internal/netif/gateway_linux.go @@ -15,7 +15,13 @@ func GetDefaultGateway() (net.IP, error) { return nil, fmt.Errorf("list routes: %w", err) } for _, r := range routes { - if r.Dst == nil && r.Gw != nil { + if r.Gw == nil { + continue + } + if r.Dst == nil { + return r.Gw, nil + } + if ones, _ := r.Dst.Mask.Size(); ones == 0 { return r.Gw, nil } } diff --git a/internal/subnet/delete.go b/internal/subnet/delete.go index 0ae30b5..f745eda 100644 --- a/internal/subnet/delete.go +++ b/internal/subnet/delete.go @@ -54,8 +54,11 @@ func stopDHCP(db *badger.DB, subnetName string, d subnetData) error { } defer svc.Close() - if err := svc.Stop("dnsmasq@" + d.vpc + "_" + d.bridge + ".service"); err != nil { - return fmt.Errorf("stop dnsmasq: %w", err) + svcName := "dnsmasq@" + d.vpc + "_" + d.bridge + ".service" + if status, err := svc.Status(svcName); err == nil && status.ActiveState == "active" { + if err := svc.Stop(svcName); err != nil { + return fmt.Errorf("stop dnsmasq: %w", err) + } } if err := os.Remove("/etc/dnsmasq.d/" + d.vpc + "_" + d.bridge + ".conf"); err != nil && !os.IsNotExist(err) {