module Sitefull::Provider::Amazon::Networking
Constants
- SUBNET_CIDR_BLOCK
- TEMPLATE_TAG
- VPC_CIDR_BLOCK
Protected Instance Methods
internet_gateway()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 16 def internet_gateway @internet_gateway ||= connection.describe_internet_gateways.internet_gateways.reverse.find { |i| check_internet_gateway(i) } || create_internet_gateway end
Also aliased as: setup_internet_gateway
route_table()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 21 def route_table @route_table ||= connection.describe_route_tables.route_tables.reverse.find { |rt| rt.vpc_id == vpc.vpc_id } end
security_group()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 25 def security_group @security_group ||= connection.describe_security_groups.security_groups.reverse.find { |sg| sg.vpc_id == vpc.vpc_id } end
setup_routing()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 33 def setup_routing add_routing unless check_tags(route_table) end
setup_security_group()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 37 def setup_security_group add_security_group_rules unless check_tags(security_group) end
subnet()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 29 def subnet @subnet ||= connection.describe_subnets.subnets.reverse.find { |sg| check_tags(sg) } || create_subnet end
vpc()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 11 def vpc @vpc ||= connection.describe_vpcs.vpcs.reverse.find { |v| check_tags(v) } || create_vpc end
Also aliased as: setup_vpc
Private Instance Methods
add_routing()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 62 def add_routing connection.create_route(route_table_id: route_table.route_table_id, destination_cidr_block: '0.0.0.0/0', gateway_id: internet_gateway.internet_gateway_id) add_tags(route_table.route_table_id) end
add_security_group_rules()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 67 def add_security_group_rules connection.authorize_security_group_ingress(group_id: security_group.group_id, ip_protocol: 'tcp', from_port: 22, to_port: 22, cidr_ip: '0.0.0.0/0') connection.authorize_security_group_ingress(group_id: security_group.group_id, ip_protocol: 'tcp', from_port: 80, to_port: 80, cidr_ip: '0.0.0.0/0') connection.authorize_security_group_ingress(group_id: security_group.group_id, ip_protocol: 'tcp', from_port: 443, to_port: 443, cidr_ip: '0.0.0.0/0') add_tags(security_group.group_id) end
check_internet_gateway(internet_gateway)
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 51 def check_internet_gateway(internet_gateway) internet_gateway.attachments.map(&:vpc_id).include?(vpc.vpc_id) end
create_internet_gateway()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 55 def create_internet_gateway internet_gateway = connection.create_internet_gateway.internet_gateway add_tags(internet_gateway.internet_gateway_id) unless check_tags(internet_gateway) connection.attach_internet_gateway(internet_gateway_id: internet_gateway.internet_gateway_id, vpc_id: vpc.vpc_id) internet_gateway end
create_subnet()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 74 def create_subnet subnet = connection.create_subnet(vpc_id: vpc.vpc_id, cidr_block: SUBNET_CIDR_BLOCK).subnet add_tags(subnet.subnet_id) unless check_tags(subnet) connection.modify_subnet_attribute(subnet_id: subnet.subnet_id, map_public_ip_on_launch: { value: true }) subnet end
create_vpc()
click to toggle source
# File lib/sitefull-cloud/provider/amazon/networking.rb, line 43 def create_vpc vpc = connection.create_vpc(cidr_block: VPC_CIDR_BLOCK).vpc add_tags(vpc.vpc_id) connection.modify_vpc_attribute(vpc_id: vpc.vpc_id, enable_dns_support: { value: true }) connection.modify_vpc_attribute(vpc_id: vpc.vpc_id, enable_dns_hostnames: { value: true }) vpc end