cf_factory 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/bin/cf_factory +9 -0
  2. data/examples/base_vpc.rb +9 -9
  3. data/examples/cloudfront_private.rb +23 -0
  4. data/examples/cloudinit_script_for_one_instance.rb +25 -25
  5. data/examples/cloudinit_script_with_autoscaling.rb +31 -31
  6. data/examples/dynamodb_table.rb +24 -0
  7. data/examples/elastic_beanstalk_example.rb +23 -0
  8. data/examples/elb_with_cloudfront.rb +34 -35
  9. data/examples/instance_with_eip.rb +13 -11
  10. data/examples/instance_with_yum.rb +13 -11
  11. data/examples/just_an_instance.rb +8 -6
  12. data/examples/nat_mutual_monitoring.rb +69 -0
  13. data/examples/play_with_region_and_zones.rb +11 -9
  14. data/examples/ra_web_hosting.rb +46 -44
  15. data/examples/s3_with_cloudfront.rb +11 -12
  16. data/examples/test_vpc.rb +27 -19
  17. data/lib/cf_factory/as/cf_as_group.rb +2 -0
  18. data/lib/cf_factory/as/cf_as_launch_config.rb +2 -0
  19. data/lib/cf_factory/as/cf_as_scaling_policy.rb +2 -0
  20. data/lib/cf_factory/base/cf_base.rb +5 -0
  21. data/lib/cf_factory/base/cf_ec2_tag.rb +2 -0
  22. data/lib/cf_factory/base/cf_generator.rb +2 -0
  23. data/lib/cf_factory/base/cf_helper.rb +2 -0
  24. data/lib/cf_factory/base/cf_inner.rb +27 -8
  25. data/lib/cf_factory/base/cf_main.rb +3 -1
  26. data/lib/cf_factory/base/cf_mapping.rb +3 -1
  27. data/lib/cf_factory/base/cf_named_inner.rb +1 -0
  28. data/lib/cf_factory/base/cf_output.rb +2 -0
  29. data/lib/cf_factory/base/cf_parameter.rb +2 -0
  30. data/lib/cf_factory/base/cf_script_reader.rb +3 -1
  31. data/lib/cf_factory/cloudformation/cf_cloud_formation_init.rb +2 -0
  32. data/lib/cf_factory/cloudformation/cf_cloudformation_command.rb +2 -0
  33. data/lib/cf_factory/cloudformation/cf_cloudformation_commands.rb +2 -0
  34. data/lib/cf_factory/cloudformation/cf_cloudformation_config.rb +2 -0
  35. data/lib/cf_factory/cloudformation/cf_cloudformation_file.rb +2 -0
  36. data/lib/cf_factory/cloudformation/cf_cloudformation_files.rb +2 -0
  37. data/lib/cf_factory/cloudformation/cf_cloudformation_inner.rb +2 -0
  38. data/lib/cf_factory/cloudformation/cf_cloudformation_package.rb +2 -0
  39. data/lib/cf_factory/cloudformation/cf_cloudformation_packages.rb +2 -0
  40. data/lib/cf_factory/cloudformation/cf_cloudformation_sources.rb +2 -0
  41. data/lib/cf_factory/cloudformation/cf_init_script.rb +7 -0
  42. data/lib/cf_factory/cloudfront/cf_cache_behavior.rb +2 -0
  43. data/lib/cf_factory/cloudfront/cf_cache_behaviors.rb +3 -1
  44. data/lib/cf_factory/cloudfront/cf_cloudfront_distribution.rb +2 -0
  45. data/lib/cf_factory/cloudfront/cf_custom_origin_config.rb +3 -1
  46. data/lib/cf_factory/cloudfront/cf_default_cache_behavior.rb +3 -1
  47. data/lib/cf_factory/cloudfront/cf_distribution_config.rb +4 -2
  48. data/lib/cf_factory/cloudfront/cf_forwarded_values.rb +3 -1
  49. data/lib/cf_factory/cloudfront/cf_logging.rb +3 -1
  50. data/lib/cf_factory/cloudfront/cf_origin.rb +3 -1
  51. data/lib/cf_factory/cloudfront/cf_s3_origin_config.rb +3 -1
  52. data/lib/cf_factory/cloudwatch/cf_cloud_watch_alarm.rb +2 -0
  53. data/lib/cf_factory/dynamo/cf_dynamo_table.rb +45 -0
  54. data/lib/cf_factory/eb/cd_eb_solution_stack.rb +28 -0
  55. data/lib/cf_factory/eb/cf_eb_application.rb +41 -0
  56. data/lib/cf_factory/eb/cf_eb_application_version.rb +24 -0
  57. data/lib/cf_factory/eb/cf_eb_configuration_template.rb +36 -0
  58. data/lib/cf_factory/eb/cf_eb_environment.rb +56 -0
  59. data/lib/cf_factory/eb/cf_eb_option_setting.rb +19 -0
  60. data/lib/cf_factory/ec2/cf_ebs_volume.rb +2 -0
  61. data/lib/cf_factory/ec2/cf_ec2_instance.rb +5 -1
  62. data/lib/cf_factory/ec2/cf_ec2_security_group.rb +2 -0
  63. data/lib/cf_factory/ec2/cf_ec2_security_group_egress.rb +3 -1
  64. data/lib/cf_factory/ec2/cf_ec2_security_group_ingress.rb +3 -1
  65. data/lib/cf_factory/ec2/cf_eip.rb +2 -0
  66. data/lib/cf_factory/ec2/cf_eip_association.rb +3 -1
  67. data/lib/cf_factory/elb/cf_app_cookie_stickiness_policy.rb +3 -1
  68. data/lib/cf_factory/elb/cf_elb.rb +3 -1
  69. data/lib/cf_factory/elb/cf_health_check.rb +3 -1
  70. data/lib/cf_factory/elb/cf_lb_cookie_stickiness_policy.rb +3 -1
  71. data/lib/cf_factory/elb/cf_listener.rb +3 -1
  72. data/lib/cf_factory/help/fixes.rb +1 -0
  73. data/lib/cf_factory/help/ip_mask.rb +2 -0
  74. data/lib/cf_factory/help/template_validation.rb +3 -1
  75. data/lib/cf_factory/iam/cf_iam_access_key.rb +3 -1
  76. data/lib/cf_factory/iam/cf_iam_group.rb +3 -1
  77. data/lib/cf_factory/iam/cf_iam_instance_profile.rb +3 -1
  78. data/lib/cf_factory/iam/cf_iam_policy.rb +2 -0
  79. data/lib/cf_factory/iam/cf_iam_role.rb +3 -1
  80. data/lib/cf_factory/iam/cf_iam_statement.rb +2 -0
  81. data/lib/cf_factory/iam/cf_iam_user.rb +3 -1
  82. data/lib/cf_factory/iam/cf_policy_document.rb +3 -1
  83. data/lib/cf_factory/modules/base_vpc.rb +2 -0
  84. data/lib/cf_factory/rds/cf_rds_instance.rb +3 -1
  85. data/lib/cf_factory/rds/cf_rds_security_group.rb +3 -1
  86. data/lib/cf_factory/rds/cf_rds_security_group_ingress.rb +3 -1
  87. data/lib/cf_factory/rds/cf_rds_subnet_group.rb +3 -1
  88. data/lib/cf_factory/route53/cf_elb_alias_target.rb +2 -0
  89. data/lib/cf_factory/route53/cf_record_set.rb +2 -0
  90. data/lib/cf_factory/route53/cf_route53_record_set.rb +2 -0
  91. data/lib/cf_factory/route53/cf_route53_record_set_group.rb +2 -0
  92. data/lib/cf_factory/s3/cf_s3_bucket.rb +2 -0
  93. data/lib/cf_factory/s3/cf_web_site_config.rb +3 -1
  94. data/lib/cf_factory/sqs/cf_sqs_queue.rb +3 -1
  95. data/lib/cf_factory/vpc/cf_attach_gateway.rb +3 -1
  96. data/lib/cf_factory/vpc/cf_internet_gateway.rb +2 -0
  97. data/lib/cf_factory/vpc/cf_network_acl.rb +3 -1
  98. data/lib/cf_factory/vpc/cf_network_acl_association.rb +3 -1
  99. data/lib/cf_factory/vpc/cf_network_acl_entry.rb +2 -0
  100. data/lib/cf_factory/vpc/cf_route.rb +3 -1
  101. data/lib/cf_factory/vpc/cf_route_table.rb +3 -1
  102. data/lib/cf_factory/vpc/cf_route_table_association.rb +3 -1
  103. data/lib/cf_factory/vpc/cf_subnet.rb +3 -1
  104. data/lib/cf_factory/vpc/cf_vpc.rb +3 -1
  105. data/lib/cf_factory.rb +2 -93
  106. metadata +39 -4
data/bin/cf_factory ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'cf_factory'
4
+
5
+ puts "cf_factory command line tool placeholder"
6
+
7
+
8
+
9
+
data/examples/base_vpc.rb CHANGED
@@ -2,30 +2,30 @@
2
2
 
3
3
  require 'cf_factory'
4
4
 
5
- cf = CfMain.new("Bla bla bla")
5
+ cf = CfFactory::CfMain.new("Bla bla bla")
6
6
  ####### input parameters
7
- parameter = CfParameter.new("KeyName", "Name of the key", "String", {"Default" => "majung"})
7
+ parameter = CfFactory::CfParameter.new("KeyName", "Name of the key", "String", {"Default" => "majung"})
8
8
  cf.add_parameter(parameter)
9
- parameter2 = CfParameter.new("SecurityGroup", "Name of the security group", "String", {"Default" => "Blubber"})
9
+ parameter2 = CfFactory::CfParameter.new("SecurityGroup", "Name of the security group", "String", {"Default" => "Blubber"})
10
10
  cf.add_parameter(parameter2)
11
11
 
12
12
  ####### mappings
13
- mapping = CfMapping.new("Default","AMI",{"us-east-1" => "ami-c6699baf", "us-west-2" => "ami-52ff7262"})
13
+ mapping = CfFactory::CfMapping.new("Default","AMI",{"us-east-1" => "ami-c6699baf", "us-west-2" => "ami-52ff7262"})
14
14
  cf.add_mapping(mapping)
15
15
 
16
16
  ####### resources
17
17
  #vpc
18
- base_vpc = BaseVpc.new("BaseVpc","192.168.0.0/16",2,4,["eu-west-1a","eu-west-1b"],256)
18
+ base_vpc = CfFactory::BaseVpc.new("BaseVpc","192.168.0.0/16",2,4,["eu-west-1a","eu-west-1b"],256)
19
19
  base_vpc.add_to_template(cf)
20
20
  vpc = base_vpc.vpc
21
21
 
22
- network_acl = CfNetworkAcl.new("MyAcl1")
22
+ network_acl = CfFactory::CfNetworkAcl.new("MyAcl1")
23
23
  vpc.add_network_acl(network_acl)
24
- network_acl_entry = CfNetworkAclEntry.new("Acl1", "110", "6", "ALLOW", false, "0.0.0.0/0", 80, 80)
24
+ network_acl_entry = CfFactory::CfNetworkAclEntry.new("Acl1", "110", "6", "ALLOW", false, "0.0.0.0/0", 80, 80)
25
25
  network_acl.add_network_acl_entry(network_acl_entry)
26
26
 
27
27
  ####### output parameters
28
- output = CfOutput.new("BaseVpc", "Id of the VPC", vpc.generate_ref())
28
+ output = CfFactory::CfOutput.new("BaseVpc", "Id of the VPC", vpc.generate_ref())
29
29
  cf.add_output(output)
30
30
 
31
31
  cf_json = cf.generate
@@ -34,7 +34,7 @@ puts cf_json
34
34
  config_options = YAML.load_file("aws_config.yml")
35
35
  config_options["cloud_formation_endpoint"] = "cloudformation.us-east-1.amazonaws.com"
36
36
  puts config_options.inspect
37
- validator = TemplateValidation.new(cf_json, config_options)
37
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
38
38
  validator.validate()
39
39
 
40
40
  #puts "the reference for the VPC : #{vpc.generate_ref}"
@@ -0,0 +1,23 @@
1
+ require 'help/include_libraries'
2
+
3
+ #INCOMPLETE: seems as if the OriginAccessIdentity cannot be created via CloudFormation
4
+
5
+ # CloudFormation template that creates an S3 bucket that allows private access
6
+ # to a cloudfront distribution.
7
+ # What remains at the end:
8
+ # - create content in S3 bucket
9
+ # - create cloudfront access keys (Account -> Security Credentials)
10
+ # - use a library to sign that content
11
+ cf = CfMain.new("CloudFront for private content")
12
+ s3_bucket = CfS3.new("majung-cloudfront-private-1")
13
+ cf.add_resource(s3_bucket)
14
+
15
+ #cloudfront
16
+ origin = CfCustomOriginConfig.new("http-only",:http_port => 80)
17
+ origin_config = CfOrigin.new(elb.retrieve_attribute("DNSName") ,"CF001", origin)
18
+ origin_config = CfS3OriginConfig.new(options)
19
+ default_cache_behavior = CfDefaultCacheBehavior.new(origin_config.id,CfForwardedValues.new(true),"allow-all",{:min_ttl => 0})
20
+ distribution_details = CfDistributionConfig.new([origin_config],default_cache_behavior,true)
21
+ cloudfront_distribution = CfCloudfrontDistribution.new("MyDistribution",distribution_details)
22
+ cf.add_resource(cloudfront_distribution)
23
+
@@ -2,29 +2,29 @@
2
2
 
3
3
  require 'cf_factory'
4
4
 
5
- cf = CfMain.new("Playground")
5
+ cf = CfFactory::CfMain.new("Playground")
6
6
  ##########################
7
7
  ami = "ami-1624987f"
8
8
 
9
- input_keyname = CfParameter.new("KeyName","Name of key for SSH access","String",{"Default" => "majung"})
9
+ input_keyname = CfFactory::CfParameter.new("KeyName","Name of key for SSH access","String",{"Default" => "majung"})
10
10
  cf.add_parameter(input_keyname)
11
- input_ami = CfParameter.new("AMI","ID of AMI for instance","String",{"Default" => ami})
11
+ input_ami = CfFactory::CfParameter.new("AMI","ID of AMI for instance","String",{"Default" => ami})
12
12
  cf.add_parameter(input_ami)
13
13
 
14
- statement = CfIamStatement.new("Allow","cloudformation:DescribeStackResource","*")
15
- role_policy = CfIamPolicy.new("MyRolePolicy", CfPolicyDocument.new([statement]))
16
- iam_user = CfIamUser.new("IamUser","/",{:policies => [role_policy]})
14
+ statement = CfFactory::CfIamStatement.new("Allow","cloudformation:DescribeStackResource","*")
15
+ role_policy = CfFactory::CfIamPolicy.new("MyRolePolicy", CfFactory::CfPolicyDocument.new([statement]))
16
+ iam_user = CfFactory::CfIamUser.new("IamUser","/",{:policies => [role_policy]})
17
17
  cf.add_resource(iam_user)
18
- iam_access_key = CfIamAccessKey.new("IamAccessKey",iam_user.generate_ref,"Active")
18
+ iam_access_key = CfFactory::CfIamAccessKey.new("IamAccessKey",iam_user.generate_ref,"Active")
19
19
  cf.add_resource(iam_access_key)
20
20
 
21
- script = CfInitScript.create_basic("MyInstance",iam_access_key.generate_ref,iam_access_key.retrieve_attribute("SecretAccessKey"))
21
+ script = CfFactory::CfInitScript.create_basic("MyInstance",iam_access_key.generate_ref,iam_access_key.retrieve_attribute("SecretAccessKey"))
22
22
  #full_init_script = script.user_data()
23
23
 
24
- full_init_script = CfHelper.join([
24
+ full_init_script = CfFactory::CfHelper.join([
25
25
  "#!/bin/bash -v\\n",
26
26
  "yum update -y aws-cfn-bootstrap\\n",
27
- "/opt/aws/bin/cfn-init -s ", CfHelper.generate_ref("AWS::StackName"),
27
+ "/opt/aws/bin/cfn-init -s ", CfFactory::CfHelper.generate_ref("AWS::StackName"),
28
28
  " -r ", "MyInstance ",
29
29
  " --access-key ", iam_access_key.generate_ref,
30
30
  " --secret-key ", iam_access_key.retrieve_attribute("SecretAccessKey")]
@@ -32,34 +32,34 @@ full_init_script = CfHelper.join([
32
32
 
33
33
 
34
34
 
35
- instance = CfEc2Instance.new("MyInstance",input_ami.generate_ref,"m1.small",
35
+ instance = CfFactory::CfEc2Instance.new("MyInstance",input_ami.generate_ref,"m1.small",
36
36
  {:keyname => input_keyname.generate_ref(),
37
37
  :user_data => full_init_script
38
38
  }
39
39
  )
40
- packages = CfCloudFormationPackages.new([CfCloudFormationPackage.new("yum","httpd","2.2.13")])
41
- commands = CfCloudFormationCommands.new([
42
- CfCloudFormationCommand.new("command1","echo cloudinit"),
43
- CfCloudFormationCommand.new("command2","echo cloudinit > /var/log/my-cloudinit.txt")
40
+ packages = CfFactory::CfCloudFormationPackages.new([CfFactory::CfCloudFormationPackage.new("yum","httpd","2.2.13")])
41
+ commands = CfFactory::CfCloudFormationCommands.new([
42
+ CfFactory::CfCloudFormationCommand.new("command1","echo cloudinit"),
43
+ CfFactory::CfCloudFormationCommand.new("command2","echo cloudinit > /var/log/my-cloudinit.txt")
44
44
  ])
45
- config1 = CfCloudFormationConfig.new("config1", nil, commands, nil, packages)
46
- config2 = CfCloudFormationConfig.new("config", nil, commands, nil, nil)
45
+ config1 = CfFactory::CfCloudFormationConfig.new("config1", nil, commands, nil, packages)
46
+ config2 = CfFactory::CfCloudFormationConfig.new("config", nil, commands, nil, nil)
47
47
 
48
- meta_data = CfCloudFormationInit.new([config2])
48
+ meta_data = CfFactory::CfCloudFormationInit.new([config2])
49
49
  instance.set_meta_data(meta_data)
50
50
  cf.add_resource(instance)
51
51
 
52
- stackname = CfOutput.new("StackName","Name of CloudFormation stack",CfHelper.generate_ref("AWS::StackName"))
52
+ stackname = CfFactory::CfOutput.new("StackName","Name of CloudFormation stack",CfFactory::CfHelper.generate_ref("AWS::StackName"))
53
53
  cf.add_output(stackname)
54
- instance_ip = CfOutput.new("InstanceIp","DNS Name of instance created",instance.retrieve_attribute("PublicDnsName"))
54
+ instance_ip = CfFactory::CfOutput.new("InstanceIp","DNS Name of instance created",instance.retrieve_attribute("PublicDnsName"))
55
55
  cf.add_output(instance_ip)
56
- access_key = CfOutput.new("AccessKey","Access key",iam_access_key.generate_ref)
56
+ access_key = CfFactory::CfOutput.new("AccessKey","Access key",iam_access_key.generate_ref)
57
57
  cf.add_output(access_key)
58
- secret_key = CfOutput.new("SecretKey","Secret key",iam_access_key.retrieve_attribute("SecretAccessKey"))
58
+ secret_key = CfFactory::CfOutput.new("SecretKey","Secret key",iam_access_key.retrieve_attribute("SecretAccessKey"))
59
59
  cf.add_output(secret_key)
60
60
 
61
- output_command = CfOutput.new("FullCommand", "Full command to be executed",
62
- CfHelper.join(["/opt/aws/bin/cfn-init -s ", CfHelper.generate_ref("AWS::StackName"),
61
+ output_command = CfFactory::CfOutput.new("FullCommand", "Full command to be executed",
62
+ CfFactory::CfHelper.join(["/opt/aws/bin/cfn-init -s ", CfFactory::CfHelper.generate_ref("AWS::StackName"),
63
63
  " -r ", instance.get_name(),
64
64
  " --access-key ", iam_access_key.generate_ref,
65
65
  " --secret-key ", iam_access_key.retrieve_attribute("SecretAccessKey")]
@@ -72,6 +72,6 @@ puts cf_json
72
72
 
73
73
  config_options = YAML.load_file("aws_config.yml")
74
74
  config_options["cloud_formation_endpoint"] = "cloudformation.us-east-1.amazonaws.com"
75
- validator = TemplateValidation.new(cf_json, config_options)
75
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
76
76
  validator.validate()
77
77
 
@@ -2,76 +2,76 @@
2
2
 
3
3
  require 'cf_factory'
4
4
 
5
- cf = CfMain.new("Playground")
5
+ cf = CfFactory::CfMain.new("Playground")
6
6
  ##########################
7
7
  ami = "ami-1624987f"
8
8
 
9
- input_keyname = CfParameter.new("KeyName","Name of key for SSH access","String",{"Default" => "majung"})
9
+ input_keyname = CfFactory::CfParameter.new("KeyName","Name of key for SSH access","String",{"Default" => "majung"})
10
10
  cf.add_parameter(input_keyname)
11
- input_ami = CfParameter.new("AMI","ID of AMI for instance","String",{"Default" => ami})
11
+ input_ami = CfFactory::CfParameter.new("AMI","ID of AMI for instance","String",{"Default" => ami})
12
12
  cf.add_parameter(input_ami)
13
13
 
14
- statement = CfIamStatement.new("Allow","cloudformation:DescribeStackResource","*")
15
- role_policy = CfIamPolicy.new("MyRolePolicy", CfPolicyDocument.new([statement]))
16
- iam_user = CfIamUser.new("IamUser","/",{:policies => [role_policy]})
14
+ statement = CfFactory::CfIamStatement.new("Allow","cloudformation:DescribeStackResource","*")
15
+ role_policy = CfFactory::CfIamPolicy.new("MyRolePolicy", CfFactory::CfPolicyDocument.new([statement]))
16
+ iam_user = CfFactory::CfIamUser.new("IamUser","/",{:policies => [role_policy]})
17
17
  cf.add_resource(iam_user)
18
- iam_access_key = CfIamAccessKey.new("IamAccessKey",iam_user.generate_ref,"Active")
18
+ iam_access_key = CfFactory::CfIamAccessKey.new("IamAccessKey",iam_user.generate_ref,"Active")
19
19
  cf.add_resource(iam_access_key)
20
20
 
21
- script = CfInitScript.create_basic("MyInstance",iam_access_key.generate_ref,iam_access_key.retrieve_attribute("SecretAccessKey"))
21
+ script = CfFactory::CfInitScript.create_basic("MyInstance",iam_access_key.generate_ref,iam_access_key.retrieve_attribute("SecretAccessKey"))
22
22
  #full_init_script = script.user_data()
23
- full_init_script = CfHelper.join([
23
+ full_init_script = CfFactory::CfHelper.join([
24
24
  "#!/bin/bash -v\\n",
25
25
  "yum update -y aws-cfn-bootstrap\\n",
26
- "/opt/aws/bin/cfn-init -s ", CfHelper.generate_ref("AWS::StackName"),
26
+ "/opt/aws/bin/cfn-init -s ", CfFactory::CfHelper.generate_ref("AWS::StackName"),
27
27
  " -r ", "InstanceLaunchConfig ",
28
28
  " --access-key ", iam_access_key.generate_ref,
29
29
  " --secret-key ", iam_access_key.retrieve_attribute("SecretAccessKey")]
30
30
  )
31
31
 
32
- packages = CfCloudFormationPackages.new([CfCloudFormationPackage.new("yum","httpd","2.2.13")])
33
- commands = CfCloudFormationCommands.new([
34
- CfCloudFormationCommand.new("command1","echo cloudinit"),
35
- CfCloudFormationCommand.new("command2","echo cloudinit > /var/log/my-cloudinit.txt")
32
+ packages = CfFactory::CfCloudFormationPackages.new([CfFactory::CfCloudFormationPackage.new("yum","httpd","2.2.13")])
33
+ commands = CfFactory::CfCloudFormationCommands.new([
34
+ CfFactory::CfCloudFormationCommand.new("command1","echo cloudinit"),
35
+ CfFactory::CfCloudFormationCommand.new("command2","echo cloudinit > /var/log/my-cloudinit.txt")
36
36
  ])
37
- config1 = CfCloudFormationConfig.new("config1", nil, commands, nil, packages)
38
- config2 = CfCloudFormationConfig.new("config", nil, commands, nil, nil)
37
+ config1 = CfFactory::CfCloudFormationConfig.new("config1", nil, commands, nil, packages)
38
+ config2 = CfFactory::CfCloudFormationConfig.new("config", nil, commands, nil, nil)
39
39
 
40
40
  #auto-scaling group
41
- launch_config = CfAsLaunchConfig.new("InstanceLaunchConfig", input_ami.generate_ref, "t1.micro", { :key_name => input_keyname.generate_ref(), :user_data => full_init_script})
42
- meta_data = CfCloudFormationInit.new([config2])
41
+ launch_config = CfFactory::CfAsLaunchConfig.new("InstanceLaunchConfig", input_ami.generate_ref, "t1.micro", { :key_name => input_keyname.generate_ref(), :user_data => full_init_script})
42
+ meta_data = CfFactory::CfCloudFormationInit.new([config2])
43
43
  launch_config.set_meta_data(meta_data)
44
44
  cf.add_resource(launch_config)
45
- availability_zones = CfHelper.az_array_in_region(["b","c"])
46
- as_group = CfAsGroup.new("AppServerFleet",availability_zones, launch_config, [], 4 ,2 ,{:desired_capacity => 2})
45
+ availability_zones = CfFactory::CfHelper.az_array_in_region(["b","c"])
46
+ as_group = CfFactory::CfAsGroup.new("AppServerFleet",availability_zones, launch_config, [], 4 ,2 ,{:desired_capacity => 2})
47
47
  cf.add_resource(as_group)
48
- as_up_scaling_policy = CfAsScalingPolicy.new("MyUpscalePolicy",as_group,"ChangeInCapacity","1",{:cooldown => 300})
48
+ as_up_scaling_policy = CfFactory::CfAsScalingPolicy.new("MyUpscalePolicy",as_group,"ChangeInCapacity","1",{:cooldown => 300})
49
49
  cf.add_resource(as_up_scaling_policy)
50
- as_down_scaling_policy = CfAsScalingPolicy.new("MyDownscalePolicy",as_group,"ChangeInCapacity","-1",{:cooldown => 300})
50
+ as_down_scaling_policy = CfFactory::CfAsScalingPolicy.new("MyDownscalePolicy",as_group,"ChangeInCapacity","-1",{:cooldown => 300})
51
51
  cf.add_resource(as_down_scaling_policy)
52
- as_up_alarm = CfCloudWatchAlarm.new("MyUpAlarm",CfCloudWatchAlarm::GREATER_THAN_OR_EQUAL_TO_THRESHOLD, "3", "CPUUtilization","AWS/EC2",
52
+ as_up_alarm = CfFactory::CfCloudWatchAlarm.new("MyUpAlarm",CfFactory::CfCloudWatchAlarm::GREATER_THAN_OR_EQUAL_TO_THRESHOLD, "3", "CPUUtilization","AWS/EC2",
53
53
  "60","Average","80", {:alarm_actions => [as_up_scaling_policy]})
54
- as_down_alarm = CfCloudWatchAlarm.new("MyDownAlarm",CfCloudWatchAlarm::LESS_THAN_THRESHOLD, "3", "CPUUtilization","AWS/EC2",
54
+ as_down_alarm = CfFactory::CfCloudWatchAlarm.new("MyDownAlarm",CfFactory::CfCloudWatchAlarm::LESS_THAN_THRESHOLD, "3", "CPUUtilization","AWS/EC2",
55
55
  "60","Average","30", {:alarm_actions => [as_down_scaling_policy]})
56
56
  cf.add_resource(as_up_alarm)
57
57
  cf.add_resource(as_down_alarm)
58
58
 
59
- stackname = CfOutput.new("StackName","Name of CloudFormation stack",CfHelper.generate_ref("AWS::StackName"))
59
+ stackname = CfFactory::CfOutput.new("StackName","Name of CloudFormation stack",CfFactory::CfHelper.generate_ref("AWS::StackName"))
60
60
  cf.add_output(stackname)
61
- access_key = CfOutput.new("AccessKey","Access key",iam_access_key.generate_ref)
61
+ access_key = CfFactory::CfOutput.new("AccessKey","Access key",iam_access_key.generate_ref)
62
62
  cf.add_output(access_key)
63
- secret_key = CfOutput.new("SecretKey","Secret key",iam_access_key.retrieve_attribute("SecretAccessKey"))
63
+ secret_key = CfFactory::CfOutput.new("SecretKey","Secret key",iam_access_key.retrieve_attribute("SecretAccessKey"))
64
64
  cf.add_output(secret_key)
65
65
 
66
- output_command = CfOutput.new("FullCommand", "Full command to be executed",
67
- CfHelper.join(["/opt/aws/bin/cfn-init -s ", CfHelper.generate_ref("AWS::StackName"),
66
+ output_command = CfFactory::CfOutput.new("FullCommand", "Full command to be executed",
67
+ CfFactory::CfHelper.join(["/opt/aws/bin/cfn-init -s ", CfFactory::CfHelper.generate_ref("AWS::StackName"),
68
68
  " -r ", launch_config.get_name(),
69
69
  " --access-key ", iam_access_key.generate_ref,
70
70
  " --secret-key ", iam_access_key.retrieve_attribute("SecretAccessKey")]
71
71
  ))
72
72
  cf.add_output(output_command)
73
73
 
74
- tag = CfEc2Tag.new("CloudFormationTests","active")
74
+ tag = CfFactory::CfEc2Tag.new("CloudFormationTests","active")
75
75
  cf.apply_tags_to_all_resources([tag])
76
76
 
77
77
  ##########################
@@ -80,6 +80,6 @@ puts cf_json
80
80
 
81
81
  config_options = YAML.load_file("aws_config.yml")
82
82
  config_options["cloud_formation_endpoint"] = "cloudformation.us-east-1.amazonaws.com"
83
- validator = TemplateValidation.new(cf_json, config_options)
83
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
84
84
  validator.validate()
85
85
 
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'cf_factory'
4
+
5
+ cf = CfFactory::CfMain.new("DynamoTableStack")
6
+
7
+ parameter_hash = CfFactory::CfParameter.new("HashKeyName", "Name of the hash key", "String", {"Default" => "hashkey"})
8
+ cf.add_parameter(parameter_hash)
9
+
10
+ dynamo_table = CfFactory::CfDynamoTable.new("DynamoTable",
11
+ 10, 10,
12
+ parameter_hash.generate_ref, "S")
13
+
14
+ cf.add_resource(dynamo_table)
15
+
16
+ output_dynamo_table_name = CfFactory::CfOutput.new("DynamoTableName", "The name of the Dynamo table", dynamo_table.generate_ref())
17
+ cf.add_output(output_dynamo_table_name)
18
+
19
+ cf_json = cf.generate
20
+ puts cf_json
21
+
22
+ config_options = YAML.load_file("aws_config.yml")
23
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
24
+ validator.validate()
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'cf_factory'
4
+
5
+ cf = CfFactory::CfMain.new("IngestReferenceArchitecture")
6
+
7
+ keypair = CfFactory::CfParameter.new("KeyName", "Name of the key",
8
+ "String", {"Default" => ""})
9
+ cf.add_parameter(keypair)
10
+
11
+ capture_version = CfFactory::CfEbApplicationVersion.new("Capture Version 1", "Capture Version 1", "capture.zip", "1.0")
12
+
13
+ capture_option = CfFactory::CfEbOptionSetting.new("aws:autoscaling:launchconfiguration", "EC2KeyName", keypair.generate_ref())
14
+
15
+ capture_template = CfFactory::CfEbConfigurationTemplate.new("Capture Template", "Capture Template", [capture_option], :s64ruby193)
16
+ capture_application = CfFactory::CfEbApplication.new("Capture","Twitter Capture Service",
17
+ [capture_version], [capture_template])
18
+
19
+ cf_json = cf.generate
20
+ puts cf_json
21
+
22
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
23
+ validator.validate()
@@ -1,18 +1,20 @@
1
- require 'help/include_libraries'
1
+ #!/usr/bin/ruby
2
+
3
+ require 'cf_factory'
2
4
 
3
5
  # CloudFormation template for Atraveo. 2-Tiered web-application with load-balancing.
4
- cf = CfMain.new("CloudFront with ELB as origin with dynamic content")
6
+ cf = CfFactory::CfMain.new("CloudFront with ELB as origin with dynamic content")
5
7
  app_port = 8080
6
8
  key_name = "default"
7
9
  app_server_ami = "ami-c6699baf"
8
10
  spot_price = "0.02"
9
11
 
10
12
  ####### input parameters
11
- param_app_server_ami = CfParameter.new("AppServerAmi", "AMI of App-Server", "String")
13
+ param_app_server_ami = CfFactory::CfParameter.new("AppServerAmi", "AMI of App-Server", "String")
12
14
  cf.add_parameter(param_app_server_ami)
13
- param_app_server_key = CfParameter.new("AppServerKey", "Key used to start App-Server", "String")
15
+ param_app_server_key = CfFactory::CfParameter.new("AppServerKey", "Key used to start App-Server", "String")
14
16
  cf.add_parameter(param_app_server_key)
15
- param_app_port = CfParameter.new("AppPort", "Port of the Web/App-Servers", "Number", {"Default" => "8080"})
17
+ param_app_port = CfFactory::CfParameter.new("AppPort", "Port of the Web/App-Servers", "Number", {"Default" => "8080"})
16
18
  cf.add_parameter(param_app_port)
17
19
 
18
20
  zone = "us-east"
@@ -23,53 +25,53 @@ zone = "us-east"
23
25
 
24
26
  #VPC/subnets: all public to be able to be able to connect the instances by adding an EIP
25
27
  #VPC, IGW, and route tables
26
- vpc = CfVpc.new("10.10.0.0/16")
28
+ vpc = CfFactory::CfVpc.new("10.10.0.0/16")
27
29
  cf.add_vpc(vpc)
28
- igw = CfInternetGateway.new("MyInternetGateway", vpc)
30
+ igw = CfFactory::CfInternetGateway.new("MyInternetGateway", vpc)
29
31
  vpc.add_internet_gateway(igw)
30
- public_route_table = CfRouteTable.new("InternetRouteTable")
31
- igw_route = CfRoute.new("IgwRoute", "0.0.0.0/0", igw)
32
+ public_route_table = CfFactory::CfRouteTable.new("InternetRouteTable")
33
+ igw_route = CfFactory::CfRoute.new("IgwRoute", "0.0.0.0/0", igw)
32
34
  public_route_table.add_route(igw_route)
33
35
  vpc.add_route_table(public_route_table)
34
36
 
35
37
  # subnets
36
- subnet_elb_a = CfSubnet.new("SubnetElbA", "10.10.1.0/24", "#{zone}-1c", public_route_table)
38
+ subnet_elb_a = CfFactory::CfSubnet.new("SubnetElbA", "10.10.1.0/24", "#{zone}-1c", public_route_table)
37
39
  vpc.add_subnet(subnet_elb_a)
38
- subnet_elb_b = CfSubnet.new("SubnetElbB", "10.10.2.0/24", "#{zone}-1b", public_route_table)
40
+ subnet_elb_b = CfFactory::CfSubnet.new("SubnetElbB", "10.10.2.0/24", "#{zone}-1b", public_route_table)
39
41
  vpc.add_subnet(subnet_elb_b)
40
- subnet_web_a = CfSubnet.new("SubnetWebA", "10.10.3.0/24", "#{zone}-1c", public_route_table)
42
+ subnet_web_a = CfFactory::CfSubnet.new("SubnetWebA", "10.10.3.0/24", "#{zone}-1c", public_route_table)
41
43
  vpc.add_subnet(subnet_web_a)
42
- subnet_web_b = CfSubnet.new("SubnetWebB", "10.10.4.0/24", "#{zone}-1b", public_route_table)
44
+ subnet_web_b = CfFactory::CfSubnet.new("SubnetWebB", "10.10.4.0/24", "#{zone}-1b", public_route_table)
43
45
  vpc.add_subnet(subnet_web_b)
44
46
 
45
47
  #security groups
46
48
  elb_security_group_name = "ElbSecurityGroup"
47
- elb_sec_group = CfEc2SecurityGroup.new(elb_security_group_name, "Group for ELB", vpc)
48
- elb_sec_group.add_ingress_rule(CfEc2SecurityGroupIngress.new("tcp", 80, 80, "0.0.0.0/0"))
49
- elb_sec_group.add_ingress_rule(CfEc2SecurityGroupIngress.new("tcp", 443, 443, "0.0.0.0/0"))
49
+ elb_sec_group = CfFactory::CfEc2SecurityGroup.new(elb_security_group_name, "Group for ELB", vpc)
50
+ elb_sec_group.add_ingress_rule(CfFactory::CfEc2SecurityGroupIngress.new("tcp", 80, 80, "0.0.0.0/0"))
51
+ elb_sec_group.add_ingress_rule(CfFactory::CfEc2SecurityGroupIngress.new("tcp", 443, 443, "0.0.0.0/0"))
50
52
  cf.add_resource(elb_sec_group)
51
53
 
52
54
  app_security_group_name = "AppSecurityGroup"
53
- app_sec_group = CfEc2SecurityGroup.new(app_security_group_name, "Group for web and app", vpc)
54
- app_sec_group.add_ingress_rule(CfEc2SecurityGroupIngress.new("tcp", 22, 22, "0.0.0.0/0"))
55
- app_sec_group.add_ingress_rule(CfEc2SecurityGroupIngress.new("tcp", param_app_port.generate_ref(), param_app_port.generate_ref(), nil, elb_sec_group))
55
+ app_sec_group = CfFactory::CfEc2SecurityGroup.new(app_security_group_name, "Group for web and app", vpc)
56
+ app_sec_group.add_ingress_rule(CfFactory::CfEc2SecurityGroupIngress.new("tcp", 22, 22, "0.0.0.0/0"))
57
+ app_sec_group.add_ingress_rule(CfFactory::CfEc2SecurityGroupIngress.new("tcp", param_app_port.generate_ref(), param_app_port.generate_ref(), nil, elb_sec_group))
56
58
  cf.add_resource(app_sec_group)
57
59
 
58
60
  #application servers (one in each region)
59
61
  options = {}
60
- instance_a = CfEc2Instance.new("InstanceA",param_app_server_ami.generate_ref, "t1.micro", {:subnet => subnet_web_a, :vpc_security_groups => [app_sec_group]})
61
- instance_b = CfEc2Instance.new("InstanceB",param_app_server_ami.generate_ref, "t1.micro", {:subnet => subnet_web_b, :vpc_security_groups => [app_sec_group]})
62
+ instance_a = CfFactory::CfEc2Instance.new("InstanceA",param_app_server_ami.generate_ref, "t1.micro", {:subnet => subnet_web_a, :vpc_security_groups => [app_sec_group]})
63
+ instance_b = CfFactory::CfEc2Instance.new("InstanceB",param_app_server_ami.generate_ref, "t1.micro", {:subnet => subnet_web_b, :vpc_security_groups => [app_sec_group]})
62
64
  cf.add_resource(instance_a)
63
65
  cf.add_resource(instance_b)
64
66
 
65
67
  #elb
66
68
  #health_check_string = "HTTP:#{param_app_port.generate_ref()}/index.html"
67
69
  health_check_string = "HTTP:80/index.html"
68
- elb = CfElb.new("MyLoadBalancer", {
70
+ elb = CfFactory::CfElb.new("MyLoadBalancer", {
69
71
  :subnets => [subnet_elb_a, subnet_elb_b],
70
72
  #:app_cookie_stickiness_policy => [CfAppCookieStickinessPolicy.new("cookiename","policybla")],
71
- :health_check => CfHealthCheck.new("3","60", health_check_string,"10","2"),
72
- :listeners => [CfListener.new(param_app_port.generate_ref(),"http","80","http")],
73
+ :health_check => CfFactory::CfHealthCheck.new("3","60", health_check_string,"10","2"),
74
+ :listeners => [CfFactory::CfListener.new(param_app_port.generate_ref(),"http","80","http")],
73
75
  :security_groups => [elb_sec_group],
74
76
  :instances => [instance_a, instance_b]
75
77
  }
@@ -77,25 +79,22 @@ elb = CfElb.new("MyLoadBalancer", {
77
79
  cf.add_resource(elb)
78
80
 
79
81
  #cloudfront
80
- origin = CfCustomOriginConfig.new("http-only",:http_port => 80)
81
- origin_config = CfOrigin.new(elb.retrieve_attribute("DNSName") ,"CF001", origin)
82
- default_cache_behavior = CfDefaultCacheBehavior.new(origin_config.id,CfForwardedValues.new(true),"allow-all",{:min_ttl => 0})
83
- distribution_details = CfDistributionConfig.new([origin_config],default_cache_behavior,true)
84
- cloudfront_distribution = CfCloudfrontDistribution.new("MyDistribution",distribution_details)
82
+ origin = CfFactory::CfCustomOriginConfig.new("http-only",:http_port => 80)
83
+ origin_config = CfFactory::CfOrigin.new(elb.retrieve_attribute("DNSName") ,"CF001", origin)
84
+ default_cache_behavior = CfFactory::CfDefaultCacheBehavior.new(origin_config.id,CfFactory::CfForwardedValues.new(true),"allow-all",{:min_ttl => 0})
85
+ distribution_details = CfFactory::CfDistributionConfig.new([origin_config],default_cache_behavior,true)
86
+ cloudfront_distribution = CfFactory::CfCloudfrontDistribution.new("MyDistribution",distribution_details)
85
87
  cf.add_resource(cloudfront_distribution)
86
88
 
87
89
  ####### output parameters
88
- elb_output = CfOutput.new("ElbEndpoint","Endpoint of the ELB",elb.retrieve_attribute("DNSName"))
90
+ elb_output = CfFactory::CfOutput.new("ElbEndpoint","Endpoint of the ELB",elb.retrieve_attribute("DNSName"))
89
91
  cf.add_output(elb_output)
90
- cloudfront_domain = CfOutput.new("CloudfrontDomain", "Endpoint of the CloudFront distribution", cloudfront_distribution.retrieve_attribute("DomainName"))
92
+ cloudfront_domain = CfFactory::CfOutput.new("CloudfrontDomain", "Endpoint of the CloudFront distribution", cloudfront_distribution.retrieve_attribute("DomainName"))
91
93
  cf.add_output(cloudfront_domain)
92
94
 
93
95
  cf_json = cf.generate
94
96
  puts cf_json
95
97
 
96
98
  config_options = YAML.load_file("aws_config.yml")
97
- validator = TemplateValidation.new(cf_json, config_options)
99
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
98
100
  validator.validate()
99
- validator.apply({"AppServerAmi" => "ami-e96bdf80", "AppServerKey" => "majung", "AppPort" => "80"})
100
-
101
- #puts "the reference for the VPC : #{vpc.generate_ref}"
@@ -1,9 +1,11 @@
1
- require 'help/include_libraries'
1
+ #!/usr/bin/ruby
2
2
 
3
- cf = CfMain.new("Playground")
3
+ require 'cf_factory'
4
+
5
+ cf = CfFactory::CfMain.new("Playground")
4
6
  ##########################
5
7
 
6
- mapping = CfMapping.new("Region2AmiMapping","AMI", {
8
+ mapping = CfFactory::CfMapping.new("Region2AmiMapping","AMI", {
7
9
  "us-east-1" => "ami-c6699baf",
8
10
  "us-west-2" => "ami-52ff7262",
9
11
  "us-west-1" => "ami-3bcc9e7e",
@@ -14,25 +16,25 @@ mapping = CfMapping.new("Region2AmiMapping","AMI", {
14
16
  })
15
17
  cf.add_mapping(mapping)
16
18
  ami = mapping.map_from_region()
17
- instance = CfEc2Instance.new("MyInstance", ami, "t1.micro")
19
+ instance = CfFactory::CfEc2Instance.new("MyInstance", ami, "t1.micro")
18
20
  cf.add_resource(instance)
19
- eip = CfEip.new("MyEip",instance)
21
+ eip = CfFactory::CfEip.new("MyEip",instance)
20
22
  cf.add_resource(eip)
21
- instance_ip_assoc = CfEipAssociation.new("MyEipAllocation", eip, instance, nil)
23
+ instance_ip_assoc = CfFactory::CfEipAssociation.new("MyEipAllocation", eip, instance, nil)
22
24
  cf.add_resource(instance_ip_assoc)
23
25
 
24
- eip_output = CfOutput.new("Eip", "Id of the EIP", eip.generate_ref())
26
+ eip_output = CfFactory::CfOutput.new("Eip", "Id of the EIP", eip.generate_ref())
25
27
  cf.add_output(eip_output)
26
28
  #eip_ip_output = CfOutput.new("Eip", "Id of the EIP", eip.retrieve_attribute("AllocationId")) only works for VPC
27
29
  #cf.add_output(eip_ip_output)
28
- assoc_output = CfOutput.new("Assoc", "Id of the Assoc", instance_ip_assoc.generate_ref())
30
+ assoc_output = CfFactory::CfOutput.new("Assoc", "Id of the Assoc", instance_ip_assoc.generate_ref())
29
31
  cf.add_output(assoc_output)
30
32
  ##########################
31
33
  cf_json = cf.generate
32
34
  puts cf_json
33
35
 
34
36
  config_options = YAML.load_file("aws_config.yml")
35
- validator = TemplateValidation.new(cf_json, config_options)
36
- validator.validate()
37
- validator.apply()
37
+ #validator = CfFactory::TemplateValidation.new(cf_json, config_options)
38
+ #validator.validate()
39
+ #validator.apply()
38
40
 
@@ -1,9 +1,11 @@
1
- require 'help/include_libraries'
1
+ #!/usr/bin/ruby
2
2
 
3
- cf = CfMain.new("Playground")
3
+ require 'cf_factory'
4
+
5
+ cf = CfFactory::CfMain.new("Playground")
4
6
  ##########################
5
7
 
6
- mapping = CfMapping.new("Region2AmiMapping","AMI", {
8
+ mapping = CfFactory::CfMapping.new("Region2AmiMapping","AMI", {
7
9
  "us-east-1" => "ami-c6699baf",
8
10
  "us-west-2" => "ami-52ff7262",
9
11
  "us-west-1" => "ami-3bcc9e7e",
@@ -15,16 +17,16 @@ mapping = CfMapping.new("Region2AmiMapping","AMI", {
15
17
  cf.add_mapping(mapping)
16
18
  ami = mapping.map_from_region()
17
19
  puts "AMI = #{ami}"
18
- instance = CfEc2Instance.new("MyInstance", ami, "t1.micro", {:keyname => "majung-eu"})
20
+ instance = CfFactory::CfEc2Instance.new("MyInstance", ami, "t1.micro", {:keyname => "majung-eu"})
19
21
  cf.add_resource(instance)
20
22
 
21
- packages = CfCloudFormationPackages.new([
22
- CfCloudFormationPackage.new("yum", "rubygems", []),
23
- CfCloudFormationPackage.new("yum", "rubygem-aws-sdk", []),
24
- CfCloudFormationPackage.new("rubygems", "cloudyscripts", ["2.14.60"])
23
+ packages = CfFactory::CfCloudFormationPackages.new([
24
+ CfFactory::CfCloudFormationPackage.new("yum", "rubygems", []),
25
+ CfFactory::CfCloudFormationPackage.new("yum", "rubygem-aws-sdk", []),
26
+ CfFactory::CfCloudFormationPackage.new("rubygems", "cloudyscripts", ["2.14.60"])
25
27
  ])
26
- config = CfCloudFormationConfig.new("GemInstallation", nil, nil, nil, packages)
27
- cloud_init_config = CfCloudFormationInit.new([config])
28
+ config = CfFactory::CfCloudFormationConfig.new("GemInstallation", nil, nil, nil, packages)
29
+ cloud_init_config = CfFactory::CfCloudFormationInit.new([config])
28
30
  instance.set_meta_data(cloud_init_config)
29
31
 
30
32
  ##########################
@@ -32,7 +34,7 @@ cf_json = cf.generate
32
34
  puts cf_json
33
35
 
34
36
  config_options = YAML.load_file("aws_config.yml")
35
- validator = TemplateValidation.new(cf_json, config_options)
37
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
36
38
  validator.validate()
37
39
  #validator.apply()
38
40
 
@@ -1,9 +1,11 @@
1
- require 'help/include_libraries'
1
+ #!/usr/bin/ruby
2
2
 
3
- cf = CfMain.new("JustAnInstance")
3
+ require 'cf_factory'
4
+
5
+ cf = CfFactory::CfMain.new("JustAnInstance")
4
6
  ##########################
5
7
 
6
- mapping = CfMapping.new("Region2AmiMapping","AMI", {
8
+ mapping = CfFactory::CfMapping.new("Region2AmiMapping","AMI", {
7
9
  "us-east-1" => "ami-c6699baf",
8
10
  "us-west-2" => "ami-52ff7262",
9
11
  "us-west-1" => "ami-3bcc9e7e",
@@ -15,7 +17,7 @@ mapping = CfMapping.new("Region2AmiMapping","AMI", {
15
17
  cf.add_mapping(mapping)
16
18
  ami = mapping.map_from_region()
17
19
  puts "AMI = #{ami}"
18
- instance = CfEc2Instance.new("MyInstance", ami, "t1.micro")
20
+ instance = CfFactory::CfEc2Instance.new("MyInstance", ami, "t1.micro")
19
21
  cf.add_resource(instance)
20
22
 
21
23
  ##########################
@@ -23,7 +25,7 @@ cf_json = cf.generate
23
25
  puts cf_json
24
26
 
25
27
  config_options = YAML.load_file("aws_config.yml")
26
- validator = TemplateValidation.new(cf_json, config_options)
28
+ validator = CfFactory::TemplateValidation.new(cf_json, config_options)
27
29
  validator.validate()
28
- validator.apply()
30
+
29
31