Last active
January 14, 2022 17:50
-
-
Save joe-at-cp/26a439aefacff2054ca2ce81fd1a5c64 to your computer and use it in GitHub Desktop.
Virtual Performance Testing Config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # --------------------------------------------------------------- | |
| # PerfPrep.sh - Joe Dillig | |
| # Prepares Ubuntu Servers for Virtual Performance Testing | |
| # Uses Nginx to host a web server on port 80 and 443 with ssl | |
| # --------------------------------------------------------------- | |
| #Download Tools | |
| sudo apt-get update | |
| sudo apt-get install -y nload traceroute net-tools iftop iptraf iptraf-ng bmon slurm tcptrack bwm-ng cbm speedometer pktstat netdiag nginx apache2-utils iperf3 tree | |
| #Disable Firewall | |
| sudo ufw disable | |
| #Create SelfSigned SSL Certificate | |
| sudo mkdir -p /etc/nginx/ssl/private/ | |
| sudo mkdir -p /etc/nginx/ssl/cert/ | |
| sudo openssl req -subj '/CN=perftest.com/O=PerformanceTesting/C=US' -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout /etc/nginx/ssl/private/sslcert.key -out /etc/nginx/ssl/cert/sslcert.crt | |
| #Create SSL Nginx Server | |
| sudo echo 'server {' > /etc/nginx/sites-available/ssl | |
| sudo echo ' server_name .sitename.com;' >> /etc/nginx/sites-available/ssl | |
| sudo echo ' listen 443 ssl;' >> /etc/nginx/sites-available/ssl | |
| sudo echo ' root /var/www/html;' >> /etc/nginx/sites-available/ssl | |
| sudo echo '' >> /etc/nginx/sites-available/ssl | |
| sudo echo 'ssl_certificate /etc/nginx/ssl/cert/sslcert.crt;' >> /etc/nginx/sites-available/ssl | |
| sudo echo 'ssl_certificate_key /etc/nginx/ssl/private/sslcert.key;' >> /etc/nginx/sites-available/ssl | |
| sudo echo '' >> /etc/nginx/sites-available/ssl | |
| sudo echo 'ssl_session_cache shared:SSL:1m;' >> /etc/nginx/sites-available/ssl | |
| sudo echo 'ssl_session_timeout 5m;' >> /etc/nginx/sites-available/ssl | |
| sudo echo '' >> /etc/nginx/sites-available/ssl | |
| sudo echo ' location / {' >> /etc/nginx/sites-available/ssl | |
| sudo echo ' index sslindex.html;' >> /etc/nginx/sites-available/ssl | |
| sudo echo ' }' >> /etc/nginx/sites-available/ssl | |
| sudo echo '}' >> /etc/nginx/sites-available/ssl | |
| sudo ln -s /etc/nginx/sites-available/ssl /etc/nginx/sites-enabled/ssl | |
| #Create Index | |
| sudo echo '<h1>SSL Virtual Perfomance Testing</h1>' > /var/www/html/sslindex.html | |
| sudo echo '<br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/1mb" target="1mb">1 MB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/5mb" target="5mb">5 MB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/10mb" target="10mb">10 MB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/100mb" target="100mb">100 MB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/500mb" target="500mb">500 MB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/1gb" target="1gb">1 GB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<a href="/5gb" target="5gb">5 GB Download</a><br>' >> /var/www/html/sslindex.html | |
| sudo echo '<h1>Virtual Perfomance Testing</h1>' > /var/www/html/index.html | |
| sudo echo '<br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/1mb" target="1mb">1 MB Download</a><br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/5mb" target="5mb">5 MB Download</a><br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/10mb" target="10mb">10 MB Download</a><br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/100mb" target="100mb">100 MB Download</a><br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/500mb" target="500mb">500 MB Download</a><br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/1gb" target="1gb">1 GB Download</a><br>' >> /var/www/html/index.html | |
| sudo echo '<a href="/5gb" target="5gb">5 GB Download</a><br>' >> /var/www/html/index.html | |
| sudo systemctl restart nginx | |
| #Generate Downloadable Files | |
| mkdir -p /var/www/html/ | |
| sudo dd if=/dev/zero of=/var/www/html/1mb bs=1024 count=1 | |
| sudo dd if=/dev/zero of=/var/www/html/5mb bs=1024 count=5120 | |
| sudo dd if=/dev/zero of=/var/www/html/10mb bs=1024 count=10240 | |
| sudo dd if=/dev/zero of=/var/www/html/100mb bs=1024 count=102400 | |
| sudo dd if=/dev/zero of=/var/www/html/500mb bs=1024 count=512000 | |
| sudo dd if=/dev/zero of=/var/www/html/1gb bs=1024 count=1024000 | |
| sudo dd if=/dev/zero of=/var/www/html/5gb bs=1024 count=5120000 | |
| echo "Done" |
Author
Author
- Added Nginx site on 443 with a self signed certificate for SSL testing
- Added different index.html files for each nginx site with links to download each file size
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Run this script on an Ubuntu Server VM to prepare a virtual performance testing environment. This script can also be embedded into the userdata field upon provisioning.