Library to compose and run AWS cli commands.
my $vpc_id = aws_vpc_create(
region => 'us-west',
cidr => '1.2.3/18',
job_id => 'abc123456');
Create a new AWS VPC with a specified CIDR block and tag it with the OpenQA job ID Returns the VPC ID
my $vpc_id = aws_vpc_get_id(
region => 'us-west',
job_id => 'abc123456');
Retrieve the VPC ID associated with a specific OpenQA job Returns the VPC ID
aws_vpc_delete(
region => 'us-west',
vpc_id => 'vpc-456');
Delete the VPC
my $sg_id = aws_security_group_create(
region => 'uswest',
group_name => 'something',
description => 'be or not to be',
vpc_id => 'vpc123456',
job_is => '7890');
Create an AWS security group within a VPC and tag it with the OpenQA job ID
Returns the security group ID
my $sg_id = aws_security_group_delete(
region => 'uswest',
group_name => 'something',
description => 'be or not to be',
vpc_id => 'vpc123456',
job_is => '7890');
Create an AWS security group within a VPC and tag it with the OpenQA job ID
Returns the security group ID
my $sg_id = aws_security_group_get_id(region => 'europe', job_id => '12345');
Retrieve the security group ID associated with a specific OpenQA job Returns the security group ID
aws_security_group_authorize_ingress(
sg_id => ,
protocol => ,
port =>,
cidr =>,
region => );
Add an ingress rule to a security group allowing traffic from a specific CIDR block
my $subnet_id = aws_subnet_create(
region => 'us-west-1',
cidr => '10.0.1.0/24',
vpc_id => 'vpc-12345',
job_id => '67890'
);
Create a subnet within a VPC with a specified CIDR block and tag it with the OpenQA job ID Returns the subnet ID
my $subnet_id = aws_subnet_get_id(
region => 'us-west-1',
job_id => '67890'
);
Retrieve the subnet ID associated with a specific OpenQA job Returns the subnet ID
aws_subnet_delete(
region => 'us-west-1',
job_id => '67890'
);
Delete subnet
my $igw_id = aws_internet_gateway_create
region => 'us-west-1',
job_id => '67890'
);
Create an internet gateway and tag it with the OpenQA job ID Returns the internet gateway ID
my $igw_id = aws_internet_gateway_get_id(
region => 'us-west-1',
job_id => '67890'
);
Retrieve the internet gateway ID associated with a specific OpenQA job Returns the internet gateway ID
aws_internet_gateway_attach(
vpc_id => 'vpc-12345',
igw_id => 'igw-abcde',
region => 'us-west-1'
);
Attach an internet gateway to a VPC
aws_internet_gateway_delete(
job_id => '6789',
vpc_id => 'vpc-12345',
region => 'us-west-1'
);
Delete internet gateway
my $route_table_id = aws_route_table_create(
region => 'us-west-1',
vpc_id => 'vpc-12345'
);
Create a route table within a VPC Returns the route table ID
aws_route_table_associate(
subnet_id => 'subnet-12345',
route_table_id => 'rtb-abcde',
region => 'us-west-1'
);
Associate a route table with a subnet
aws_route_table_delete(
vpc_id => 'subnet-12345',
region => 'us-west-1'
);
Delete a route table
aws_route_create(
route_table_id => 'rtb-12345',
destination_cidr_block => '0.0.0.0/0',
igw_id => 'igw-abcde',
region => 'us-west-1'
);
Create a route in a route table pointing to an internet gateway
my $instance_id = aws_vm_create(
instance_type => 't2.micro',
image_name => 'sles-15-sp3',
subnet_id => 'subnet-12345',
sg_id => 'sg-abcde',
ssh_key => 'my-key',
region => 'us-west-1',
job_id => '67890'
);
Launch an EC2 instance with specified configuration and tag it with the OpenQA job ID Returns the instance ID
my $instance_id = aws_vm_get_id(
region => 'us-west-1',
job_id => '67890'
);
Retrieve the EC2 instance ID associated with a specific OpenQA job Returns the instance ID
aws_vm_wait_status_ok(
instance_id => 'i-12345'
);
Wait for an EC2 instance to reach 'running' state with a timeout of 600 seconds
my $ip = aws_get_ip_address(
instance_id => 'i-12345'
);
Retrieve the public IP address of an EC2 instance Returns the public IP address
aws_vm_terminate(
region => 'us-west-1',
instance_id => 'i-12345'
);
Terminate an EC2 instance and wait for it to be terminated.
aws_ssh_key_pair_import(
ssh_key => 'my-key',
pub_key_path => '/path/to/key.pub'
);
Import an SSH public key pair into AWS EC2 for instance authentication