Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
459 changes: 282 additions & 177 deletions agent/collectors/windows_arm64.go

Large diffs are not rendered by default.

17 changes: 9 additions & 8 deletions installer/cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import (
"github.com/utmstack/UTMStack/installer/utils"
)

func Cloud(c *types.Config, update bool) error {
func Cloud(c *types.Config, update bool, distro string) error {

if err := utils.CheckCPU(2); err != nil {
return err
}
Expand Down Expand Up @@ -43,7 +44,7 @@ func Cloud(c *types.Config, update bool) error {

if utils.GetLock(2, stack.LocksDir) {
fmt.Println("Preparing system to run UTMStack")
if err := PrepareSystem(); err != nil {
if err := PrepareSystem(distro); err != nil {
return err
}

Expand Down Expand Up @@ -72,11 +73,11 @@ func Cloud(c *types.Config, update bool) error {
return err
}

if err := InstallVlan(); err != nil {
if err := InstallVlan(distro); err != nil {
return err
}

if err := ConfigureVLAN(iface); err != nil {
if err := ConfigureVLAN(iface, distro); err != nil {
return err
}

Expand All @@ -101,7 +102,7 @@ func Cloud(c *types.Config, update bool) error {

if utils.GetLock(3, stack.LocksDir) {
fmt.Println("Installing Docker")
if err := InstallDocker(); err != nil {
if err := InstallDocker(distro); err != nil {
return err
}

Expand Down Expand Up @@ -145,11 +146,11 @@ func Cloud(c *types.Config, update bool) error {
if utils.GetLock(12, stack.LocksDir) || update {
fmt.Println("Installing reverse proxy. This may take a while.")

if err := InstallNginx(); err != nil {
if err := InstallNginx(distro); err != nil {
return err
}

if err := ConfigureNginx(c, stack); err != nil {
if err := ConfigureNginx(c, stack, distro); err != nil {
return err
}

Expand All @@ -162,7 +163,7 @@ func Cloud(c *types.Config, update bool) error {

if utils.GetLock(5, stack.LocksDir) {
fmt.Println("Installing Administration Tools")
if err := InstallTools(); err != nil {
if err := InstallTools(distro); err != nil {
return err
}

Expand Down
64 changes: 44 additions & 20 deletions installer/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,57 @@ import (
"github.com/utmstack/UTMStack/installer/utils"
)

func InstallDocker() error {
env := []string{"DEBIAN_FRONTEND=noninteractive"}
func InstallDocker(distro string) error {
switch distro {
case "ubuntu":
env := []string{"DEBIAN_FRONTEND=noninteractive"}

if err := utils.RunEnvCmd(env, "apt-get", "update"); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "apt-get", "update"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "apt-get", "install", "-y", "apt-transport-https", "ca-certificates", "curl", "gnupg-agent", "software-properties-common"); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "apt-get", "install", "-y", "apt-transport-https", "ca-certificates", "curl", "gnupg-agent", "software-properties-common"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "sh", "-c", "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -"); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "sh", "-c", "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "sh", "-c", `add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"`); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "sh", "-c", `add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"`); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "apt-get", "update"); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "apt-get", "update"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "apt-get", "install", "-y", "docker-ce", "docker-ce-cli", "containerd.io", "docker-compose"); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "apt-get", "install", "-y", "docker-ce", "docker-ce-cli", "containerd.io", "docker-compose"); err != nil {
return err
}
case "redhat":
env := []string{"DNF_YUM_AUTO_YES=1"}

if err := utils.RunEnvCmd(env, "dnf", "install", "-y", "dnf-plugins-core", "ca-certificates", "curl"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "dnf", "config-manager", "--add-repo", "https://download.docker.com/linux/centos/docker-ce.repo"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "dnf", "makecache"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "dnf", "install", "-y", "docker-ce", "docker-ce-cli", "containerd.io", "docker-compose-plugin", "docker-buildx-plugin"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "systemctl", "enable", "--now", "docker"); err != nil {
return err
}
}
return nil
}

Expand Down
9 changes: 5 additions & 4 deletions installer/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"fmt"
"os"

"github.com/utmstack/UTMStack/installer/utils"
"github.com/utmstack/UTMStack/installer/types"
"github.com/utmstack/UTMStack/installer/utils"
)

func main() {
Expand All @@ -22,7 +22,8 @@ func main() {
}
}

if err := utils.CheckDistro("ubuntu"); err != nil {
distro, err := utils.CheckDistro()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
Expand Down Expand Up @@ -77,13 +78,13 @@ func main() {

switch config.ServerType {
case "aio":
err := Master(config)
err := Master(config, distro)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
case "cloud":
err := Cloud(config, update)
err := Cloud(config, update, distro)
if err != nil {
fmt.Println(err)
os.Exit(1)
Expand Down
16 changes: 8 additions & 8 deletions installer/master.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/utmstack/UTMStack/installer/utils"
)

func Master(c *types.Config) error {
func Master(c *types.Config, distro string) error {
if err := utils.CheckCPU(2); err != nil {
return err
}
Expand Down Expand Up @@ -43,7 +43,7 @@ func Master(c *types.Config) error {

if utils.GetLock(2, stack.LocksDir) {
fmt.Println("Preparing system to run UTMStack")
if err := PrepareSystem(); err != nil {
if err := PrepareSystem(distro); err != nil {
return err
}

Expand Down Expand Up @@ -72,11 +72,11 @@ func Master(c *types.Config) error {
return err
}

if err := InstallVlan(); err != nil {
if err := InstallVlan(distro); err != nil {
return err
}

if err := ConfigureVLAN(iface); err != nil {
if err := ConfigureVLAN(iface, distro); err != nil {
return err
}

Expand All @@ -101,7 +101,7 @@ func Master(c *types.Config) error {

if utils.GetLock(3, stack.LocksDir) {
fmt.Println("Installing Docker")
if err := InstallDocker(); err != nil {
if err := InstallDocker(distro); err != nil {
return err
}

Expand Down Expand Up @@ -138,19 +138,19 @@ func Master(c *types.Config) error {

fmt.Println("Installing reverse proxy. This may take a while.")

if err := InstallNginx(); err != nil {
if err := InstallNginx(distro); err != nil {
return err
}

if err := ConfigureNginx(c, stack); err != nil {
if err := ConfigureNginx(c, stack, distro); err != nil {
return err
}

fmt.Println("Installing reverse proxy [OK]")

if utils.GetLock(5, stack.LocksDir) {
fmt.Println("Installing Administration Tools")
if err := InstallTools(); err != nil {
if err := InstallTools(distro); err != nil {
return err
}

Expand Down
79 changes: 55 additions & 24 deletions installer/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,40 +40,71 @@ func checkRenderer() (string, error) {
return "networkd", nil
}

func ConfigureVLAN(mainIface string) error {
renderer, err := checkRenderer()
if err != nil {
return err
}

func ConfigureVLAN(mainIface string, distro string) error {
c := Vlan{
Renderer: renderer,
Iface: mainIface,
Iface: mainIface,
}

log.Println("Generating vlan config")
err = utils.GenerateConfig(c, templates.Vlan, path.Join("/etc", "netplan", "99-vlan.yaml"))
if err != nil {
return err
}
switch distro {
case "ubuntu":
renderer, err := checkRenderer()
if err != nil {
return err
}
c.Renderer = renderer

log.Println("Applying vlan config")
if err := utils.RunCmd("netplan", "apply"); err != nil {
return err
}
log.Println("Generating vlan config")
err = utils.GenerateConfig(c, templates.VlanUbuntu, path.Join("/etc", "netplan", "99-vlan.yaml"))
if err != nil {
return err
}

log.Println("Applying vlan config")
if err := utils.RunCmd("netplan", "apply"); err != nil {
return err
}

case "redhat":
err := utils.GenerateConfig(c, templates.VlanRedHat, "/etc/sysconfig/network-scripts/ifcfg-vlan10")
if err != nil {
return err
}

if err := utils.RunCmd("modprobe", "8021q"); err != nil {
return err
}

if err := os.WriteFile("/etc/modules-load.d/8021q.conf", []byte("8021q\n"), 0644); err != nil {
return err
}

if err := utils.RunCmd("systemctl", "restart", "NetworkManager"); err != nil {
return err
}

}
return nil
}

func InstallVlan() error {
env := []string{"DEBIAN_FRONTEND=noninteractive"}
func InstallVlan(distro string) error {
switch distro {
case "ubuntu":
env := []string{"DEBIAN_FRONTEND=noninteractive"}

if err := utils.RunEnvCmd(env, "apt-get", "update"); err != nil {
return err
}
if err := utils.RunEnvCmd(env, "apt-get", "update", "-y"); err != nil {
return err
}

if err := utils.RunEnvCmd(env, "apt-get", "install", "-y", "vlan"); err != nil {
return err
if err := utils.RunEnvCmd(env, "apt-get", "install", "-y", "vlan"); err != nil {
return err
}

case "redhat":
env := []string{"DNF_YUM_AUTO_YES=1"}

if err := utils.RunEnvCmd(env, "dnf", "update", "-y"); err != nil {
return err
}
}

return nil
Expand Down
Loading
Loading