provs/README.md

123 lines
4.2 KiB
Markdown
Raw Normal View History

2022-02-25 16:03:55 +00:00
# provs
[![pipeline status](https://gitlab.com/domaindrivenarchitecture/provs/badges/master/pipeline.svg)](https://gitlab.com/domaindrivenarchitecture/provs/-/commits/master)
2022-02-25 16:03:55 +00:00
[<img src="https://domaindrivenarchitecture.org/img/delta-chat.svg" width=20 alt="DeltaChat"> chat over e-mail](mailto:buero@meissa-gmbh.de?subject=community-chat) | [<img src="https://meissa-gmbh.de/img/community/Mastodon_Logotype.svg" width=20 alt="team@social.meissa-gmbh.de"> team@social.meissa-gmbh.de](https://social.meissa-gmbh.de/@team) | [Website & Blog](https://domaindrivenarchitecture.org)
2022-02-25 16:03:55 +00:00
## Purpose
2022-04-01 20:31:56 +00:00
provs provides cli-based tooling for provisioning desktop or server resp. perform system checks.
2022-02-26 20:20:07 +00:00
* provs-desktop minimal - provides a minimal setup (e.g. swappiness / randomutils) e.g. for setup on a VirtualBox
* provs-desktop office - provides enhancements like zim / gopass / fakturama
2022-02-25 16:03:55 +00:00
* provs-desktop ide - provides development environments for java / kotlin / python / clojure / terraform
2022-02-26 20:20:07 +00:00
* provs-server k3s - provides a production ready & k3s setup with dualstack option
2022-04-01 20:31:56 +00:00
* provs-syspec - verifies a system according to the provided system spec config file
2022-02-25 16:03:55 +00:00
In general provs combines
* being able to use the power of shell commands
* a clear and detailed result summary of the built-in execution handling (incl. failure handling and reporting)
* the convenience and robustness of a modern programming language
2021-02-11 17:03:13 +00:00
2022-02-25 16:03:55 +00:00
## Status
2021-02-11 17:03:13 +00:00
2022-02-26 20:20:07 +00:00
under development - we are working hard on setting up our environments using provs.
2021-02-11 17:03:13 +00:00
2022-02-25 16:03:55 +00:00
## Try out
### Prerequisites
* A **Java Virtual machine** (JVM) is required.
2022-02-25 13:35:39 +00:00
* Install `jarwrapper` (e.g. `sudo apt install jarwrapper`)
* Download the latest `provs-desktop.jar` from: https://gitlab.com/domaindrivenarchitecture/provs/-/releases
* Make the jar-file executable by `chmod +x provs-desktop.jar`
* For server functionality (e.g. k3s) download the latest `provs-server.jar` from: https://gitlab.com/domaindrivenarchitecture/provs/-/releases
2022-02-25 16:03:55 +00:00
### provs-desktop
2022-02-25 13:35:39 +00:00
`provs-desktop.jar <type> <target> [<options>]`
2022-02-25 13:35:39 +00:00
**type** can be:
* basic - install some basic packages)
* office - install office software (LibreOffice), E-Mail (Thunderbird), etc
* ide - same as office with additionally ide-software (VSCode, IntelliJ, etc)
2022-02-25 13:35:39 +00:00
**target** can be:
* `local`
* `user123:mypassword@myhost.com` - general format is: <user[:password]@host> -
* if password is omitted, then ssh-keys will be used for authentication
* if password is omitted but option `-p` is provided, then the password will be prompted interactively
2022-02-25 13:35:39 +00:00
**options**
* `-p` for interactive password question
2022-04-01 20:31:56 +00:00
#### Provision a desktop
2022-02-25 16:06:02 +00:00
```bash
2022-04-01 20:31:56 +00:00
provs-desktop.jar basic local
# or an office desktop remote:
provs-desktop.jar office myuser@myhost.com -p
2022-02-25 16:06:02 +00:00
```
2022-04-01 20:31:56 +00:00
In the last case you'll be prompted for the password of the remote user due to option `-p`.
### Provision k3s
2022-02-25 13:35:39 +00:00
2022-02-25 16:06:02 +00:00
```bash
2022-04-01 20:31:56 +00:00
provs-server.jar k3s local
# or remote:
provs-server.jar k3s myuser@myhost.com # using ssh-authentication - alternatively use option -p for password authentication
2022-02-25 16:06:02 +00:00
```
2022-02-25 13:35:39 +00:00
2022-05-08 18:43:56 +00:00
For the remote server please configure a config file (default file name: server-config.yaml)
```yaml
fqdn: "myhostname.com"
node:
ipv4: "192.168.56.123" # ip address
2022-05-29 16:10:24 +00:00
echo: true # for demo reasons only - deploys an echo app
2022-05-11 07:57:24 +00:00
```
2022-05-08 18:43:56 +00:00
2022-05-11 07:57:24 +00:00
To add a grafana agent to your k3s installation add the following to the config:
```yaml
2022-05-08 18:43:56 +00:00
grafana:
user: "myusername" # username for the grafana data source
password:
source: "PLAIN" # PLAIN, GOPASS or PROMPT
parameter: "mypassword" # the password or api key for the grafana data source user
cluster: "mycluster" # a cluster name of your choice
```
2022-05-11 07:57:24 +00:00
To provision the grafana agent only to an existing k8s system, ensure that the config (as above) is available and execute:
```bash
provs-server.jar k3s myuser@myhost.com -o grafana
```
2022-05-08 18:43:56 +00:00
2022-04-01 20:31:56 +00:00
### Performing a system check
2022-05-11 07:59:45 +00:00
The default config-file for the system check is `syspec-config.yaml`, you can specify a different file with option `-c <config-file>`.
2022-04-01 20:31:56 +00:00
```bash
provs-syspec.jar local
# or remote:
provs-syspec.jar myuser@myhost.com
```
## Get help
To get help you can make use of the `-h` option:
```bash
2022-04-01 20:31:56 +00:00
provs-desktop.jar -h
provs-server.jar -h
provs-syspec.jar -h
```
2022-05-11 07:59:45 +00:00
2022-05-11 08:00:03 +00:00
Or to get help for subcommands e.g.
2022-05-11 07:59:45 +00:00
```bash
provs-desktop.jar ide -h
provs-server.jar k3s -h
```