Skip to content

Commit

Permalink
updated 1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Eugene Ivanov committed Apr 16, 2021
0 parents commit af2816c
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 0 deletions.
96 changes: 96 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Dockerized SMIS server configuration and run

## How to configure SMIS server before container run

SMIS docker container should have configuration yaml file, by default it's `config.yaml` and should be mapped into `/etc/cimserver/config.yaml` inside the simserver container

```yaml
#
# Proposal yaml for cimserver configuration
#
cimserver:
properties: # map to describe cimserver start props
enableAuthentication: true
sslBackwardCompatibility: true
# enableNamespaceAuthorization: true
# logLevel: TRACE
# traceComponents: XmlIO
# traceLevel: 5
# traceFacility: Log
cert:
# countryName: US # default value US
# stateOrProvinceName: California # default value California
# organizationName: # default value is 'DataDirect Networks, Inc'
# organizationalUnitName: # default value 'OpenPegasus cimserver instance'
# commonName: cimserver.IP # IP or FQDN of the Cimserver certificate
# expiration: 365 # Certificate expiration in days, default valie is 365
# privateKeyPath: <externalPrivateKeyPath>
# certificatePath: <externalCertificatePath>
array:
endpoint: 10.20.30.40
user: admin
password: dA==
users:
- user: user1
password: dXNlcjE=
permissions:
- namespace: Intelliflash
rights: "RW"

```

### Fields and values
Field name | Value | Description
------------------------------------ | ------- | --------------------------------------------------------------------
cimserver.properties | map | OpenPegasus cimserver' initial properties should be described there. See cimserver admin's guide `pegasus/doc/Admin_Guide_Release.pdf`
array | struct | Describes confuguration for remote array
array.endpoint | string | IP/FQDN of the backend array
array.user | struct | Backend's connection user name
array.password | struct | Backend's connection password. Note: 'Should be encoded in BASE64. Example: `echo -n 'password' | base64`'.
array.users | array | Cimserver's users. Enables BASICAUTH for every remote request. Should be used when `enableAuthentication=true`
array.users.[n].user | string | Cimserver's user name
array.users.[n].password | string | Cimserver's user password. Note: 'Should be encoded in BASE64. Example: `echo -n 'password' | base64`'.
array.users.[n].permissions | string | Cimserver's user namespace permissions.
array.users.[n].permissions.namespace| string | Cimserver's user namespace name
array.users.[n].permissions.rights | string | Cimserver's user namespace permissions. `R` is for READ authorization, `W` is for WRITE authorization
cimserver.cert | cert | Cimserver's certificate configuration struct
cimserver.cert.countryName | cert | Self-signed certificate 'C' attribute. Default value is `US`.
cimserver.cert.stateOrProvinceName | cert | Self-signed certificate 'ST' attribute. Default value is `California`.
cimserver.cert.organizationName | cert | Self-signed certificate 'O' attribute. Default value is `DataDirect Networks, Inc`.
cimserver.cert.organizationalUnitName| cert | Self-signed certificate 'OU' attribute. Default value is `OpenPegasus cimserver instance`.
cimserver.cert.commonName | cert | Self-signed certificate 'CN' attribute. If not defined, then IP address of the container will be used.
cimserver.cert.expiration | cert | Self-signed certificate expiration in days. Default value `365`
cimserver.cert.privateKeyPath | cert | External private key file path. `certificatePath` must be specified too. It's container path, not host.
cimserver.cert.certificatePath | cert | External Certificate file path. `privateKeyPath` must be specified too. It's container path, not host.

`Note:` If `privateKeyPath` and `certificatePath` specified then other `cert` options are omitted.

`Note:` SMIS configuration example placed at `https://github.com/DDNStorage/Intelliflash-smi-s-plugin/config/config.yaml`

## How to load SMIS container image

1. Clone repository
```bash
git clone https://github.com/DDNStorage/Intelliflash-smi-s-plugin /opt/Intelliflash-smi-s-plugin
```

2. Untar image
```bash
tar -zxvf /opt/Intelliflash-smi-s-plugin/bin/smis-server.tar.gz
```

3. Load image
```bash
docker load -i /opt/Intelliflash-smi-s-plugin/bin/smis-server.tar
```

## How to start SMIS container

```bash
docker run -dit -p 5988:5988 -p 5989:5989 -v /root/repos/smi-s-pegasus/config:/etc/cimserver smis-server:1.0
```

## How to stop SMIS container
```bash
docker ps | grep -i -m 1 smis-server | awk '{print $1}' | xargs docker kill
```
Binary file added bin/smis-server.tar.gz
Binary file not shown.
32 changes: 32 additions & 0 deletions config/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#
# Configuration file for dockerized cimserver instance
#
cimserver:
properties: # map to describe cimserver start props
enableAuthentication: true
enableHttpsConnection: true # enables SSL/TLS connection on 5989 port
sslBackwardCompatibility: true # should be enabled to provide secure connection from Windows SVCVMM
# enableNamespaceAuthorization: true
# logLevel: TRACE
# traceComponents: XmlIO
# traceLevel: 4
# traceFacility: Log
cert:
# countryName: US # default value US
# stateOrProvinceName: California # default value California
# organizationName: DataDirect Networks, Inc # default value is 'DataDirect Networks, Inc'
# organizationalUnitName: OpenPegasus cimserver instance # default value 'OpenPegasus cimserver instance'
commonName: 10.204.86.250 # IP or FQDN of the Cimserver certificate
# expiration: 365 # Certificate expiration in days, default value is 365
# privateKeyPath: <externalPrivateKeyPath>
# certificatePath: <externalCertificatePath>
array:
endpoint: 10.204.86.24
user: admin
password: dA==
users:
- user: user1
password: dXNlcjE=
permissions:
- namespace: Intelliflash
rights: "RW"
18 changes: 18 additions & 0 deletions config/ifa.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="40" PROTOCOLVERSION="1.0">
<SIMPLEREQ>
<IMETHODCALL NAME="EnumerateInstances">
<LOCALNAMESPACEPATH>
<NAMESPACE NAME="Intelliflash" />
</LOCALNAMESPACEPATH>
<IPARAMVALUE NAME="ClassName">
<CLASSNAME NAME="CIM_StorageVolume" />
</IPARAMVALUE>
<IPARAMVALUE NAME="LocalOnly">
<VALUE>FALSE</VALUE>
</IPARAMVALUE>
</IMETHODCALL>
</SIMPLEREQ>
</MESSAGE>
</CIM>

0 comments on commit af2816c

Please sign in to comment.