Click demo scripts to access the repository in GitHub. Once you have your template, you need content to parse. Originally developed to allow programmatic access to information. you have just build a etl using pure python script. Diagnosis. This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files. To write a custom parser in Python, see The Python Parser. • Each python script can read from stdin and print on stdout/stderr. These are usually text files contain a list of options with a name and a value, such as "port=8080" or "user: admin". Configure Proxies through the Java Control Panel. This little python script can be scheduled to copy configs periodically saving network engineers from possible unforeseen havoc because they don't have backup copy of the router config and router has crashed. How to parse JSON string in Python. import pexpect. Write and debug your network automation Python scripts from PGT Learn more. Version Numbering in Python Package Tags 15. A year ago or so I posted an article on How to configure 50000+ CPE routers. like Cisco ios and NXOS. Automating Cisco commands with C. Welcome to the syslog-ng Open Source Edition 3. python script. This course shows you practical examples of using Python to programmatically configure Cisco network devices rather then just talking about it. If there is a syslog message with pattern "CONFIG_I" in it, the script will be executed. For programming the API interfaces you can use any language you want, and you will need to program/script because both leading SDN solutions on the market (Cisco ACI and VMware NSX) provide the programmability using the API interfaces. Now we will see how to accomplish the same task, in a more powerful way, when writing a python script. py or Here is a link for Cisco IOU. The following article explains how to parse data from a. It is much similar to Windows INI files. Job Description: Network Engineer III Job ID 936152 | ADCI - BLR 14 SEZ DESCRIPTION At Amazon, we believe that every day is Day One A day to take the first step A day to meet new. Automated Cisco WLC backup with a Python Script As part of my ISE work I generally make changes to WLCs, I'm not really a Wi-Fi Guy so don't ask me about channel width but I do a lot with authentication and in ISE's case that usually includes an ACL or two on the WLC!. Program Information and Download (View Documentation) Cisco Config Parser: Script to pull out useful data in a Cisco Config file. The commands must be the exact same commands as found in the device running-config. Now using the script below, we can simple get our backups. For my latest project I wanted to communicate with a Cisco device over serial via the console port with my python program. Created a script that I called ssh_wlc. It is available so that developers that use older versions of Python can use the latest features available in the json lib. Small Script for creating a simple CISCO VLAN config. CiscoConf (consisting of ciscoconfd and ciscoconfr) allows full configuration histories for Cisco routers to be maintained remotely. I'd also like it to be run in the background. File Endings give the user and the system an indicator about the content of a file. Originally developed to allow programmatic access to information. Automating Cisco IOS By Kirk Byers 2015-05-26. Scripting a Cisco switch with Python and Expect. devel/R-cran-optparse: Command line flag parser inspired by Python's optparse Command line parser inspired by Python's 'optparse' library to be used with Rscript to write "#!" shebang scripts that accept short and long flag/options. Titania software is trusted to secure the world’s most critical networks against preventable attacks. 1 for an example of expected output from BackTrack. The Junos PyEZ Config utility provides instance methods to lock the configuration, load the configuration data and specify how to integrate it into the configuration, commit the configuration, and unlock the configuration. Cisco ASA doesn't support CEF, so the logs are sent as Syslog and the Azure Sentinel agent knows how to parse them as if they are CEF logs. Plus, if you’d rather use a newer version of Python, say Python 2. With that said, always test a script on a single device or a small lab. Cisco has written a python tool, known as Cisco Automatic Upgrade Tool, that upgrades an IOS-XR device with pre and post checks. This would include other vendors that are Cisco-like (i. txt as input. The parsed information should be a list format. you have just build a etl using pure python script. It can be ran interactively or as part of a script. Config utility. The python scripts can be used to execute configuration commands, show commands, parse CLI output, call other scripts etc. I have Python script for telnet, this script took ipaddress & commands from seperate notepad and finally configuration store text file in it ipaddress name. This works great most of the time, but what about the "Value: Yes" and "Single: True" values?Those are booleans. Hi All, I often need to review router and firewall plain config files in order to understand VLAN configs/ACLs, routing setup, etc. In his previous video, he demonstrated how to program a Cisco virtual router using Python script. Configure Syslog Daemon. Nexus 3000, Python, Linux, and Open Switch Platforms. Python Syslog Setup. It is available so that developers that use older versions of Python can use the latest features available in the json lib. 1a for Zero Touch Provisioning (ZTP) that uses a guestshell, DHCP, and a python script. YAML file with data you want to insert into your configuration; A Python script that feeds data taken from YAML file into Jinja2 template; Now some details. At a recent network programmability workshop one of the attendees asked, "Why is Cisco teaching me Python? I was leading a workshop for a group of senior network engineers at a large financial company that was organized and sponsored by a member of their cloud leadership team. We had explained the ways to take a Telnet session to the Switches in our previous posts. In this article we will do the configuration backup for a list of Cisco router/switch devices with Python script using SSH secure protocol on Linux server running CentOS7. 2 and the Cisco Nexus 9000 Series devices support Python v2. If you like to generate a configuration based on the extracted values, please take a look at Configuration Generator with Python and Jinja2 post. configurations that are text-based and that use space-indentation to indicate hierarchy). These are usually text files contain a list of options with a name and a value, such as "port=8080" or "user: admin". This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files. # Extracts some general router config info as well. Start learning today with our Cisco certification, Linux, Python, Ansible, SDN, GNS3, Packet Tracer and other courses. 22 Administrator Guide! This document describes how to configure and manage syslog-ng. 0 Beta there is a map interface which supports visual design of your network. - generate_listview. This Python script can backup (and restore) about 75% of the config. Type at the command line: show running config; Copy the contents displayed. If you like to generate a configuration based on the extracted values, please take a look at Configuration Generator with Python and Jinja2 post. Now we will see how to accomplish the same task, in a more powerful way, when writing a python script. Automation scripts to control Cisco devices it is pretty straightforward to create some config scripts as well. To enter the python environment on the Nexus NX-OS use the python command. Version Numbering in Python Package Tags 15. shconfparser is a vendor independent library where you can parse the following formats:. To get an individual child's name, you would need to additionally parse a comma separated string. How to Connect Cisco Router with Perl Scripts to configure the Cisco router for telnet connectivity. You need to put file location in the first line of the script. Templates in Jinja2/Yaml. This small Python script will pull together your YAML data file and Jinja2 cli configuration template. Rather than using a human, you can easily rely on regex patterns and the Python re library to automate it. API, or an Application Programming Interface, is just a small webserver answering to xml/json requests. Between square brackets, we can put the. Introduction. Connecting to the routers and running commands programmatically is simple. Python op scripts can make changes to the Junos OS configuration using the Junos PyEZ jnpr. The configuration files are organized into sections, and each section can contain name-value pairs for configuration data. import argparse parser = argparse. Python Syslog Setup. Hi, as you asked to me Q, How is my python? , honestly i tell you i heard lots of about it but never used, today i used it and frankly i tell u its amazing, i started finding more about it and i got script for cisco switch and as tested it works !!!. Hi All, I often need to review router and firewall plain config files in order to understand VLAN configs/ACLs, routing setup, etc. Parsing locally stored Cisco, Juniper, Arista and HP configuration files and extracting various pieces of information, using a very straightforward Python module. Parsing JSON from command line using Python 2014-02-04 11:31 · Command Line. This Python network programming course is aimed at network professionals or aspiring network professionals who have little to no experience in network automation. That doesn't make much sense in practicality. It is much similar to Windows INI files. How to parse and convert ini file into bash array variables? I would use simple python script for you can use git config as a general-purpose INI parser. The CSV file can then be used in your favorite spreadsheet tool for more analysis. py & and I would like to pass a variable 'test' to the script in the crontab, something like so: 0,30 * * * * python /home/pi/pythonscripts/script. I am trying to create a PowerShell script to logon to a Cisco router, get into privilege mode and output the configs to a text file, however I get the following error: A positional parameter cannot be found that accepts argument 'Successfully connected to router. Use the ConfigParser module to manage user-editable configuration files for an application. There is a new feature on Catalyst 9000 series switches starting in 16. Learn to configure IPv6 static routing. Select the Python Script radio box and click the button. It's just $37/month and you can cancel at any time. This is meant as a simple writeup to fill a gap in various "HOWTO"'s that I read when trying to setup my Apache2 server to process python scripts as CGI, though it would apply to any cgi scripts (perl scripts, compiled binaries…). Start up your favourite terminal program (such as HyperTerminal - select "Direct to COMx"). Automating Cisco commands with C. You will see demonstrations of the configuration of both Cisco routers and switches in GNS3. Run Multiple Apps on One Parse-Server; What is a Linux Bridge? How to Configure it? How to install Python in different directory leaving the default untouched. Here is a simple way to do that, becuase Cisco doesnt have a native text editor, so I just choose to open a file and write to it:. from pipeline import ReleaseWorker import inspect def _parse_step_config(step): # Apply step specific step_config. They are extracted from open source Python projects. My playbook is called backup_cisco_router. Introducing Python and Web Services Protocols for Network Engineers 3. Run Multiple Apps on One Parse-Server; What is a Linux Bridge? How to Configure it? How to install Python in different directory leaving the default untouched. Definition and Usage. Download CIsco Script TOol for free. There are multiple tools available in order to do so, and I'm personally using jq, a lightweight and flexible command-line JSON processor. With GNS3, your script writers can export the current running configuration on the devices, capture a complete ROM image of the devices, and then put. csv file and a. ACI Python Egg 122. what does a “SAX” have to do with UCCX…I’m sure there are many bugs to pick with how Cisco’s products operate (if that was a pun then it was definitely intended) especially when things go sideways. Version Numbering in Python Package Tags 15. That doesn't make much sense in practicality. Where to Find Python Scripts for ACI 124. 5+ is required here since we are using PEP 484 type hints. You need to put file location in the first line of the script. Here is what my configuration file looks like (I used xml so it is easier to parse):. You can configure a script for an alert to write to the system log daemon. As of CiscoConfParse 1. The parsed information should be a list format. Hi All, I often need to review router and firewall plain config files in order to understand VLAN configs/ACLs, routing setup, etc. In this blog article we'll build on this knowledge and use ncclient with Cisco Nexus devices. could u pls confirm. This document describes config, a module for configuring Python programs which aims to offer more power and flexibility than the existing ConfigParser module. Programmability Configuration Guide, Cisco IOS XE Everest 16. I could have run a comparison script on these files, but I preferred to do this visually. send("terminal length 0 ") time. How was the automation done? On previous post I have worked on a script that converts unstructured command output into structured dictionary/json format, with the dictionary type it is easy to evaluate the data i need and compare against. Python offers also some other libraries or tools related to parsing. simplejson mimics the json standard library. Connecting to Cisco Console Port with MINICOM. Python Script; Interactive Python Prompt. Stage 2 was to then remove any unused names, objects and object-groups. install interpreter jni mobile network python qt. Value interpolation using Python formatting strings is also supported, to build. Within this article we will look at how to interact with a networking device (Cisco CSR) using the NETCONF protocol. This has been written for network engineers to be able to create an Excel inventory of switch/router device info from a folder of 'Show version'. Enough theoretical talk for now. parse_args() Run the code Run the code with the --help option (Running the script without any options results in nothing displayed to stdout) python program. x though i want to focus later in 3. Cisco ACI Netconf/YANG Arista Ansible. will be using SSH to push the configs. Python (2) Unix Shell (2) it's a perl script which parse an xml config file, Cisco Config Parser is designed to take a cisco config from a flat file and. You will see demonstrations of the configuration of both Cisco routers and switches in GNS3. This is meant as a simple writeup to fill a gap in various “HOWTO”‘s that I read when trying to setup my Apache2 server to process python scripts as CGI, though it would apply to any cgi scripts (perl scripts, compiled binaries…). Such files usually have. INI extension. Execute Python; Execute Python (Python Scripting) Synopsis Executes a Python script. Part 2 - Preparing to build a Cisco config with Excel Ok, so the scenario is this. You will need to read and parse it from files, though, and that's why you set up that distros. Here is a simple way to do that, becuase Cisco doesnt have a native text editor, so I just choose to open a file and write to it:. html: 506 B: 1. One way to workaround around this is to use the Embedded Event Manager (EEM) to trigger execution of certain commands, or even a TCL script. It was a new experience for me, and one of the first problems I encountered was backing up the configs,. py Result > python telnet. Due to replacement of the Office 365 IP list with new web service, I wrote a new, improved script that returns all IPs needed for all services of O365 in format for Cisco ASA:. Program can be used at LAN and WAN networks. could u pls confirm. The first line of the script embeds an EEM registration. BrainScript and Python: Understanding and Extending Readers. The result should look like this:. python ssh script to automate gathering info and pushing configs to Cisco routers and switches - config_file. This is a self contained guide on how to use code driven CLI scraping to connect to a Cisco Catalyst 3560 device and interact with it. A helper Python script 1_send_yaml. There are the times when a network engineer forgets to copy router config to the TFTP server after he/she makes changes to CISCO config. The ConfigParser class implements a basic configuration file parser language which provides a structure similar to what you would find on Microsoft Windows INI files. Using Selenium for automated website testing. So it has been a few weeks since I started learning Python and wanted to share my first program. How to parse JSON string in Python. You can use a library called ciscoconfparse, it understands and can parse cisco ios as parent and child items using the indents. I would like some general tips and tricks on how to parse the GRUB configuration file in a generic manner to use in a Python script. You can use it to manage user-editable configuration files for an application. The commands must be the exact same commands as found in the device running-config. The script reads the complete ASA config, gets all the names, objects and object-groups then works out which ones aren’t referenced anywhere else:. Created a script that I called ssh_wlc. You will find simple python script bellow to extract protocol, source interface, source IP address, destination interface, destination IP address and destination port from the logs. By Szymon Lipiński April 3, 2015 Some time ago I was working on a simple Python script. Select the Python Script radio box and click the button. I wanted to issue show command on multiple firewalls without any expensive software. Between square brackets, we can put the. We can now use a Python script to parse the LLDP neighbor output from each device and construct a network topology graph from it. In this post I will present a python module that makes the parsing of cisco configuration files easy. Protecting 25. Configuring the Apache Web Server to Run Python on Windows. Within this article we will look at how to interact with a networking device (Cisco CSR) using the NETCONF protocol. If there is a syslog message with pattern 'CONFIG_I' in it, the script will be executed. There are the times when a network engineer forgets to copy router config to the TFTP server after he/she makes changes to CISCO config. I am attempting to write a script in Python that will SSH into a Cisco device, run "show version", display the results in notepad, then end the script. Modeling Tenants in XML 119. those devices are deployed in 3 different format. • Introduction to Automating Nexus • Power on Auto Provisioning • Python • EEM • NX-API • Configuration Management Tools • Netconf • XMPP • Conclusion Agenda 3. Python programs which are designed as a hierarchy of components can use config to configure their various components in a uniform way. you have just build a etl using pure python script. The really nice thing is that we can also run Python scripts! So, the goal is to write a Python script to collect some data and to push them off-box to an external collector 🙂 This can be done by running the script, store the data on a file and copy it to the external collector. Use this approach for the best reliability and performance on server-side apps. python ssh script to automate gathering info and pushing configs to Cisco routers and switches - config_file. When you relog to the device, the value will be set to default, which is a good thing cause we want only our Python-Telnet session to get a non-more-like terminal mode. 5, CNTK is moving away from the monolithic reader design towards a more composable model that allows you to specify and compose input data of different formats. Cisco Python Scripts Software CapiSuite v. 1 for an example of expected output from BackTrack. Once you have your template, you need content to parse. Find resources written in VB Script, PowerShell, SQL, JavaScript or other script languages. Managing device configuration changes using a script that regularly saves the configuration files from your network devices to the local system, compares them with previous file. # The extracted information is saved as XML to enable further analysis and reuse. 2 -u cisco1 -p cisco1 -R /home/cisco/ca. The last step before saving the output file is to collect interface configuration by parsing the Using Python to script Cisco routers using Python scripts. python script to ssh and telnet and take input from Excel sheet python script to ssh into cisco device; cisco (1) config_template (3) contrail (2) DC (1). sh” script, or manually using openssl. py Result > python telnet. It uses abbreviated versions of the commands exported by telnetlib followed by any necessary arguments. For example, consider the following configuration:. You will see demonstrations of the configuration of both Cisco routers and switches in GNS3. Allows to get configs, do configuration, install new images, change passwords, do single or list of show commands and lots more for a given list of devices (running parallel proz. How to Connect Cisco Router with Perl Scripts to configure the Cisco router for telnet connectivity. Python offers also some other libraries or tools related to parsing. ArgumentParser() parser. I built a working list comprehension with a manually created list in the python shell. This module provides an implementation for working with IOS configuration sections in a deterministic way. 248 Technologies -AXE, NEC-) to Huawei IMS (SIP protocol platform) using a MSAN/DSLAM ZTE Access equipment , I have been involved in the planning, implementation, configuration, testing working with HQ at the same time, trace analysis and migration script. Python For Network Engineers - Netmiko, Napalm, PynTC, Telnet - Program networks using Python. It was designed to store and transport data. Cisco Discovery Protocol (CDP) is a proprietary Layer 2 Data Link Layer network protocol used to share device information with devices connected on the same subnet. Automating with NX-OS - Let's Get Started Jeff McLaughlin, Principal TME [email protected] This may not be a concern for you, but if file permissions are incorrect, it may be possible for an attacker with filesystem access to execute code as a privileged user by injecting code into a config file loaded by an otherwise-secured script such as an init script. In this blog post I will cover how to use one of the new parsers to parse CDP packets included in version 2. The generic do iterates through the steps (that are methods in the corresponding pipeline worker class) running them. Within this article we will look at how to interact with a networking device (Cisco CSR) using the NETCONF protocol. We just need to know what Cisco IOS show command has the information we want. Complete with with source, OpenSSL libraries, CA bundles and binaries for Windows, Linux, Mac OS X and FreeBSD. 2, that never version might be already installed. I was working with Selenium (well, Python) scripts for several years now, this article aims to provide two basic Python scripts that can be used to log in and then log out from a website. CiscoConf (consisting of ciscoconfd and ciscoconfr) allows full configuration histories for Cisco routers to be maintained remotely. ACI SDK 122. You then employed the argv submodule which returns the list of the arguments passed to a Python script where argv[0] contains the name of the Python script. Hi everyboy, today I want to share with you a project I've worked on during the past days. We then move onto covering libraries such as netmiko and NAPALM. py in a shell window. Script to import Office 365 IP list to Cisco ASA 9 October, 2017 Office 365 , PowerShell 14 Comments I had problem with Office 365 because of firewall, so I wrote script that makes list of all IPs needed for O365 that can be easily imported to Cisco ASA:. Well, a good NMS like Orion can do a lot of that. Getting set up. This document describes config, a module for configuring Python programs which aims to offer more power and flexibility than the existing ConfigParser module. An environment to run Python code, for this post I'm using a stand-alone Python 3 script. I prefer YAML over JSON because its much easier for human readability, although the language interpreter converts YAML into JSON during run-time. Note: NetMRI needs the ENABLE password to access configuration files on some devices and to run the Configuration Command Scripts and Perl/Python scripts. There is a python script written by Steve Campbell which extracts Call Detailed Record (CDR) for an extension using Python Script. I have found a script here https://docs. yml if the configuration is done in YAML format *. This Python script can backup (and restore) about 75% of the config. Introduction to Python for Cisco Python Tutorial: Automate Parsing and. Jun 18 th, 2016 | Comments. This would include other vendors that are Cisco-like (i. Manage Python Script Options. First, we'll learn how to install the pytesseract package so that we can access Tesseract via the Python programming language. The first line of the script embeds an EEM registration. Before using this operator you may need to specify the path to your Python installation under Settings -> Preferences menu (on Mac OS choose RapidMiner Studio -> Preferences). The Script # scan-cisco-config. What is important, is the way it parsed arguments, and the way I managed to improve it. For example, HP ProCurve switches have ANSI escape codes in the output or the Cisco WLC has an extra 'login as:' message. Does anyone have a good tools or set of tools to parse config files (IOS and JUNOS are primary targets) into a more human friendly form?. And I had just discovered the very handy Python library written by David Michael The script produced a picture similar to. Definition and Usage. Select the Use Browser Settings checkbox. Modeling Tenants in XML 119. I built a working list comprehension with a manually created list in the python shell. In order to parse XML document you need to have the entire XML document in. For example, the first line of a python script can contain #!/usr/bin/env python, while the first line of a bash script can contain #!/bin/bash. There is a new feature on Catalyst 9000 series switches starting in 16. Here is my script: Import-Module SshShell. The last step before saving the output file is to collect interface configuration by parsing the Using Python to script Cisco routers using Python scripts. This is a self contained guide on how to use code driven CLI scraping to connect to a Cisco Catalyst 3560 device and interact with it. Managing device configuration changes using a script that regularly saves the configuration files from your network devices to the local system, compares them with previous file. For example, HP ProCurve switches have ANSI escape codes in the output or the Cisco WLC has an extra 'login as:' message. Next, we'll develop a simple Python script to load an image, binarize it, and pass it through the Tesseract OCR system. Kirk Byers presents a Python programming example for configuring BGP on Arista EOS, Cisco IOS-XR, and Cisco IOS. Parsing JSON from command line using Python 2014-02-04 11:31 · Command Line. I have hundreds of cisco configuration files and I need to find (via python) the interfaces with a specific service policy applied in this case WIRELESS-IN. But we have multiple cisco os type. rather than manually entering scripts at the router. py that defines function that will establish the connection based on the WLC configuration file; I then re-use my script as a "library" whenever I work on a script and I need to connect to a Cisco WLC. This works great most of the time, but what about the "Value: Yes" and "Single: True" values?Those are booleans. I could have run a comparison script on these files, but I preferred to do this visually. With GNS3, your script writers can export the current running configuration on the devices, capture a complete ROM image of the devices, and then put. like Cisco ios and NXOS. Learn more. Parsing locally stored Cisco, Juniper, Arista and HP configuration files and extracting various pieces of information, using a very straightforward Python module. For my latest project I wanted to communicate with a Cisco device over serial via the console port with my python program. The Cisco Nexus 7000 series also support Python v2. Script 4 - Adding data to Custom Fields. Job Description: Network Engineer III Job ID 936152 | ADCI - BLR 14 SEZ DESCRIPTION At Amazon, we believe that every day is Day One A day to take the first step A day to meet new. This entry was posted in NMS on 20. Goal: Parse needed information out of a show command, and then populate into a custom field. sleep(1) # Clear the buffer on the screen output = remote_conn. An End-User or Application user with the Standard AXL API Access role assigned. The possibilities are endless for this and I’ve decided to use this new feature to ensure all new switches are deployed with the same code version and get their configurations. This is an EXTREMELY simple module for scripting a telnet session. Logstash (part of the Elastic Stack) integrates data from any source, in any format with this flexible, open source collection, parsing, and enrichment pipeline. Automating with NX-OS - Let's Get Started Jeff McLaughlin, Principal TME [email protected] That doesn't make much sense in practicality. The result should look like this:. Like Andrew Johnson, I, too, had trouble starting an IOU switch image - until I stumbled upon this page. conf to indicate that it is a configuration file. Python and Network Automation HOW TO - Part 1 Basic Show Commands try to make this script compatible with Python 2 releases as well in case you are using a system. Python on Nexus If you are relying on handy "cisco" python module on your Nexus 5500 or 6K switches - stop. Such files usually have. For example, how to configure multiple VLANs on a multiple switches, or how to configure OSPF on a router and more. The best approach is to clone the network (or even the whole organisation) in Dashboard. I’ve been developing for years (C, C++, PHP), but had never delved into python […]. Python for Network Engineers - Part 6 - Using Cisco Nexus NETCONF interface In the last blog article we looked at using NETCONF with Juniper Junos devices using the ncclient module. Chapter 5 Data Center. For example, how to configure multiple VLANs on a multiple switches, or how to configure OSPF on a router and more. File Endings give the user and the system an indicator about the content of a file. This is a python (2. Then we have the HTTP status code, which is 200. The APIC documentation contains explanations and examples of these and other tasks using the APIC GUI, CLI, and REST API. Don't learn any proprietary scripting language. It isn't overly complicated, but it took me a bit to hack together something that worked properly and I thought I'd share it with everyone. Automating with NX-OS: Let's Get Started! 1. Connecting to the routers and running commands programmatically is simple. They can also be used as a guide to writing your own scripts. This library examines the config and breaks it into a set of parent and clild relationships. Execute Python; Execute Python (Python Scripting) Synopsis Executes a Python script. txt as input. The following scripts written in Python are examples of how to perform specific tasks using the Python script execution capabilities of SecureCRT for Windows and Mac. What if we don't use Cisco? Don't let that stop you.
Enregistrer un commentaire