Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add service commander definition #149

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
10 changes: 8 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ install:
gmake -C config install BUILDLIB=${BUILDLIB}
gmake -C ile BUILDLIB=${BUILDLIB}
gmake -C camel install
install -m 555 -o qsys service-commander-def.yaml ${INSTALL_ROOT}/opt/manzan/lib/manzan.yaml

uninstall:
gmake -C ile uninstall BUILDLIB=${BUILDLIB}
Expand All @@ -33,15 +34,20 @@ uninstall:
/QOpenSys/pkgs/bin/yum install wget

appinstall.jar: /QOpenSys/pkgs/bin/wget
/QOpenSys/pkgs/bin/wget -O appinstall.jar https://github.com/ThePrez/AppInstall-IBMi/releases/download/v0.0.3/appinstall-v0.0.3.jar
/QOpenSys/pkgs/bin/wget -O appinstall.jar https://github.com/ThePrez/AppInstall-IBMi/releases/download/v0.0.5/appinstall-v0.0.5.jar

manzan-installer-v%.jar: /QOpenSys/pkgs/bin/zip appinstall.jar
echo "Building version $*"
system "dltlib ${BUILDLIB}" || echo "could not delete"
system "crtlib ${BUILDLIB}"
system "dltlib ${BUILDLIB}"
> config/app.ini > config/data.ini > config/dests.ini
rm -fr /QOpenSys/etc/manzan
rm -fr /opt/manzan
gmake -C config BUILDVERSION="$*" install BUILDLIB=${BUILDLIB}
gmake -C ile BUILDVERSION="$*" BUILDLIB=${BUILDLIB}
gmake -C camel BUILDVERSION="$*" clean install
/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java -jar appinstall.jar --qsys manzan --dir /QOpenSys/etc/manzan --file /opt/manzan -o $@
install -m 555 -o qsys service-commander-def.yaml ${INSTALL_ROOT}/opt/manzan/lib/manzan.yaml
SanjulaGanepola marked this conversation as resolved.
Show resolved Hide resolved
echo "#!/QOpenSys/usr/bin/sh" > .postinstall
echo "ln -sf ${INSTALL_ROOT}/opt/manzan/lib/manzan.yaml /QOpenSys/etc/sc/services/manzan.yaml" >> .postinstall
/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java -jar appinstall.jar -o $@ --qsys manzan --file /QOpenSys/etc/manzan --file /opt/manzan --post .postinstall
1 change: 0 additions & 1 deletion config/data.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

[sample]
type=watch
id=mznsample
Expand Down
1 change: 0 additions & 1 deletion config/dests.ini
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@

[stdout]
type=stdout
2 changes: 1 addition & 1 deletion docs/config/app.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

**Note: For almost all real-life deploutments of Manzan, this file can remain untouched!**
**Note: For almost all real-life deployments of Manzan, this file can remain untouched!**

`app.ini` is made to hold two pieces of information:

Expand Down
69 changes: 56 additions & 13 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,70 @@
This document will outline how to install Manzan on to IBM i. Manzan is install through a pase shell. We don't recommend using `qsh` or `qp2term`, and instead using SSH and a bash shell.
# Install

Building Manzan is easy for IBM i and we provide makefiles to simplify the entire process.
This document will outline how to install Manzan on to IBM i. Manzan is installed through a pase shell. We do not recommend using `qsh` or `qp2term`, and instead using SSH and a bash shell.

## Install from GitHub release
## Install from GitHub

To install from a github release, simply perform the following steps:
1. Download the latest binary release from [the releases page](https://github.com/ThePrez/Manzan/releases)
1. If you didn't download to IBM i directly, transfer the `.jar` file to IBM i using technique of your choice
1. Run `java -jar <name of jar file>`
1. Make a "download" directory on IBM i by running the following from an SSH terminal:

```sh
mkdir -p /opt/download
```

2. Download the latest binary release from the [GitHub releases](https://github.com/ThePrez/Manzan/releases) page (the file name will look like `manzan-installer-v#.jar`).

3. If you did not download to IBM i directly, transfer the `.jar` file to IBM i using technique of your choice.

4. Run the installer using:
```sh
java -jar <name of jar file>
```

For instance, to install version `0.0.6`, the steps from an IBM i (using open source `wget`) would look like:

```bash
wget https://github.com/ThePrez/Manzan/releases/download/v0.0.6/manzan-installer-v0.0.6.jar
java -jar manzan-installer-v0.0.6.jar
```

## Deployment basics
## Configuration

Before starting Manzan, several configuration files (`.ini` extension) should be configured in `/QOpenSys/etc/manzan/`. For more details, refer to the [configuration](/config/index.md) page.

## Startup

### Option 1: Service Commander

It is recommended to use [Service Commander](https://theprez.github.io/ServiceCommander-IBMi/#service-commander-for-ibm-i) to start/stop Manzan (or to have Manzan autostart). You can install it using:

```sh
yum install service-commander
```

Once installed, you can use it to start, stop, and check the status of Manzan:

```sh
## Start
sc start manzan

## Check it's running
sc check manzan

## Stop
sc stop manzan

## Check it's stopped
sc check manzan
```

### Option 2: Manual Startup

* The configuration files (`.ini` extension) get created in `/QOpenSys/etc/manzan/`
* Manzan can be started with `/opt/manzan/bin/manzan`
* (optional) It is recommended to use [Service Commander](https://theprez.github.io/ServiceCommander-IBMi/#service-commander-for-ibm-i) to start/stop Manzan (or to have Manzan autostart at IBM)
Manzan can be manually started using:

```sh
/opt/manzan/bin/manzan
```

## Next steps
## Next Steps

* Read more about the [configuration files](/config/index.md)
* Build your very first [handler](/examples/file.md)
* Build your very first [handler](config/examples/file.md)
9 changes: 9 additions & 0 deletions service-commander-def.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: Manzan
SanjulaGanepola marked this conversation as resolved.
Show resolved Hide resolved
dir: .
start_cmd: ../bin/manzan
check_alive: manzan
batch_mode: 'true'
sbmjob_jobname: manzan
sbmjob_opts: JOBQ(QUSRNOMAX)
environment_vars:
- PATH=/QOpenSys/pkgs/bin:/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin