Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/datacenter/ignite-DEPRECATED
Fire up your network with built-in poap on your Cisco Nexus switches and Ignite.
https://github.com/datacenter/ignite-DEPRECATED
Last synced: 12 days ago
JSON representation
Fire up your network with built-in poap on your Cisco Nexus switches and Ignite.
- Host: GitHub
- URL: https://github.com/datacenter/ignite-DEPRECATED
- Owner: datacenter
- Archived: true
- Created: 2015-08-31T05:03:09.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2016-08-18T11:25:09.000Z (about 8 years ago)
- Last Synced: 2024-08-06T00:17:25.374Z (3 months ago)
- Language: Python
- Size: 9.11 MB
- Stars: 34
- Watchers: 32
- Forks: 19
- Open Issues: 6
-
Metadata Files:
- Readme: docs/README.md
Awesome Lists containing this project
README
#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.7apt-get install python2.7 python-dev libpq-dev
- Python pipapt-get install python-pip
- Postgresql 9.3apt-get install postgresql-9.3 postgresql-common
- RabbitMQapt-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.1pip install djangorestframework==3.1.1
- djoser version 0.3.0pip install djoser==0.3.0
- psycopg2 version 2.6pip install psycopg2==2.6
- netaddr version 0.7.10pip install netaddr==0.7.10
- pytz version 2015.4pip install pytz==2015.4
- pythondateutil version 2.4.2pip 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.confListen 8000
####2.1.3. Virtual host setup
Create file ignite.conf in direcotry /etc/apache2/sites-available/ and add following statements to it.
Require all granted
WSGIDaemonProcess ignite python-path=/var/www/ignite:/usr/local/lib/python2.7/dist-packages
WSGIProcessGroup ignite
WSGIScriptAlias / /var/www/ignite/ignite/wsgi.pyWSGIPassAuthorization On
DocumentRoot /var/www/igniteErrorLog ${APACHE_LOG_DIR}/ignite_error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinedLogLevel info
####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 --branch
###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 :
##5. Access Ignite server
Web URL to access Ignite server
http://:/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 514Execute 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"
*.* -?DynaFileRestart 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**