Utilisation de l'interface Portal Scripting Interface
Obtenez plus d'informations sur les différents modes que vous pouvez utiliser avec l'interface de script du portail.
Informations sur les conditions préalables
L'interface de script du portail fournie par HCL Digital Experience repose sur l'outil de script wsadmin qui est fourni par IBM® WebSphere® Application Server. Par conséquent, avant d'utiliser l'interface de script du portail, familiarisez-vous avec le mode d'emploi de l'outil wsadmin de WebSphere® Application Server.
Mode interactif
Utilisez le mode interactif si vous souhaitez interagir directement et dynamiquement avec le portail afin d'effectuer des tâches administratives simples ne devant être effectuées qu'une seule fois. Par exemple, l'administrateur souhaite modifier les droits d'une page pour un utilisateur donné ou l'administrateur souhaite ajouter un portlet à une page. Utilisez le mode interactif si vous n'avez pas l'intention de répéter cette opération.
- AIX®HP-UXLinux™Solaris:
wp_profile_root/PortalServer/bin
- IBM® i:
wp_profile_root/PortalServer/bin
- Windows™ :
wp_profile_root\PortalServer\bin
- z/OS® :
wp_profile_root/PortalServer/bin
- AIX®HP-UXLinux™Solaris: ./wpscript.sh
- IBM® i: wpscript.sh
- Windows™ : wpscript.bat
- z/OS® : ./wpscript.sh
Avant de lancer une session en mode interactif, assurez-vous qu'HCL Portal est en cours d'exécution. Vous pouvez appeler le client de script de portail à l'aide de la commande wpscript.sh
à partir du répertoire wp_profile_root/PortalServer/bin
. Vous devez vous connecter à l'aide de l'ID utilisateur d'administration. Les procédures suivantes fournissent des exemples :
- Si la sécurité WebSphere® Application Server est activée, définissez des ID et mot de passe utilisateur pendant la connexion comme présenté dans l'exemple suivant :
- AIX®HP-UXLinux™Solaris: ./wpscript.sh -port port_number -user user_id -password password
- IBM® i: wpscript.sh -port port_number -user user_id -password password
- Windows™ : wpscript.bat -port port_number -user user_id -password password
- z/OS® : ./wpscript.sh -port port_number -user user_id -password password
Les paramètres les plus courants sont expliqués brièvement dans la table suivante.
Tableau 1. Description des paramètres de base utilisés avec la tâche wpscript.bat|sh Paramètre Description -lang Indique le langage du fichier script, de la commande ou d'un interpréteur de commandes interactif. Entrez l'une des valeurs suivantes pour le paramètre -lang :- jacl
- jython
Ce paramètre est facultatif et ne possède pas de valeur par défaut. Cette option remplace les déterminations de langage basées sur les noms de fichiers script, les noms de fichiers script de profil ou la propriété com.ibm.ws.scripting.defaultLang.
Important : Une erreur se produit lorsque vous n'indiquez pas le langage de script sur la ligne de commande ou en tant que paramètre et que l'outil wsadmin ne peut pas déterminer le langage de script. Si vous ne spécifiez pas le langage de script en tant que valeur pour -lang, l'outil wsadmin détermine le langage de script comme suit :- Si vous spécifiez l'argument -f script_file_name, l'outil wsadmin détermine le langage à partir du nom du fichier script cible.
- Si vous indiquez l'argument -profile profile_script_name, l'outil wsadmin détermine le langage à partir du nom du script de profil.
-conntype Type de connexion devant être établi entre les opérations de scriptage. Les types de connexions valables sont :- SOAP
- RMI
- AUCUN
La valeur par défaut est SOAP. Ce paramètre est facultatif. Utilisez l'option -conntype NONE pour travailler en mode local. Le résultat est que le client de script n'est pas connecté à un serveur en cours de fonctionnement. Si le type de connexion NONE est sélectionné, les beans de script sont inactifs et ne peuvent pas être utilisés pour l'administration, à l'exception de la commande help.
-port Numéro de port de connexion. Ce paramètre est facultatif. Le numéro de port dépend des valeurs choisies lors de l'installation. Vous pouvez vérifier la valeur définie pour la propriété WasSoapPort dans le fichier wkplc.properties situé dans le répertoire approprié ci-dessous :- AIX®HP-UXLinux™Solaris: wp_profile_root/ConfigEngine
- IBM® i: wp_profile_root/ConfigEngine
- Windows™ : wp_profile_root\ConfigEngine
Si vous exécutez wpscript sur un serveur appartenant à une cellule gérée par un gestionnaire de déploiement, la valeur port_number peut varier en fonction des ports utilisés sur le système lorsque le gestionnaire de déploiement est créé. Pour vérifier la valeur, vérifiez le paramétrage de SOAP_CONNECTOR_ADDRESS dans le fichier serverindex.xml qui se trouve dans le répertoire approprié ci-après :- AIX®HP-UXLinux™Solaris: dmgr_profile_root/config/cells/cell_name/nodes/node_name
- IBM® i: dmgr_profile_root/config/cells/cell_name/nodes/node_name
- Windows™ : dmgr_profile_root\config\cells\cell_name\nodes\node_name
Pour z/OS® : Nom du port de connexion. Il s'agit du port SOAP du serveur de portail. Ce paramètre est facultatif. Pour déterminer le port SOAP, ouvrez la console WebSphere® Integrated Solutions Console, accédez à . Par exemple, si vous exécutez wpscript sur un serveur appartenant à une cellule gérée par un gestionnaire de déploiement, il se peut que la valeur du port SOAP soit 10033.
-user L'ID utilisateur sous lequel vous établissez la connexion. Ce paramètre peut être obligatoire, suivant votre configuration de sécurité.
-password Mot de passe pour l'ID utilisateur sous lequel vous établissez la connexion.
- Ouvrez une session du portail à l'aide d'une des commandes de script suivantes :
Jython :
Portal.login("user_ID", "password")
JACL :
$Portal login user_ID password
- Emettez les commandes de script de portail comme indiqué.
- Une fois que vous avez effectué toutes les tâches via l'interface de script du portail, fermez et quittez le processeur de script. Toutes les modifications que vous avez validées sont appliquées à la configuration de portail.
Mode script
Utilisez le mode script pour appliquer des modifications prédéfinies à la configuration d'un portail.
L'outil wpscript exécute un script Jython ou JACL qui contient les opérations administratives. Le client de script hérite du processeur de script de wsadmin, si bien qu'un administrateur peut exploiter le langage de script Jython ou JACL afin d'écrire des scripts d'administration réutilisables et extensibles. Ce mode est généralement retenu si des tâches administratives reproductibles sont crées : Ce mode est généralement retenu si des tâches administratives reproductibles sont créées. Par exemple, l'administrateur peut écrire un script produisant une sous-arborescence de page complète et ajouter des mises en pages et des portlets individuels sur chaque page.
Les utilisateurs disposant de droits d'accès leur permettant de lancer des requêtes d'interface de configuration XML peuvent modifier les configurations de toutes les ressources. L'interface de script du portail est globalement cohérente par rapport au modèle d'administration révélé par l'interface utilisateur du portail.
Avant d'utiliser le mode de script, assurez-vous qu'HCL Portal est en cours de fonctionnement et qu'un fichier de script de portail est disponible. Vous devez vous connecter à l'aide de l'ID utilisateur d'administration WebSphere. Utilisez la procédure suivante :
Toutes les modifications validées via le script sont appliquées immédiatement à la configuration de portail.
- Exemple de script Jython du portail
- L'exemple suivant est un fichier script Jython appelé testme.py :
# Scripting bean example: create a simple page (multi-column Layout) # # Procedure: create a multi-column page under the page that is currently # selected, and place the given portlets into the layout. # # parameters: # name The name of the page # portlet_names A list of portlet names. # returns: # oid The id of the page that has been created def create_multi_col_page(name, portlet_names): thePage = Content.create("page", name, "html") Content.select(thePage) lyt0 = Layout.create("container", "horizontal", "select") for pn in portlet_names: pid = Portlet.find("portlet", "cn", pn) Layout.create("control", pid) return thePage # main code starts here # set User ID/ pwd for portal Login command # Hint: User ID and passwords should normally not be placed inside a # configuration script; better use property files or command line arguments user = "user_ID" pwd = "password" Portal.login(user, pwd) # determine and select the parent of the page to be created. # In this example, This is the "Home" label. Content.select(Content.find("all", "uniquename", "ibm.portal.Home") # Invoke the page creation procedure. The label of the page is "My test page", # portlets to be added are the reminder portlet and the welcome portlet. newbie = create_multi_col_page("A Page", ["Reminder", "Welcome_to_WebSphere_Portal"]) print "ok, we are done."
- Exemple de script JACL du portail
- L'exemple suivant est un fichier script JACL appelé testme.jacl :
# Scripting bean example: create a simple page (multi-column Layout) # # Procedure: create a multi-column page under the page that is currently # selected, and place the given portlets into the layout. # # parameters: # name The name of the page # portlet_names A list of portlet names. # returns: # oid The id of the page that has been created proc create_multi_col_page { name portlet_names } { global Content Layout Portlet set thePage [$Content create page $name html] $Content select $thePage set lyt0 [$Layout create container horizontal select] foreach pn $portlet_names { set pid [$Portlet find portlet cn $pn] $Layout create control $pid } return $thePage } # main code starts here # set User ID/ pwd for portal Login command # Hint: User ID and passwords should normally not be placed inside a # configuration script; better use property files or command line arguments set user user_ID set pwd password $Portal login $user $pwd # determine and select the parent of the page to be created. # In this example, This is the "Home" label. $Content select [$Content find all uniquename "ibm.portal.Home"] # Invoke the page creation procedure. The label of the page is "My test page", # portlets to be added are the reminder portlet, and the welcome portlet. set newbie [create_multi_col_page "A Page" { "Reminder" "Welcome_to_WebSphere_Portal" } ] puts "ok, we are done."
- Profiles.
- Arguments de ligne de commande.
- argc
- Utilisez cette variable dans les scripts JACL pour spécifier le nombre d'arguments de ligne de commande.
- argv
- Utilisez cette variable dans les scripts Jython et JACL pour spécifier les arguments de ligne de commande.
user = "portaladmin"
pwd = "adminpwd"
et remplacez-les par celles-ci : if len(sys.argv) != 2:
print "invocation syntax: wpscript testme.py <user> <pwd>"
sys.exit(1)
user = argv[0]
pwd = argv[1]
set user portaladmin
set pwd adminpwd
et remplacez-les par celles-ci :if { $argc != 2 } {
puts "invocation syntax: wpscript testme.jacl <user> <pwd>"
exit
}
set user [lindex $argv 0]
set pwd [lindex $argv 1]
Sensibles en termes de sécurité, le nom d'utilisateur et le mot de passe sont supprimés du script. Le code modifié s'attend à ce que l'ID utilisateur et le mot de passe soient définis en tant qu'arguments de ligne de commande, comme par exemple :
Jython : wpscript.sh -port port_number -f testme.py user_IDpassword JACL :wpscript.sh -port port_number -f testme.jacl user_ID password
Exécution de commandes de script dans un profil
Un profil correspond à un script s'exécutant avant le script principal ou avant le passage en mode interactif. Les profils peuvent servir à paramétrer des comportements propres à l'environnement ou des données propres à l'utilisateur. Les profils sont définis lors de l'invocation de wpscript, à l'aide du paramètre -profile. Par exemple, la commande login peut être placée dans un profil.
- Exemple de script de profil Jython
- L'exemple suivant est un script de profil Jython appelé mylogin.py :
# scripting profile # contains log-in procedure on portal with disabled security if len(sys.argv) != 2: print "invocation syntax: wpscript -f testme.jacl -profile mylogin.py user_ID password" sys.exit(1) user = argv[0] pwd = argv[1] Portal.login(user, pwd)
Supprimez ou mettez en commentaire les instructions suivantes dans le fichier de script testme.py :if len(sys.argv) != 2: print "invocation syntax: wpscript testme.py user_ID password" sys.exit(1) user = argv[0] pwd = argv[1] Portal.login(user, pwd)
Pour appeler
mylogin.py
, entrez la commande suivante : wpscript.sh -port port_number -profile mylogin.py -f testme.py user_ID password - Exemple de script de profil JACL
- L'exemple suivant est un script de profil JACL appelé mylogin.jacl :
# scripting profile # contains log-in procedure on portal with disabled security if { $argc != 2 } { puts "invocation syntax: wpscript -f testme.jacl -profile mylogin.jacl user_ID password" exit } set user [lindex $argv 0] set pwd [lindex $argv 1] $Portal login $user $pwd
Remove or comment out the following statements in the testme.jacl script file:if { $argc != 2 } { puts "invocation syntax: wpscript testme.jacl user_ID password" exit } set user [lindex $argv 0] set pwd [lindex $argv 1] $Portal login $user $pwd
To invoke
mylogin.jacl
, enter the following command: wpscript.sh -port port_number -profile mylogin.jacl -f testme.jacl user_ID password
- Scripts Jython
# scripting profile # contains log-in procedure on portal with enabled security Portal.login()
- Scripts JACL
# scripting profile # contains log-in procedure on portal with enabled security $Portal login