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