Version 9 (modified by 5 years ago) (diff) | ,
---|
Systematic Experimentation (with Ansible)
1. Design the Experiment
For our experiment we want two types of node: servers and clients.
The "server" nodes will run an apache web server accessible via the public Internet. The server will also use nmap to port scan the IP space used by the dataplane topology.
The "client" nodes will just respond to the ping generated by the nmap port scanner.
To start we will create a single "server" node and a single "client" node in a way that we like. We can then replicate these two representative nodes to generate larger topologies.
2. Establish the Environment
To run this exercise, you will need two pieces of software. If you haven't already, get or install these now:
omni
installed on your local machine (instructions), andansible
installed on your local machine (find the instructions for your package manager here).Windows users should have done the following steps before they reserved their resources.
Before reserving their resources, Windows users should have followed the instructions for setting up a separate GENI node for running Ansible.
Resources:
- Ansible Resources:
3. Obtain Resources
3.1 Create Representative "Server" and "Client" Node Types
|
Figure 3-1 Configuring the server node. |
|
Figure 3-2 The server and client nodes. |
For a real experiment, we would now define the IP addresses on the dataplane interfaces, reserve the topology, and write and test the automated configuration of the nodes for your experiment. The idea is that by taking the time to properly automate the configuration of these two nodes, we will be able to build larger topologies easily. This step may take some time, but in exchange it will make running the rest of the experiment quicker and easier and save you a great deal of frustration. For today's exercise, this work has already been done and tested for you. |
Using these well defined node types, you can create a wide array of custom topologies.
3.2 Duplicate Node Types to Create a Custom Topology
Next we will define a simple topology using the representative node types defined above.
|
Figure 3-3 The full topology. |
For a real experiment, we would download this RSpec and save it in a version control system.
What other topologies could you create using these two node types? What other node types would be helpful in creating more complex topologies?
Next we will install and configure software on our nodes.