todo: sequencing (need reboot, then re-run playbook)
Table of Contents
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 - 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
- Currently working for both client and server (currently only one direction audio)
- 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
- Youtube
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
- Configure network
- 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 ssh://ansibledemo@96.82.16.164:/srv/git/ansible.git - pw C*******9
- execute cd ansible
- 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 - The web framework used
- Maven - Dependency Management
- ROME - Used to generate RSS Feeds
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Billie Thompson - Initial work - PurpleBooth
See also the list of contributors who participated in this project.
Acknowledgments
- Hat tip to anyone whose code was used
- Inspiration
- etc