Skip to content

Commit

Permalink
Add service commander definition (#149)
Browse files Browse the repository at this point in the history
Signed-off-by: Sanjula Ganepola <[email protected]>
  • Loading branch information
SanjulaGanepola authored Jan 8, 2025
1 parent 1ad5792 commit 44d76c1
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 21 deletions.
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
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
78 changes: 62 additions & 16 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,77 @@
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.

## Which Java to use
Use a Java version provided by IBM, which is at least version 8. When running the `java -version` command, the output
should contain the string `IBM`. Ex. `IBM Semeru Runtime Certified Edition`. Otherwise, Manzan may not function properly.
## Which Java to Use

## Install from GitHub release
Use a Java version provided by IBM, which is at least version 8. When running the `java -version` command, the output should contain the string `IBM`. Ex. `IBM Semeru Runtime Certified Edition`. Otherwise, Manzan may not function properly.

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)
2. If you didn't download to IBM i directly, transfer the `.jar` file to IBM i using technique of your choice
3. Run `java -jar <name of jar file>`
## Install from GitHub

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
mkdir -p /opt/download
cd /opt/download
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
* 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)
## Check it's stopped
sc check manzan
```

### Option 2: Manual Startup

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
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

0 comments on commit 44d76c1

Please sign in to comment.