Aller au contenu

CLI sagcc - Reference des commandes

Configuration initiale

Variables d'environnement

# Methode 1: Variables manuelles
export SAG_HOME=/opt/SAGCommandCentral
export CC_CLI_HOME=$SAG_HOME/CommandCentral/client
export PATH=$PATH:$CC_CLI_HOME/bin

# Methode 2: Sourcer le profile
source $SAG_HOME/profiles/CCE/bin/sagccEnv.sh

Connexion par defaut

# Le CLI utilise par defaut
# URL: http://localhost:8090
# User: Administrator
# Password: (demande interactive)

# Specifier explicitement
sagcc list landscape nodes \
    -h localhost \
    -p 8090 \
    -u Administrator \
    -x manage123

Commandes par categorie

Licenses

# Lister les licences
sagcc list license-tools keys

# Importer une licence
sagcc add license-tools keys -i /path/to/license.zip

# Exporter une licence
sagcc get license-tools keys <alias> -o /path/to/export.xml

# Supprimer une licence
sagcc delete license-tools keys <alias>

# Details d'une licence
sagcc get license-tools keys <alias>

Repositories

Repositories Produits

# Lister les repos
sagcc list repository products

# Ajouter un repo image (fichier local)
sagcc add repository products image \
    name=wM10.15-products \
    -i /path/to/products.zip

# Ajouter un repo mirror
sagcc add repository products mirror \
    name=wM10.15-mirror \
    sourceRepos=wM10.15-products

# Ajouter un repo Empower (en ligne)
sagcc add repository products webm \
    name=webm-repo \
    url=https://sdc.softwareag.com/... \
    username=empower-user \
    password=empower-pass

# Supprimer un repo
sagcc delete repository products <name>

Repositories Fixes

# Lister les repos fixes
sagcc list repository fixes

# Ajouter un repo fixes
sagcc add repository fixes image \
    name=wM10.15-fixes \
    -i /path/to/fixes.zip

# Lister les fixes disponibles
sagcc list repository fixes products <repo-name>

Landscape - Nodes

# Lister tous les nodes
sagcc list landscape nodes

# Details d'un node
sagcc get landscape nodes <alias>

# Creer un node
sagcc create landscape nodes \
    name="Integration Server 1" \
    alias=is1 \
    url=http://is1-host:8092

# Modifier un node
sagcc update landscape nodes <alias> \
    url=https://is1-host:8093

# Supprimer un node
sagcc delete landscape nodes <alias>

# Status d'un node
sagcc get landscape nodes <alias> status

# Ping un node
sagcc exec landscape nodes <alias> ping

Landscape - Environments

# Lister les environments
sagcc list landscape environments

# Creer un environment
sagcc add landscape environments \
    alias=PROD_ESB \
    name="Production ESB Environment"

# Ajouter un node a un environment
sagcc add landscape environments PROD_ESB nodes \
    nodeAlias=is1

# Lister les nodes d'un environment
sagcc list landscape environments PROD_ESB nodes

# Retirer un node
sagcc delete landscape environments PROD_ESB nodes is1

# Supprimer un environment
sagcc delete landscape environments PROD_ESB

Security - Credentials

# Lister les credentials
sagcc list security credentials

# Ajouter des credentials pour un node
sagcc add security credentials \
    nodeAlias=is1 \
    runtimeComponentId=SPM-CONNECTION \
    authenticationType=BASIC \
    username=Administrator \
    password=manage123

# Credentials pour acces database
sagcc add security credentials \
    alias=db-creds \
    runtimeComponentId=COMMON-JDBC \
    authenticationType=BASIC \
    username=sa \
    password=SqlPass123

# Modifier des credentials
sagcc update security credentials <alias> \
    password=newPassword

# Supprimer
sagcc delete security credentials <alias>

Inventory

# Lister les produits installes sur un node
sagcc list inventory products nodeAlias=is1

# Lister les fixes installes
sagcc list inventory fixes nodeAlias=is1

# Lister les runtimes
sagcc list inventory runtimes nodeAlias=is1

# Details d'un produit
sagcc get inventory products nodeAlias=is1 productId=IS

# Composants d'un runtime
sagcc list inventory components nodeAlias=is1 runtimeId=OSGI-IS_default

Lifecycle (Demarrage/Arret)

# Demarrer un runtime
sagcc exec lifecycle runtimes <nodeAlias> <runtimeId> start

# Arreter un runtime
sagcc exec lifecycle runtimes <nodeAlias> <runtimeId> stop

# Redemarrer
sagcc exec lifecycle runtimes <nodeAlias> <runtimeId> restart

# Exemples concrets
sagcc exec lifecycle runtimes is1 OSGI-IS_default start
sagcc exec lifecycle runtimes is1 OSGI-UM_default stop

Monitoring

# Status d'un runtime
sagcc get monitoring runtimestatus <nodeAlias> <runtimeId>

# Status de tous les runtimes d'un node
sagcc list monitoring runtimestatus <nodeAlias>

# Metriques
sagcc get monitoring metrics <nodeAlias> <runtimeId>

# Alertes
sagcc list monitoring alerts

Provisioning

# Appliquer un template
sagcc exec provisioning composite apply \
    nodeAlias=is1 \
    template=is-layer \
    repo.product=wM10.15-products \
    repo.fix=wM10.15-fixes

# Lister les templates disponibles
sagcc list provisioning templates

# Exporter un template
sagcc get provisioning templates <template-id> \
    -o /path/to/template.yaml

# Importer un template
sagcc add provisioning templates -i /path/to/template.yaml

Jobs (Operations asynchrones)

# Lister les jobs recents
sagcc list jobmanager jobs

# Details d'un job
sagcc get jobmanager jobs <job-id>

# Annuler un job
sagcc exec jobmanager jobs <job-id> cancel

# Attendre la fin d'un job
sagcc exec jobmanager jobs <job-id> wait

Exemples de workflows complets

Workflow 1: Ajouter un nouveau serveur IS

#!/bin/bash
# add-is-server.sh

NODE_ALIAS="prodIs2"
NODE_HOST="prod-is2.example.com"
ADMIN_PASS="manage123"

# 1. Creer le node
sagcc create landscape nodes \
    name="Production IS 2" \
    alias=$NODE_ALIAS \
    url=http://$NODE_HOST:8092

# 2. Configurer les credentials
sagcc add security credentials \
    nodeAlias=$NODE_ALIAS \
    runtimeComponentId=SPM-CONNECTION \
    authenticationType=BASIC \
    username=Administrator \
    password=$ADMIN_PASS

# 3. Verifier la connexion
sagcc get landscape nodes $NODE_ALIAS status

# 4. Ajouter a l'environment
sagcc add landscape environments PROD_ESB nodes \
    nodeAlias=$NODE_ALIAS

echo "Node $NODE_ALIAS added successfully"

Workflow 2: Deployer IS sur un node

#!/bin/bash
# deploy-is.sh

NODE_ALIAS="prodIs2"

# 1. Verifier les repos
sagcc list repository products
sagcc list repository fixes

# 2. Appliquer le template IS
JOB_ID=$(sagcc exec provisioning composite apply \
    nodeAlias=$NODE_ALIAS \
    template=is-layer \
    repo.product=wM10.15-products \
    repo.fix=wM10.15-fixes \
    -f json | jq -r '.jobId')

echo "Job started: $JOB_ID"

# 3. Attendre la fin
sagcc exec jobmanager jobs $JOB_ID wait

# 4. Verifier l'installation
sagcc list inventory products nodeAlias=$NODE_ALIAS

# 5. Demarrer IS
sagcc exec lifecycle runtimes $NODE_ALIAS OSGI-IS_default start

Options globales

Option Description
-h, --host Hostname CCE (defaut: localhost)
-p, --port Port CCE (defaut: 8090)
-u, --user Username (defaut: Administrator)
-x, --password Password
-f, --format Format sortie: text, json, xml
-o, --output Fichier de sortie
-i, --input Fichier d'entree
-v, --verbose Mode verbeux
--wait Attendre la fin des jobs

Astuces

Output JSON pour scripting

# Parser avec jq
sagcc list landscape nodes -f json | jq '.[] | .alias'

# Compter les nodes
sagcc list landscape nodes -f json | jq 'length'

Boucle sur les nodes

for node in $(sagcc list landscape nodes -f json | jq -r '.[].alias'); do
    echo "Checking $node..."
    sagcc get landscape nodes $node status
done

Alias utiles

# Dans .bashrc
alias sagcc-nodes='sagcc list landscape nodes'
alias sagcc-status='sagcc get landscape nodes local status'
alias sagcc-jobs='sagcc list jobmanager jobs'