1
0
Fork 0
mirror of https://github.com/postmannen/ctrl.git synced 2024-12-14 12:37:31 +00:00

created wrapper script for nats-server config

This commit is contained in:
postmannen 2021-10-05 15:51:30 +02:00
parent cd421106e3
commit cac0896485
4 changed files with 75 additions and 3 deletions

View file

@ -0,0 +1,31 @@
# nats-server configuration
This folder contains several scripts to help out setting up the nats-server configuration.
You can run each script individually, or you can use one of the wrapper scripts.
## docker-compose
Create a directory where you want your docker compose files, and enter that directory
Clone the steward repository:
```bash
mkdir my_dir
cd my_dir
git clone https://github.com/RaaLabs/steward.git
```
Execute the wrapper script with the following arguments:
`./steward/scripts/nats-server/wrapper.sh <LetsEncrypt Cert file> <LetsEncrypt Key file> <nats-server listen port>`
```bash
./steward/scripts/nats-server/wrapper.sh ../some/dir/le.crt ../some/dir/le.key 50222
```
This will create all files needed, but you need to add user configuration to the **nats.conf** file manually.
A template for the central steward instance are added by default, but **you need** to edit the file and replace the **`FILL-IN...`** fields with your central user key, and **organization name** according to the naming you want to use as node names. **Read more about the naming in the main README.md.**
**NB**: LetsEncrypt certificate can be generated by using <https://github.com/RaaLabs/certupdater>

View file

@ -16,7 +16,7 @@ import (
func generateEnv(templateFile string, eData envData) error {
tpl, err := template.ParseFiles(templateFile)
if err != nil {
return fmt.Errorf("error: parsing template file: %v, err: %v", templateFile, err)
return fmt.Errorf("error: parsing template file, check that the templateDir flag is set to the correct path: %v, err: %v", templateFile, err)
}
fh, err := os.OpenFile("env.env", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0755)
@ -37,7 +37,7 @@ func generateEnv(templateFile string, eData envData) error {
func generateDockerCompose(templateFile string, cData composeData) error {
tpl, err := template.ParseFiles(templateFile)
if err != nil {
return fmt.Errorf("error: parsing template file: %v, err: %v", templateFile, err)
return fmt.Errorf("error: parsing template file, check that the templateDir flag is set to the correct path: %v, err: %v", templateFile, err)
}
fh, err := os.OpenFile("docker-compose.yml", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0755)
@ -76,7 +76,7 @@ func main() {
flags := flag.String("Flags", "-d", "flags to start nats-server with")
templateDir := flag.String("templateDir", "./", "the directory path to where the template files are located")
templateDir := flag.String("templateDir", "./steward/scripts/nats-server/create-docker-compose-files/", "the directory path to where the template files are located")
flag.Parse()

View file

@ -12,6 +12,18 @@ authorization: {
{
}
{
# central
nkey: FILL-IN-CENTRAL-USER-KEY-HERE
permissions: {
publish: {
allow: ["FILL-IN-ORGANISATION-HERE.>","errorCentral.>","central.>"]
}
subscribe: {
allow: ["FILL-IN-ORGANISATION-HERE.>","errorCentral.>","central.>"]
}
}
}
]
}
EOF

View file

@ -0,0 +1,29 @@
#!/bin/bash
# TO USE:
# ./wrapper ./le.crt ./le.key 50222
LE_CRT=$1
LE_KEY=$2
EXPOSED_NATS_PORT=$3
if go run ./steward/scripts/nats-server/generate-nkeys/main.go; then
echo " * succesfully generated nkeys"
else
echo " * failed to generate nkeys"
exit 1
fi
if go run ./steward/scripts/nats-server/create-docker-compose-files/main.go -imageAndVersion=nats-server:2.5.0 -natsConfPath=./nats.conf -leCertPath="$LE_CRT" -leKeyPath="$LE_KEY" -exposedNatsPort="$EXPOSED_NATS_PORT" -templateDir=./steward/scripts/nats-server/create-docker-compose-files/; then
echo " * succesfully generated docker-compose and env.env file"
else
echo " * failed to generate docker-compse and env.env file"
exit 1
fi
if ./steward/scripts/nats-server/generate-nats-conf/generate-nats-conf.sh; then
echo " * succesfully generated nats.conf"
else
echo " * failed to generate nats-conf"
exit 1
fi