Exécuter le script CLI SNS en ligne de commande
Depuis l'interface de ligne de commande, vous pouvez :
- ajouter un script dans le répertoire de scripts sur le serveur SMC et l'exécuter immédiatement,
- exécuter un script déjà stocké sur le serveur SMC,
- ajouter un script dans le répertoire de scripts sur le serveur SMC,
- supprimer un script du répertoire de scripts du serveur SMC,
- afficher la liste des scripts stockés sur le serveur SMC.
La commande principale smc-sns-cli-script
doit être suivie d'une des cinq commandes correspondant à ces actions.
Le répertoire de stockage des scripts s'appelle nsrpc-scripts et est accessible dans /data/users/.
- Pour afficher la liste des commandes, tapez --help :
- Chacune de ces commandes possède des options spécifiques. Pour les afficher, tapez la commande
smc-sns-cli-script <nom_action> -h
.
- Pour ajouter le script sur le serveur SMC et l'exécuter immédiatement, utilisez la commande :
smc-sns-cli-script exec <chemin_fichier>
- Pour exécuter un script déjà stocké sur le serveur SMC, utilisez la commande :
smc-sns-cli-script run <nom_script>
Parmi les options de ces commandes, choisissez obligatoirement entre :
- --firewall-list : à faire suivre d'une liste de noms de firewalls séparés par des virgules,
- --all : indique qu'on exécute le script sur tous les firewalls,
- --csv-file : à faire suivre d'un chemin vers un fichier CSV comprenant la liste des firewalls et les variables associées. La commande reprend alors les firewalls spécifiés dans ce fichier. Pour plus d'informations, reportez-vous à la section Utiliser des variables .
L'option --csv-file peut être utilisée conjointement avec les options --firewall-list et --all. Dans ce cas, ces deux dernières options précisent la liste des firewalls sur lesquels exécuter le script.
Les options facultatives sont les suivantes :
- --dry-run : permet d'afficher le contenu du script incluant les variables associées à chaque firewall, uniquement à des fins de consultation,
- --raw-output : permet d'afficher le déroulement de l'exécution du script en texte brut,
- --update : permet de forcer l'ajout du script sur le serveur si un script portant le même nom est déjà présent. Cette option n'est disponible que pour la commande
exec
.
Lorsqu'un déploiement de configuration est en cours ou qu'un autre script est en cours d'exécution, il est impossible d'exécuter un nouveau script en ligne de commande. Un message d'erreur s'affiche si le déploiement n'est pas totalement terminé sur tous les firewalls connectés ou si le script n'a pas fini de s'exécuter. Les firewalls pour lesquels le déploiement de configuration a été différé n'empêchent pas l'exécution de scripts.
Pour envoyer ou réceptionner des fichiers joints à un script, reportez-vous à la section Joindre des fichiers à un script et réceptionner des fichiers générés par script.
ATTENTION
Un administrateur de dossiers dont l'accès en écriture est limité à certains dossiers sur SMC ne peut pas effectuer cette opération. Pour plus d'informations, reportez-vous à la section Restreindre les droits d'accès des administrateurs de dossiers.
Pour ajouter un script dans le répertoire de scripts du serveur SMC, utilisez la commande smc-sns-cli-script add <chemin_fichier>
.
L'option --update : permet de forcer l'ajout du script sur le serveur si un script portant le même nom est déjà présent.
Pour supprimer un script du serveur SMC, utilisez la commande smc-sns-cli-script delete <nom_script>
.
Pour afficher la liste des scripts présents dans le répertoire de scripts du serveur SMC, utilisez la commande smc-sns-cli-script list
.
Voici un exemple d'utilisation d'un fichier CSV avec un script. Pour tous les firewalls d'un parc (deux dans cet exemple), on souhaite créer un objet qui représente le serveur Active Directory principal et un objet qui représente le serveur AD secondaire, en tenant compte des assertions suivantes :
- Le serveur AD principal doit être un objet avec résolution d'adresse IP statique,
- Le serveur AD secondaire doit être un objet avec résolution d'adresse IP dynamique,
- Le nom de chaque objet doit indiquer s'il s'agit du serveur principal ou secondaire,
- Le commentaire de chaque objet doit indiquer le nom du firewall sur lequel il sera créé,
- L'adresse IP de chaque serveur AD est différente pour chaque firewall.
- Créez le script /data/tmp/ad.script :
# Create a new host
CONFIG OBJECT HOST NEW name=name=%type%AD.%FW_NAME%".com comment="%type% AD server for FW %FW_NAME%" ip="%ip_addr%" resolve=%mode%
CONFIG OBJECT ACTIVATE - Créez le fichier CSV /data/tmp/ad.csv pour le parc de deux firewalls :
firewall;type;ip_addr;mode paris;Main;1.1.1.1;static paris;Backup;1.1.2.2;dynamic lyon;Main;4.4.4.4;static lyon;Backup;4.4.5.5;dynamic
- Entrez la commande suivante dans l'interface de ligne de commande :
smc-sns-cli-script exec /data/tmp/ad.script --csv-file /data/tmp/ad.csv
Voici le résultat attendu pour chacun des deux firewalls paris et lyon :
CONFIG OBJECT HOST NEW name=MainAD.paris.com comment="Main AD server for FW paris" ip="1.1.1.1" resolve=static
100 code=00e01700 msg="Object successfully added"
CONFIG OBJECT ACTIVATE
100 code=00a00100 msg="Ok"
CONFIG OBJECT HOST NEW name=BackupAD.paris.com comment="Backup AD server for FW paris" ip="1.1.2.2" resolve=dynamic
100 code=00e01700 msg="Object successfully added"
CONFIG OBJECT ACTIVATE
100 code=00a00100 msg="Ok"
CONFIG OBJECT HOST NEW name=MainAD.lyon.com comment="Main AD server for FW lyon" ip="4.4.4.4" resolve=static
100 code=00e01700 msg="Object successfully added"
CONFIG OBJECT ACTIVATE
100 code=00a00100 msg="Ok"
CONFIG OBJECT HOST NEW name=BackupAD.lyon.com comment="Backup AD server for FW lyon" ip="4.4.5.5" resolve=dynamic
100 code=00e01700 msg="Object successfully added"
CONFIG OBJECT ACTIVATE
100 code=00a00100 msg="Ok"
Dans un fichier CSV, les champs sont séparés par un délimiteur, souvent la virgule ou le point virgule. Par défaut la commande smc-sns-cli-script
attend le caractère point virgule (;) en tant que délimiteur. Suivant le fichier CSV, le délimiteur peut être différent. Pour changer le délimiteur attendu par la commande, vous devez modifier la valeur de la variable SMC_SNS_CLI_CSV_DELIMITER :
- Connectez-vous au serveur SMC via la console de votre hyperviseur ou en SSH.
- Dans le fichier /data/config/fwadmin-env.conf.local, modifiez la valeur de la variable d'environnement :
SMC_SNS_CLI_CSV_DELIMITER=,
. - Redémarrez le serveur avec la commande
nrestart smc
.