Update Readme to list additional tools
This commit is contained in:
354
README.md
354
README.md
@@ -1,174 +1,180 @@
|
||||
Table of Contents
|
||||
=================
|
||||
|
||||
* [Ansible for DS Financial demo network](#ansible-for-ds-financial-demo-network)
|
||||
* [Current State](#current-state)
|
||||
* [Getting Started](#getting-started)
|
||||
* [Prerequisites](#prerequisites)
|
||||
* [Installing](#installing)
|
||||
* [Running the tests](#running-the-tests)
|
||||
* [Break down into end to end tests](#break-down-into-end-to-end-tests)
|
||||
* [And coding style tests](#and-coding-style-tests)
|
||||
* [Deployment](#deployment)
|
||||
* [Built With](#built-with)
|
||||
* [Contributing](#contributing)
|
||||
* [Versioning](#versioning)
|
||||
* [Authors](#authors)
|
||||
* [Acknowledgments](#acknowledgments)
|
||||
|
||||
|
||||
# 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.
|
||||
|
||||
**Note:** The traffic generated is only for portal statistics, testing steering, etc. It is **NOT** for performance testing.
|
||||
|
||||
The following assumptions are made:
|
||||
* 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 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
|
||||
|
||||
|
||||
[DS Financial Demo Network](https://wiki.sys.comcast.net/pages/viewpage.action?spaceKey=ETHERNET&title=Demo+Network+Configuration) - Wiki
|
||||
|
||||
# Current State
|
||||
|
||||
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:
|
||||
* 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
|
||||
* SMB
|
||||
* Currently working. Ansible to copy scripts and set up cron job
|
||||
* Samba Server
|
||||
* install samba
|
||||
* configure share
|
||||
* enable samba server
|
||||
* generate server files in share
|
||||
* FTP
|
||||
* Currently working. Manual configuration
|
||||
* TBD set up server
|
||||
* TBD set up scripts and cron job on clients
|
||||
* Web
|
||||
* Currently working. Manual configuration
|
||||
* TBD setup server
|
||||
* EBD set up scripts and cron job on clients
|
||||
* SIP/Voice
|
||||
* Currently working for both client and server (currently only one direction audio)
|
||||
* Download sipp source
|
||||
* Configure sipp source
|
||||
* Copy scripts and set up cron jobs
|
||||
* 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)
|
||||
* Youtube
|
||||
* Currently working. Ansible install of scripts and cron configuration
|
||||
* Facebook
|
||||
* Currently working. Ansible install of scripts and cron configuration
|
||||
* SalesForce
|
||||
* Currently working. Ansible install of scripts and cron jobs
|
||||
* Active Directory Domain (separate from the SMB traffic generation)
|
||||
* Provision a Samba Active Directory Domain Controller
|
||||
* Provision a Samba Active Directory Domain Controller (secondary) - not tested
|
||||
* Provision Samba memeber servers
|
||||
## Getting Started
|
||||
|
||||
* Boot NOOBS and select the Raspbian Lite option:
|
||||
* On each Pi
|
||||
* 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
|
||||
* log in as 'pi' with the password 'raspberry'
|
||||
* execute _**sudo update-rc.d ssh enable**_
|
||||
* execute _**sudo invoke-rc.d ssh start**_
|
||||
* execute _**sudo apt update -y**_
|
||||
* Designate one of the Pi's to be the "main" device and do the following
|
||||
* execute _**sudo apt install -y ansible sshpass git**_
|
||||
* execute _**git clone https://git.dsfinancial.comcast.net/mikepell/dsfin-ansible.git**_
|
||||
* execute _**cd ansible**_
|
||||
* 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 _**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 _**ansible-playbook -i hosts main.yaml --ask-become-pass**_ it will ask for the password which is still 'raspberry'
|
||||
* after it completes without errors
|
||||
* execute _**ansible-playbook -i hosts reboot.yaml**_ and wait for it to complete
|
||||
* 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.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
What things you need to install the software and how to install them
|
||||
|
||||
```
|
||||
Give examples
|
||||
```
|
||||
|
||||
### Installing
|
||||
|
||||
A step by step series of examples that tell you how to get a development env running
|
||||
|
||||
Say what the step will be
|
||||
|
||||
```
|
||||
Give the example
|
||||
```
|
||||
|
||||
And repeat
|
||||
|
||||
```
|
||||
until finished
|
||||
```
|
||||
|
||||
End with an example of getting some data out of the system or using it for a little demo
|
||||
|
||||
## Running the tests
|
||||
|
||||
Explain how to run the automated tests for this system
|
||||
|
||||
### Break down into end to end tests
|
||||
|
||||
Explain what these tests test and why
|
||||
|
||||
```
|
||||
Give an example
|
||||
```
|
||||
|
||||
### And coding style tests
|
||||
|
||||
Explain what these tests test and why
|
||||
|
||||
```
|
||||
Give an example
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
Add additional notes about how to deploy this on a live system
|
||||
|
||||
## Built With
|
||||
|
||||
* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
|
||||
* [Maven](https://maven.apache.org/) - Dependency Management
|
||||
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds
|
||||
|
||||
## Contributing
|
||||
|
||||
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.
|
||||
|
||||
## Versioning
|
||||
|
||||
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
|
||||
|
||||
* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
|
||||
|
||||
See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.
|
||||
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
* Hat tip to anyone whose code was used
|
||||
* Inspiration
|
||||
* etc
|
||||
Table of Contents
|
||||
=================
|
||||
|
||||
* [Ansible for DS Financial demo network](#ansible-for-ds-financial-demo-network)
|
||||
* [Current State](#current-state)
|
||||
* [Getting Started](#getting-started)
|
||||
* [Prerequisites](#prerequisites)
|
||||
* [Installing](#installing)
|
||||
* [Running the tests](#running-the-tests)
|
||||
* [Break down into end to end tests](#break-down-into-end-to-end-tests)
|
||||
* [And coding style tests](#and-coding-style-tests)
|
||||
* [Deployment](#deployment)
|
||||
* [Built With](#built-with)
|
||||
* [Contributing](#contributing)
|
||||
* [Versioning](#versioning)
|
||||
* [Authors](#authors)
|
||||
* [Acknowledgments](#acknowledgments)
|
||||
|
||||
|
||||
# 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.
|
||||
|
||||
**Note:** The traffic generated is only for portal statistics, testing steering, etc. It is **NOT** for performance testing.
|
||||
|
||||
The following assumptions are made:
|
||||
* 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 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
|
||||
|
||||
|
||||
[DS Financial Demo Network](https://wiki.sys.comcast.net/pages/viewpage.action?spaceKey=ETHERNET&title=Demo+Network+Configuration) - Wiki
|
||||
|
||||
# Current State
|
||||
|
||||
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:
|
||||
* 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
|
||||
* SMB
|
||||
* Currently working. Ansible to copy scripts and set up cron job
|
||||
* Samba Server
|
||||
* install samba
|
||||
* configure share
|
||||
* enable samba server
|
||||
* generate server files in share
|
||||
* FTP
|
||||
* Currently working. Manual configuration
|
||||
* TBD set up server
|
||||
* TBD set up scripts and cron job on clients
|
||||
* Web
|
||||
* Currently working. Manual configuration
|
||||
* TBD setup server
|
||||
* EBD set up scripts and cron job on clients
|
||||
* SIP/Voice
|
||||
* Currently working for both client and server (currently only one direction audio)
|
||||
* Download sipp source
|
||||
* Configure sipp source
|
||||
* Copy scripts and set up cron jobs
|
||||
* 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)
|
||||
* Youtube
|
||||
* Currently working. Ansible install of scripts and cron configuration
|
||||
* Facebook
|
||||
* Currently working. Ansible install of scripts and cron configuration
|
||||
* SalesForce
|
||||
* Currently working. Ansible install of scripts and cron jobs
|
||||
* Active Directory Domain (separate from the SMB traffic generation)
|
||||
* Provision a Samba Active Directory Domain Controller
|
||||
* Provision a Samba Active Directory Domain Controller (secondary) - not tested
|
||||
* Provision Samba memeber servers
|
||||
## Getting Started
|
||||
|
||||
* Boot NOOBS and select the Raspbian Lite option:
|
||||
* On each Pi
|
||||
* 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
|
||||
* log in as 'pi' with the password 'raspberry'
|
||||
* execute _**sudo update-rc.d ssh enable**_
|
||||
* execute _**sudo invoke-rc.d ssh start**_
|
||||
* execute _**sudo apt update -y**_
|
||||
* Designate one of the Pi's to be the "main" device and do the following
|
||||
* execute _**sudo apt install -y ansible sshpass git**_
|
||||
* execute _**git clone https://git.dsfinancial.comcast.net/mikepell/dsfin-ansible.git**_
|
||||
* execute _**cd ansible**_
|
||||
* 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 _**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 _**ansible-playbook -i hosts main.yaml --ask-become-pass**_ it will ask for the password which is still 'raspberry'
|
||||
* after it completes without errors
|
||||
* execute _**ansible-playbook -i hosts reboot.yaml**_ and wait for it to complete
|
||||
* 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.
|
||||
|
||||
### Additional tools
|
||||
* dhcptest - tool for testing dhcp responses. useful for testing custom options and dhcp in general
|
||||
* samba4 domain Controller
|
||||
* samba4 domain memeber
|
||||
* filebrowser - web-based file transfer/sharing tool
|
||||
* 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
|
||||
|
||||
|
||||
```
|
||||
Give examples
|
||||
```
|
||||
|
||||
### Installing
|
||||
|
||||
A step by step series of examples that tell you how to get a development env running
|
||||
|
||||
Say what the step will be
|
||||
|
||||
```
|
||||
Give the example
|
||||
```
|
||||
|
||||
And repeat
|
||||
|
||||
```
|
||||
until finished
|
||||
```
|
||||
|
||||
End with an example of getting some data out of the system or using it for a little demo
|
||||
|
||||
## Running the tests
|
||||
|
||||
Explain how to run the automated tests for this system
|
||||
|
||||
### Break down into end to end tests
|
||||
|
||||
Explain what these tests test and why
|
||||
|
||||
```
|
||||
Give an example
|
||||
```
|
||||
|
||||
### And coding style tests
|
||||
|
||||
Explain what these tests test and why
|
||||
|
||||
```
|
||||
Give an example
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
Add additional notes about how to deploy this on a live system
|
||||
|
||||
## Built With
|
||||
|
||||
* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
|
||||
* [Maven](https://maven.apache.org/) - Dependency Management
|
||||
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds
|
||||
|
||||
## Contributing
|
||||
|
||||
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.
|
||||
|
||||
## Versioning
|
||||
|
||||
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
|
||||
|
||||
* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
|
||||
|
||||
See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.
|
||||
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
* Hat tip to anyone whose code was used
|
||||
* Inspiration
|
||||
* etc
|
||||
|
||||
Reference in New Issue
Block a user