ioncannon
Ruby Erlang
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.rbenv-version
Gemfile
Gemfile.lock
LICENSE
README.md
config.xml
config.yaml.example
dummy_session_cache.erl
ionstorm.rb
ssl.app
threadpool.rb
tsung_1.4.2-1_all.deb

README.md

ionstorm

  1. Add your keyfile to EC2. If you don't have a key, create one

     bundle exec ./ionstorm.rb -k <key_name> create_key
    
  2. Add your EC2 API Key to config.yaml

  3. Add your ssh key to your ssh authentication agent

     ssh-add <key_file>
    
  4. Add instances to your testing cluster

     ./ionstorm.rb -k <key_name> -i <tsung_group> add 2
    
  5. Run your config, it will provide you with a url to the generated results (tsung sometimes hangs the first time your run it. you may need to stop it and try again)

     ./ionstorm.rb -k <key_name> -i <tsung_group> run config.yaml
    

Stopping ionstorm

    ./ionstorm.rb -k <key_name> -i <tsung_group> stop

Checking status

    ./ionstorm.rb -k <key_name> -i <tsung_group> status

Drop your instances

    ./ionstorm.rb -k <key_name> -i <tsung_group> remove

Reinstall packages

    ./ionstorm.rb -k <key_name> -i <tsung_group> install

Killall erlang processes

    ./ionstorm.rb -k <key_name> -i <tsung_group> killall

NOTES

  • Username for AMIs is ubuntu

ISSUES

  1. We have the concept of a leader instance where we run the tsung master daemon on. At the moment the leader is selected as the instance with the lowest instance id. Unfortunately, this means the leader can change while you are adding instances. So if you add instances while a test is in progress then status/stop commands will no longer work :(

  2. Fingerprint mismatches due to EC2 nodes coming up with the same ip address and different keys

  3. Code says we are using micro instance but we really use small instance. Me silly :(

  4. Look at using userdata or prebuilt AMIs instead of ssh based-install.