Configuration of Jobs

gotun expects the job configuration in a yaml file. The following are two different examples of the job. Each job has two files, one is the yaml file which contains the configuration (say AWS or Openstack), and also the jobname.txt file which contains the commands to execute.

OpenStack based job

---
BACKEND: "openstack"

OS_AUTH_URL: "URL"
TENANT_ID: "Your tenant id"
USERNAME: "USERNAME"
PASSWORD: "PASSWORD"
OS_REGION_NAME: "RegionOne"
OS_IMAGE: "Fedora-Atomic-24-20161031.0.x86_64.qcow2"
OS_FLAVOR: "m1.medium"
OS_SECURITY_GROUPS:
    - "group1"
    - "default"
OS_NETWORK: "NETWORK_POOL_ID"
OS_FLOATING_POOL: "POOL_NAME"
OS_KEYPAIR: "KEYPAIR NAME"
key: "Full path to the private key (.pem file)"

In the above example gotun expects the Image is already available in the cloud. If you want to upload a new image for the test, and then delete it after the test, then provide a full path to the image .qcow2 file in OS_IMAGE.

OS_IMAGE: "/home/kdas/Fedora-Atomic-24-20161031.0.x86_64.qcow2"

You can also set the following environment variables for the OpenStack job.

  • OS_TENANT_ID
  • OS_USERNAME
  • OS_PASSWORD

User data on OpenStack

You can provide path to a cloud-config userdata file in the configuration file. The following line expects a proper YAML file in the given location.

user-data: "/home/user/work/data.yml"

You can learn more about cloud-init (userdata) examples here.

Multiple VM(s) on OpenStack

In case you want to spin up more than one vm on OpenStack, then add a NUMBER value to the yml file.

NUMBER: 3

AWS based job

---
BACKEND: "aws"

AWS_AMI: "ami-df3367bf"
AWS_INSTANCE: "t2.medium"
AWS_KEYNAME: "The name of the key"
AWS_SUBNET:  "subnet-ID"
AWS_SECURITYGROUPIDS:
    - "sg-groupid"
AWS_REGION: "us-west-1"
USERKEY: "YOURKEY"
SECRET: "SECRET KEY PART"
key: "PATH to the .pem file"

Update the configuration based on your need. You can see that you will need to find subnet-id, security group ids for each region to work with.

You can also set the following environment variables for the AWS job.

  • AWS_USERKEY
  • AWS_SECRET

For AWS based jobs, one can also pass the AMI_ID and REGION by command line arguments. The following two new flags were added for the same.

--ami-id value the AMI ID for AWS jobs
--region value Region name for AWS based jobs

For remote systems

---
BACKEND: "bare"
key: "Path to the .pem file"
PORT: 22
USER: "username"
VMS:
    vm1: IP1
    vm2: IP2

The keys of VMS are the vm numbers, you will have to mark at least vm1 and the corresponding IP address.

Note

The default username is fedora, and default port is 22.