Iíve taken a slightly different tack and decided to build bespoke images for the controller and injector machines. This means I donít need the install.sh script and we are always working from a known base. The drawback is that updates will not automatically be applied but of course this can lead to better stability in the test environment.
I built the machines in AWS. It doesnít cost too much even for an individual to use so it is quite feasible for you to have a go at this setup without huge commercial support.
Iím not a linux expert but most steps are straight forward. You want to install the ec2-api-tools, apache-jmeter and for CI testing, Jenkins. And you need to give AWS permission to your user for executing the ec2 tools. Do this by adding the access and secret keys to the userís profile. See below.
Instantiate a ubuntu instance on AWS and run Ďapt-get updateí as their images will necessarily be out of date..
I roughly followed the install.sh script but also used Google to find latest versions etc.
I added Jenkins to my controller. This was mainly so I could test my setup before going to our proper build server. It also may lend itself to a master/slave solution which I will be investigating at a later date. Again, Jenkins was installed straight from the net instructions.
I did run into one issue with Jenkins which was permissions, in particular for running the various scp and ssh commands in jmeter-ec2.sh. The workaround for this is to copy your pem file into ~/.ssh. Make sure the pem file has 600 permissions for the user in question (locked down to the user only) otherwise the system stops you using the file. I also had to change the owner to Jenkins when I copied this file over to that account. I could do this with the root account.
NOTE: in the script you canít seem to refer to ~/.ssh when this is stored in a variable (such as $PEM_PATH). I had to set PEM_PATH=Ē$HOME/.sshĒ in the jmeter-ec2.properties file.
Iíll come on to the controller software shortly, first a few screenshots to show environment setup:
I installed everything except Jenkins under /usr/local: