ok-1
This commit is contained in:
69
internal/config/config.go
Normal file
69
internal/config/config.go
Normal file
@@ -0,0 +1,69 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
const (
|
||||
BaseDir = "/etc/sunhpc"
|
||||
LogDir = "/var/log/sunhpc"
|
||||
TmplDir = BaseDir + "/tmpl.d"
|
||||
)
|
||||
|
||||
var (
|
||||
SunHPCFile = filepath.Join(BaseDir, "sunhpc.yaml")
|
||||
NodesFile = filepath.Join(BaseDir, "nodes.yaml")
|
||||
NetworkFile = filepath.Join(BaseDir, "network.yaml")
|
||||
DisksFile = filepath.Join(BaseDir, "disks.yaml")
|
||||
ServicesFile = filepath.Join(BaseDir, "services.yaml")
|
||||
FirewallFile = filepath.Join(BaseDir, "iptables.yaml")
|
||||
)
|
||||
|
||||
// InitDirs 创建所有必需目录
|
||||
func InitDirs() error {
|
||||
dirs := []string{
|
||||
BaseDir,
|
||||
TmplDir,
|
||||
LogDir,
|
||||
}
|
||||
for _, d := range dirs {
|
||||
if err := os.MkdirAll(d, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateDefaultConfigs 生成默认 YAML 配置文件
|
||||
func CreateDefaultConfigs() error {
|
||||
files := map[string]interface{}{
|
||||
SunHPCFile: DefaultSunHPC(),
|
||||
NodesFile: DefaultNodes(),
|
||||
NetworkFile: DefaultNetwork(),
|
||||
DisksFile: DefaultDisks(),
|
||||
ServicesFile: DefaultServices(),
|
||||
FirewallFile: DefaultFirewall(),
|
||||
}
|
||||
|
||||
for path, data := range files {
|
||||
if err := writeYAML(path, data); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func writeYAML(path string, data interface{}) error {
|
||||
f, err := os.Create(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
enc := yaml.NewEncoder(f)
|
||||
defer enc.Close()
|
||||
return enc.Encode(data)
|
||||
}
|
||||
Reference in New Issue
Block a user