package configure import ( "fmt" "os" "github.com/hpcng/warewulf/internal/pkg/overlay" "github.com/hpcng/warewulf/internal/pkg/util" "github.com/hpcng/warewulf/internal/pkg/warewulfconf" "github.com/hpcng/warewulf/internal/pkg/wwlog" "github.com/pkg/errors" ) /* Creates '/etc/exports' from the host template, enables and start the nfs server. */ func NFS() error { controller, err := warewulfconf.New() if err != nil { wwlog.Printf(wwlog.ERROR, "%s\n", err) os.Exit(1) } if controller.Nfs.Enabled { if err != nil { fmt.Println(err) } err = overlay.BuildHostOverlay() if err != nil { wwlog.Printf(wwlog.WARN, "host overlay could not be built: %s\n", err) } fmt.Printf("Enabling and restarting the NFS services\n") if controller.Nfs.SystemdName == "" { err := util.SystemdStart("nfs-server") if err != nil { return errors.Wrap(err, "failed to start nfs-server") } } else { err := util.SystemdStart(controller.Nfs.SystemdName) if err != nil { return errors.Wrap(err, "failed to start") } } } return nil } /* Prints the configured nfs exports in formated style, needs not to be the content of '/etc/exports' */ func showNFS() { controller, err := warewulfconf.New() if err != nil { wwlog.Printf(wwlog.ERROR, "%s\n", err) os.Exit(1) } fmt.Printf("/etc/exports:\n") for _, export := range controller.Nfs.ExportsExtended { fmt.Printf("%s %s/%s\n", export.Path, controller.Network, controller.Netmask) } fmt.Printf("\n") }