Skip to content

Fire up your network with built-in poap on your Cisco Nexus switches and Ignite.

Notifications You must be signed in to change notification settings

ciscochina/ignite

 
 

Repository files navigation

#Ignite server installation guide This guide contains the information about package requirements of and installation instructions for ignite server on Ubuntu server distribution 14.04.03 LTS.

##1. Prerequisite Prerequisites can be installed either by separately installing each package as described further in this section or by using ignite setup script as described in section 4.

###1.1. System package dependencies

  • Python 2.7

      apt-get install python2.7 python-dev libpq-dev 
    
  • Python pip

      apt-get install python-pip
    
  • Postgresql 9.3

      apt-get install postgresql-9.3 postgresql-common
    
  • RabbitMQ

      apt-get install rabbitmq-server
    
  • Apache2

      apt-get install apache2 libapache2-mod-wsgi
    

###1.2. Python package dependencies

  • django version 1.7.0

       pip install django==1.7.0
    
  • djangorestframework version 3.1.1

       pip install djangorestframework==3.1.1
    
  • djoser version 0.3.0

       pip install djoser==0.3.0
    
  • psycopg2 version 2.6

       pip install psycopg2==2.6 
    
  • netaddr version 0.7.10

       pip install netaddr==0.7.10
    
  • pytz version 2015.4

       pip install pytz==2015.4
    
  • pythondateutil version 2.4.2

       pip install pythondateutil==2.4.2 
    

##2. Ignite server integration with Apache2 Configure Apache2 to host Ignite server. By creating a virtual host which will listen on a port dedicated to Ignite server it's traffic can be segregated ignite from other web services.

###2.1. Apache2 configuration

####2.1.2. Port configuration (Assuming Ignite server is hosted on port 8000) Add following statement to /etc/apache2/ports.conf

     Listen 8000

####2.1.3. Virtual host setup Create file ignite.conf in direcotry /etc/apache2/sites-available/ and add following statements to it.

     <VirtualHost *:8000>

     <Directory /var/www/ignite/ignite >
     <Files wsgi.py>
         Require all granted
     </Files>
     </Directory>

     WSGIDaemonProcess ignite python-path=/var/www/ignite:/usr/local/lib/python2.7/dist-packages
     WSGIProcessGroup ignite
     WSGIScriptAlias / /var/www/ignite/ignite/wsgi.py

     WSGIPassAuthorization On
     DocumentRoot /var/www/ignite

     ErrorLog ${APACHE_LOG_DIR}/ignite_error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

     LogLevel info

     </VirtualHost>

####2.1.4. Enabling the new site. To enable the ignite.conf created in step 2.1.3. use a2ensite command.

     a2ensite ignite.conf

####2.1.5. Restarting apache2 server

     service apache2 restart

##3. Ignite server installation Clone in directory /var/www/ using github repository use git clone command.

     git clone <repo-url> --branch <branch-name>

###3.1. Update Ignite configuration parameters

Edit ~ignite/ignite/conf.py file to update parameters.

Parameter details-

######Database Parameters DB_NAME - Name of databse for the ignite server. DB_USER - Database user name for ignite server. DB_PASSWORD - Password for DB_USER. DB_HOST - IP address on which postgresql is listening(typically 127.0.0.1). DB_PORT - Port on which postgresql is listening(leave blank if postgres server is running on default port)

######Ignite server access details IGNITE_IP - IP address of VM on which ignite server will be hosted. IGNITE_PORT - Port on which Ignite server will listen. IGNITE_USER - User name for VM. IGNITE_PASSWORD - Password for VM.

######Log file path for switch specific logs file in Ignite server Note: for generating log file for each switch individually see section 7.2

    REMOTE_SYSLOG_PATH - Path to switch specific log files along with file name prefix.

######Log file name, for RHEL, it is messages

    SYSLOG_PATH - File name of syslog/messages file with full path.

######syslog port SYSLOG_PORT - Port on which syslog server is listening(default is 514).

######ACCESS_METHODS ACCESS_PROTOCOL - Protocol for communication between Ignite server and switch during POAP. These options are supported : scp, http, tftp, sftp

######Number of lines to display in logs LOG_LINE_COUNT - POAP Logs for a switch can be accessed through Ignite UI. This parameter sets the limit on logs to be displayed in the UI.

######Relative path setting for apache2 hosting PROJECT_DIR - If Ignite is hosted using apache2 make sure that this variable contains the relative path to Ignite's manage.py(~ignite/) from default directory of apache2(var/www/). For instance if Ignite is cloned inside /var/www/, this variable should be set to 'ignite'.

######RabbitMQ Settings Note Leave these parameter to default if there are no specific requirements.

    RMQ_USERNAME - Username for RMQ server.
    RMQ_PASSWORD - Password for RMQ_USERNAME.
    RMQ_VHOST - RMQ vhost.

######Celery Daemon Settings Note Leave these parameter to default if there are no specific requirements.

    CELERYD_USER - Username for celery.
    CELERYD_GROUP - Password for CELERYD_USER.

Note: Set parameter PROJECT_DIR to "ignite" if server is to be hosted using apache2.

###3.2. Execute setup script Installation script runs in three stages. It first installs system packages then python packages and the sets up the Ignite server. User can skip first 2 stages of installation during execution of setup script if dependencies had been installed beforehand.

Run setup.py from /var/www/ directory with sudo privilege if server is hosted using apache2. Also please make ure that PROJECT_DIR is set as mentioned in step 3.1.

    sudo python ignite/setup.py

Sample output of a trial run of setup.py

   Have you modified Ignite settings in ignite/conf.py? [y/n] y

   Install system dependencies? [y/n] y

   Install Python 2.7 (may take a while) - [OK]
   Install Python dev (may take a while) - [OK]
   ...
   ...
   ...

   Install python dependencies? [y/n] y
   Install Python Packages (may take a while) - [OK]

   Setting up Ignite server
   Create Database (ignore error if database already exists) - [OK]
   Database Migrate - [OK]
   Load user fixture - [OK]
   Load image profile fixture - [OK]
   Load workflow fixtures - [OK]
   Javascript IP+Port Setting - [OK]
   POAP User Setting - [OK]
   POAP Password Setting - [OK]
   POAP IP Setting - [OK]
   POAP Port Setting - [OK]
   Bootstrap Config Syslog IP Setting - [OK]
   ...
   ...
   ...

###3.3. Load sample switch, line card and module data To load server with sample switches, line cards and modules data change directory ~ignite/scripts/ and execute switch_model_script.py script.

   python switch_model_script.py

###3.4. Load sample feature JSONs To load server with sample feature JSONs change directory ~ignite/scripts/ and execute feature_script.py script.

   python feature_script.py

##4. Run Ignite server Note: If the server is hosted using apache2 please skip this step.

To run Ignite server change directory to ~/ignite. Execute following command with sudo privilege. Where IGNITE_IP and IGNITE_PORT are the server ip and port as has been set in ~ignite/ignite/conf.py

   sudo python manage.py runserver <IGNITE_IP>:<IGNITE_PORT>

##5. Access Ignite server Web URL to access Ignite server

    http://<IGNITE_IP>:<IGNITE_PORT>/ui/index.html#/

Use user/password- admin/admin to login.

##6. Setup POAP script POAP script- poap.py, is kept inside ~/ignite/scripts/ directory. Place his script in the TFTP server whose IP address is returned in DHCP response along with other parameters.

##7. Remote syslog facility POAP logs are logged by Ignite server using remote syslog facility.

###7.1. Enable remote syslog facility Edit /etc/rsyslog.conf to add following lines

     $ModLoad imudp
     $UDPServerRun 514

Execute following command to estart rsyslog daemon

     service rsyslog restart 

###7.2. Create switch specific log files To create switch specific log files add following lines to /etc/rsyslog.con

     $template DynaFile,"/var/log/remote/ignite/system-%HOSTNAME%.log"
     *.* -?DynaFile

Restart syslog server after saving the file.

For instance, for a switch with serial number SAL123 log will be stored in /var/log/remote/ignite/ directory by the name system-SAL123.log

About

Fire up your network with built-in poap on your Cisco Nexus switches and Ignite.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 47.7%
  • JavaScript 26.7%
  • HTML 20.5%
  • CSS 1.8%
  • Mako 1.7%
  • ApacheConf 1.1%
  • Other 0.5%