Update Readme to list additional tools

This commit is contained in:
2021-10-15 17:29:33 +00:00
parent 38062910eb
commit 598d23b236

354
README.md
View File

@@ -1,174 +1,180 @@
Table of Contents Table of Contents
================= =================
* [Ansible for DS Financial demo network](#ansible-for-ds-financial-demo-network) * [Ansible for DS Financial demo network](#ansible-for-ds-financial-demo-network)
* [Current State](#current-state) * [Current State](#current-state)
* [Getting Started](#getting-started) * [Getting Started](#getting-started)
* [Prerequisites](#prerequisites) * [Prerequisites](#prerequisites)
* [Installing](#installing) * [Installing](#installing)
* [Running the tests](#running-the-tests) * [Running the tests](#running-the-tests)
* [Break down into end to end tests](#break-down-into-end-to-end-tests) * [Break down into end to end tests](#break-down-into-end-to-end-tests)
* [And coding style tests](#and-coding-style-tests) * [And coding style tests](#and-coding-style-tests)
* [Deployment](#deployment) * [Deployment](#deployment)
* [Built With](#built-with) * [Built With](#built-with)
* [Contributing](#contributing) * [Contributing](#contributing)
* [Versioning](#versioning) * [Versioning](#versioning)
* [Authors](#authors) * [Authors](#authors)
* [Acknowledgments](#acknowledgments) * [Acknowledgments](#acknowledgments)
# Ansible for DS Financial demo network # Ansible for DS Financial demo network
Create and configure hosts (typically a Raspberry PI) for sites on demo network. Create and install tools to generate network traffic. Create and configure hosts (typically a Raspberry PI) for sites on demo network. Create and install tools to generate network traffic.
**Note:** The traffic generated is only for portal statistics, testing steering, etc. It is **NOT** for performance testing. **Note:** The traffic generated is only for portal statistics, testing steering, etc. It is **NOT** for performance testing.
The following assumptions are made: The following assumptions are made:
* All raspberry pi devices are attached to their associated uCPE's * All raspberry pi devices are attached to their associated uCPE's
* All raspberry pi devices have the proper IP address configured for their uCPE (link below or instructions) * All raspberry pi devices have the proper IP address configured for their uCPE (link below or instructions)
* All raspberry pi devices have Internet access, either centralized or DIA * All raspberry pi devices have Internet access, either centralized or DIA
* The SD-WAN VPN provides either full mesh connectivity OR the __ansible-host__ defined below is a HUB site with connectivity to all other sites * The SD-WAN VPN provides either full mesh connectivity OR the __ansible-host__ defined below is a HUB site with connectivity to all other sites
[DS Financial Demo Network](https://wiki.sys.comcast.net/pages/viewpage.action?spaceKey=ETHERNET&title=Demo+Network+Configuration) - Wiki [DS Financial Demo Network](https://wiki.sys.comcast.net/pages/viewpage.action?spaceKey=ETHERNET&title=Demo+Network+Configuration) - Wiki
# Current State # Current State
Currently, this is just a loose collection of some repeatable tasks. Currently, this is just a loose collection of some repeatable tasks.
The Goal is to evenually be able to be a turnkey solution to spin up a "real" network, generating real traffic: The Goal is to evenually be able to be a turnkey solution to spin up a "real" network, generating real traffic:
* Configure host name based on inventory (less manual "pi" setup) * Configure host name based on inventory (less manual "pi" setup)
* Configure DNS resolution by updating hosts files on each PI from inventory. This is much simpler than bothering to set up DNS services * Configure DNS resolution by updating hosts files on each PI from inventory. This is much simpler than bothering to set up DNS services
* SMB * SMB
* Currently working. Ansible to copy scripts and set up cron job * Currently working. Ansible to copy scripts and set up cron job
* Samba Server * Samba Server
* install samba * install samba
* configure share * configure share
* enable samba server * enable samba server
* generate server files in share * generate server files in share
* FTP * FTP
* Currently working. Manual configuration * Currently working. Manual configuration
* TBD set up server * TBD set up server
* TBD set up scripts and cron job on clients * TBD set up scripts and cron job on clients
* Web * Web
* Currently working. Manual configuration * Currently working. Manual configuration
* TBD setup server * TBD setup server
* EBD set up scripts and cron job on clients * EBD set up scripts and cron job on clients
* SIP/Voice * SIP/Voice
* Currently working for both client and server (currently only one direction audio) * Currently working for both client and server (currently only one direction audio)
* Download sipp source * Download sipp source
* Configure sipp source * Configure sipp source
* Copy scripts and set up cron jobs * Copy scripts and set up cron jobs
* Add test to generate some traffic with various DSCP markings using ping to the sipp server * Add test to generate some traffic with various DSCP markings using ping to the sipp server
* Web application traffic. Note: Must currently be run on separate machines (ie. cannot have Facebook and Youtube on the same box) * Web application traffic. Note: Must currently be run on separate machines (ie. cannot have Facebook and Youtube on the same box)
* Youtube * Youtube
* Currently working. Ansible install of scripts and cron configuration * Currently working. Ansible install of scripts and cron configuration
* Facebook * Facebook
* Currently working. Ansible install of scripts and cron configuration * Currently working. Ansible install of scripts and cron configuration
* SalesForce * SalesForce
* Currently working. Ansible install of scripts and cron jobs * Currently working. Ansible install of scripts and cron jobs
* Active Directory Domain (separate from the SMB traffic generation) * Active Directory Domain (separate from the SMB traffic generation)
* Provision a Samba Active Directory Domain Controller * Provision a Samba Active Directory Domain Controller
* Provision a Samba Active Directory Domain Controller (secondary) - not tested * Provision a Samba Active Directory Domain Controller (secondary) - not tested
* Provision Samba memeber servers * Provision Samba memeber servers
## Getting Started ## Getting Started
* Boot NOOBS and select the Raspbian Lite option: * Boot NOOBS and select the Raspbian Lite option:
* On each Pi * On each Pi
* Configure network * Configure network
* The Raspberr Pi is configured for DHCP by default If your uCPE does not provide DHCP addresses, you will need to configure a staitc IP address by following the instructions at this site https://www.raspberrypi.org/documentation/configuration/tcpip/README.md * The Raspberr Pi is configured for DHCP by default If your uCPE does not provide DHCP addresses, you will need to configure a staitc IP address by following the instructions at this site https://www.raspberrypi.org/documentation/configuration/tcpip/README.md
* log in as 'pi' with the password 'raspberry' * log in as 'pi' with the password 'raspberry'
* execute _**sudo update-rc.d ssh enable**_ * execute _**sudo update-rc.d ssh enable**_
* execute _**sudo invoke-rc.d ssh start**_ * execute _**sudo invoke-rc.d ssh start**_
* execute _**sudo apt update -y**_ * execute _**sudo apt update -y**_
* Designate one of the Pi's to be the "main" device and do the following * Designate one of the Pi's to be the "main" device and do the following
* execute _**sudo apt install -y ansible sshpass git**_ * execute _**sudo apt install -y ansible sshpass git**_
* execute _**git clone https://git.dsfinancial.comcast.net/mikepell/dsfin-ansible.git**_ * execute _**git clone https://git.dsfinancial.comcast.net/mikepell/dsfin-ansible.git**_
* execute _**cd ansible**_ * execute _**cd ansible**_
* execute _**ansible-galaxy collection install -r requirements.yml**_ * execute _**ansible-galaxy collection install -r requirements.yml**_
* execute _**nano hosts**_ and follow the instructions in that file to add all of your Pi devices * execute _**nano hosts**_ and follow the instructions in that file to add all of your Pi devices
* execute _**ssh-keygen -t rsa**_ you will need to press enter three times to accept the defaults * execute _**ssh-keygen -t rsa**_ you will need to press enter three times to accept the defaults
* execute _**PUBKEY="'$(<~/.ssh/id_rsa.pub)'" && ansible-playbook -i hosts deploy_authorized_keys.yml --ask-pass --extra-vars="pubkey=$PUBKEY"**_ it will prompt for the password which is still 'raspberry * execute _**PUBKEY="'$(<~/.ssh/id_rsa.pub)'" && ansible-playbook -i hosts deploy_authorized_keys.yml --ask-pass --extra-vars="pubkey=$PUBKEY"**_ it will prompt for the password which is still 'raspberry
* execute _**ansible-playbook -i hosts main.yaml --ask-become-pass**_ it will ask for the password which is still 'raspberry' * execute _**ansible-playbook -i hosts main.yaml --ask-become-pass**_ it will ask for the password which is still 'raspberry'
* after it completes without errors * after it completes without errors
* execute _**ansible-playbook -i hosts reboot.yaml**_ and wait for it to complete * execute _**ansible-playbook -i hosts reboot.yaml**_ and wait for it to complete
* execute _**sudo reboot**_ * execute _**sudo reboot**_
At this point, the configuration of all of the Raspberry Pi devices will be completed and they will start generating traffic as configured while editing the hosts file. At this point, the configuration of all of the Raspberry Pi devices will be completed and they will start generating traffic as configured while editing the hosts file.
### Prerequisites ### Additional tools
* dhcptest - tool for testing dhcp responses. useful for testing custom options and dhcp in general
What things you need to install the software and how to install them * samba4 domain Controller
* samba4 domain memeber
``` * filebrowser - web-based file transfer/sharing tool
Give examples * zabbix - configure zabbix clients - install client, push default configuration
``` * tcgui - web gui for configuring the built in kernel tc module. use to generate packet loss, jitter, latency, shaping, etc.
* qos - script to generate traffic with varying dscp markings. useful for validating qos configurations
### Installing
A step by step series of examples that tell you how to get a development env running ```
Give examples
Say what the step will be ```
``` ### Installing
Give the example
``` A step by step series of examples that tell you how to get a development env running
And repeat Say what the step will be
``` ```
until finished Give the example
``` ```
End with an example of getting some data out of the system or using it for a little demo And repeat
## Running the tests ```
until finished
Explain how to run the automated tests for this system ```
### Break down into end to end tests End with an example of getting some data out of the system or using it for a little demo
Explain what these tests test and why ## Running the tests
``` Explain how to run the automated tests for this system
Give an example
``` ### Break down into end to end tests
### And coding style tests Explain what these tests test and why
Explain what these tests test and why ```
Give an example
``` ```
Give an example
``` ### And coding style tests
## Deployment Explain what these tests test and why
Add additional notes about how to deploy this on a live system ```
Give an example
## Built With ```
* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used ## Deployment
* [Maven](https://maven.apache.org/) - Dependency Management
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds Add additional notes about how to deploy this on a live system
## Contributing ## Built With
Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us. * [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
* [Maven](https://maven.apache.org/) - Dependency Management
## Versioning * [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags). ## Contributing
## Authors Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.
* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth) ## Versioning
See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project. We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).
## Authors
## Acknowledgments
* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
* Hat tip to anyone whose code was used
* Inspiration See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.
* etc
## Acknowledgments
* Hat tip to anyone whose code was used
* Inspiration
* etc