Non-interactive actions to install JChem cartridge

User a7faa21887

14-11-2011 15:38:31

Hi, all.


I'm trying to make non-intaractive installation process of JChem server and cartridge. it's nesessary to deploy on production systems which I cannot access.


Is exists any way to run these commands in non-interactive mode:



  1. jcart-util.sh encrypt - As I understood - result of enrypt differs from one environment (server host) to another even if string (username and passwrod) are the same. I'm tried use pipe input from file with double string instead of stdin, but utility waits for final "Enter".

  2. install.sh - I can automatically prepare jcart.properties file and in real I need to deploy only schema in database. I know that key --jcserver-only is used to install only JChem server. Is there some kind of key to deploy only schema into database? And how I can put all parameters for install.sh as key-values pairs or another way?


Thanks.


Pavel

User a7faa21887

14-11-2011 15:46:13

Also, I want to ask about short distributive without documentation. What directories from zip-file are safe to remove to install on production system, for example?

ChemAxon aa7c50abf8

14-11-2011 17:35:05

Hi Pavel,


1. jcart-util.sh encrypt


I am not sure if it can be used in a non-interactive manner due to the way it is masking the password entries. But I am also not sure if you really need this. Is it not an option to use it interactively and put the encrypted text into the configuration file(s)?


2. install.sh


It will do an Oracle-side installation only, if you specify a remote address for the jchem.server.host. This assumes that you have already installed and started the JChem Cartridge server on that remote host.


If the JChem Cartridge server is installed on the Oracle server, there appears to be no point in separating the two installation items and, consequently, separating them is currently not possible in the single-host configuration.


You can specify the --unattended-params argument to the installer (and the upgrader as well). This argument accepts a comma separated list of Java properties files (similar to jchem/cartridge/conf/jcart.properties). These files are used as (in Oracle lingo) response files for executing non-interactive installation. There is a file called chemaxon/jchem/cartridge/install/install.properties packed in jchem/lib/jchem-cartridge.jar which lists the names and descriptions of the properties used during installation (i.e. properties to be specified in the response files). (There is also a chemaxon/jchem/cartridge/install/upgrade.properties file for properties used during upgrade.)


You need only the lib and cartridge subdirectories (recursively) in the jchem directory to run JChem Cartridge.


Peter

User a7faa21887

14-11-2011 21:01:01

Thanks a lot, Peter, for useful information.


Let me clarify my reasons of usage installation procedure with such requirements.


I don't have any access to production system. Unfortunally, production technical support (outsorced in Brasil) don't have sufficient (or any) experience to install and configure JChem server as I need.


So, I have to prepare installation package with simple installation procedure. As ideal it should be a simple zip-archive with catalog structure and single executable shell script with minumal parameters to install in real environment. Some parameters are defined in-place automatically (host name for JChem Server, for example), some parameters are predefined in installation package (oracle.server.login and password, that must be encrypted for some security reasons and also to avoid call of jchem_core_pkg.use_password in the application). All parameters that defined in-place fill some template files (jcart.properties, environment files, etc.). Also I have to create separate jchem-owner schema and separate directory for JChem server files to isolate JChem server for every application.


It's almost done, but some operations are still require interaction with technical support people, which sometimes can't (or don't want) do exactly I need and described in Step-By-Step instruction.


So, could you answer me: is encrypted value have to be generated on target server only or I can save values in file encrypted on my server in files?


Pavel

ChemAxon aa7c50abf8

15-11-2011 15:43:50

Pavel,


The encrypted value is supposed to be "portable". You should be able to create it on any machine and then reuse it on any other machines.


(The installer script will overwrite/recreate the jcart.properties file in the jchem/cartridge/conf directory -- based on the response files.)


Peter

User a7faa21887

15-11-2011 18:22:32










pkovacs wrote:

Pavel,


The encrypted value is supposed to be "portable". You should be able to create it on any machine and then reuse it on any other machines.


(The installer script will overwrite/recreate the jcart.properties file in the jchem/cartridge/conf directory -- based on the response files.)


Peter



Thanks again, Peter.


It's very good. Now, I can prepare this file myself on my dev/qa environment and do not care about encrypt anything on target systems. And I think jcart,properties file recreated by installer only if installer found that JChem server is not running. If it's already running this file leaves untouched. I use this feature to create jcart.properties file based on my template, than run JChem Server and than installer just deploy jchem objects into the database.


Pavel

ChemAxon aa7c50abf8

16-11-2011 10:17:54

If it's already running this file leaves untouched.

This may be true in some cases, but I suggest not to assume this in general. In general, the jcart.properties file may (will) be overwritten during installation. (It may be also changed during upgrade, but custom settings [such as Java system properties to pass to the server] are supposed to be preserved nevertheless.)


Peter