Exemple de package de script d'installation d'une application

Le script installe une application existante dans un emplacement indiqué par l'utilisateur. Cet emplacement peut se situer dans le système de fichiers ou sur un système distant. L'outil wsadmin installe l'application. Vous pouvez transmettre les arguments d'installation pendant le déploiement.

Variables de script

Le package de script utilise deux paramètres :
APP_LOCATION :
Obligatoire. Ce paramètre indique l'emplacement de l'application. Il peut s'agir d'un emplacement d'un système de fichiers ou d'un emplacement éloigné accessible via HTTP ou HTTPS.
INSTALL_ARGS :
Facultatif. Arguments d'installation indiqués avec la commande AdminApp.install() de l'utilitaire wsadmin. La commande par défaut est "AdminApp.install(appLocation, '[-usedefaultbindings]'). Vous pouvez communiquer d'autres arguments avec cette variable. Par exemple, vous pouvez entrer la commande "-usedefaultbinding -server myServer -appName MyApp". S'il s'agit d'une application à distance, elle est copiée dans le répertoire de travail en cours avant le démarrage de la commande d'installation.

Exemple de script cbscript.json

[
  {
      "name": "Install application",
      "version": "1.0.0",
      "description": "This script package installs the specified application",
      "command": "/bin/sh ${WAS_PROFILE_ROOT}/bin/wsadmin.sh",
      "log": "${WAS_PROFILE_ROOT}/logs/wsadmin.traceout",
      "location": "/opt/tmp/installapp",
      "timeout": "0",
      "commandargs": "-lang jython -f /opt/tmp/installapp/install_app.jy $APP_LOCATION $INSTALL_ARGS",
      "type": "APPLICATION",
      "keys":
      [
         {
          "scriptkey": "APP_LOCATION",
     	  "scriptvalue": ""
         },
         {
          "scriptkey": "INSTALL_ARGS",
     	  "scriptvalue": ""
         }
      ]
  }
]

Exemple de script

Remarque : Cet exemple de script est uniquement conçu pour les canevas de système virtuel version 7.0.0.x.
import urllib

from java.io import File
from java.lang import Boolean
from java.lang import String
from java.net import URL

def download(url):
	fileLocs = String(url).split('/')
	lastPart = fileLocs[len(fileLocs) - 1]
	file = File(lastPart)
	file.createNewFile()
	newFileLoc = file.getAbsolutePath()
	urllib.urlretrieve(url, newFileLoc)
	return newFileLoc

def copyZip(binURL):
	binURL = str(binURL)
	url = None;
	fileRemote = Boolean.FALSE
	appFileLoc = ''
	try:
		url = URL(binURL)
		fileRemote = Boolean.TRUE
	except:
		pass

	if fileRemote:
		print 'Start retrieval of ' + binURL
		appFileLoc = download(str(binURL))
			             
        else:
		print 'File already local ' + binURL
		appFileLoc = File(binURL).getAbsolutePath()

        return appFileLoc

binURL = sys.argv[0]
installArgs = '[-usedefaultbindings]'
if len(sys.argv) == 2:
	installArgs = '[' + sys.argv[1] + ']'

appLocation = copyZip(binURL)
AdminApp.install(appLocation, installArgs)
AdminConfig.save()