66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
"bufio"
|
|
)
|
|
|
|
var mongoBasePath = "/opt/my-mongo"
|
|
var replicasetName = "techtransthai-db"
|
|
var networkName = "mongonet"
|
|
var numberOfContainers int = 5
|
|
var maxMemAllocPercent int = 95
|
|
var mongoInitdbRootUsername = "sasha"
|
|
var mongoInitdbRootPassword = "12345"
|
|
|
|
func ExecSystem(command string) {
|
|
cmd := exec.Command("/usr/bin/bash", "-c", command)
|
|
stdout, err := cmd.StdoutPipe()
|
|
if err != nil {
|
|
fmt.Println("Error obtaining stdout pipe:", err)
|
|
return
|
|
}
|
|
|
|
// Start the command
|
|
if err := cmd.Start(); err != nil {
|
|
fmt.Println("Error starting command:", err)
|
|
return
|
|
}
|
|
|
|
// Read the output line by line
|
|
scanner := bufio.NewScanner(stdout)
|
|
for scanner.Scan() {
|
|
fmt.Println(scanner.Text())
|
|
}
|
|
|
|
// Check for any errors
|
|
if err := scanner.Err(); err != nil {
|
|
fmt.Println("Error reading command output:", err)
|
|
}
|
|
|
|
// Wait for the command to finish
|
|
if err := cmd.Wait(); err != nil {
|
|
fmt.Println("Error waiting for command:", err)
|
|
}
|
|
}
|
|
|
|
func genKeys() {
|
|
fmt.Printf("\033[1;32mGenerating keys\033[0m\n")
|
|
|
|
keyfileLocation := mongoBasePath + "/mongodb-keyfile"
|
|
ExecSystem("openssl rand -base64 741 > " + keyfileLocation)
|
|
ExecSystem("chmod 600 " + keyfileLocation)
|
|
ExecSystem("chown 999 " + keyfileLocation)
|
|
}
|
|
|
|
func main() {
|
|
checkRoot()
|
|
checkSettings()
|
|
instDeps()
|
|
genKeys()
|
|
dockerNetworkCreate()
|
|
dockerPullMongo()
|
|
dockerRunMongo()
|
|
initReplMongo()
|
|
} |