Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

marketplace_ami (1) Versions 0.1.0

Provides a marketplace_ami resource

Policyfile
Berkshelf
Knife
cookbook 'marketplace_ami', '~> 0.1.0', :supermarket
cookbook 'marketplace_ami', '~> 0.1.0'
knife supermarket install marketplace_ami
knife supermarket download marketplace_ami
README
Dependencies
Changelog
Quality 17%

marketplace_ami Cookbook

The marketplace_ami cookbook provides a chef resource for publishing AMI's into the AWS Marketplace. The resource will provision a new EC2 instance, converge your application cookbook, create an AMI and share it with AWS Marketplace. Optionally you can enable a security recipe that will remove sensitive data and a chef-client audit mode recipe that will audit the image for known AWS security policies.

Requirements

Chef 12.3.0 or higher.
Chef Provisioning 1.2.0 or higher.
Chef Provisioning AWS 1.2.1 or higher.

The latest versions are always recommended.

Cookbooks

  • build-essential
  • xml

Only to be used if chef-provisioning-aws has not been installed

Attributes

The attributes in this cookbook are used only by the the security recipe and audit controls.

<table>
<tr>
<th>Key</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
<tr>
<td><tt>['marketplace_ami']['controls']['cloud_init_enabled']</tt></td>
<td>Boolean</td>
<td>Whether or not the security audit should expect cloud-init to installed</td>
<td><tt>true</tt></td>
</tr>
<tr>
<td><tt>['marketplace_ami']['controls']['default_user']</tt></td>
<td>String</td>
<td>The default user for SSH access</td>
<td><tt>ec2-user</tt></td>
</tr>
<tr>
<td><tt>['marketplace_ami']['controls']['login_shell']</tt></td>
<td>String</td>
<td>The default users login_shell</td>
<td><tt>/bin/bash</tt></td>
</tr>
</table>

Resources

marketplace_ami

Creates an AWS Marketplace AMI

Actions

  • create - (default) Create an AWS Marketplace AMI

Properties

  • name The name of the AMI.
  • product_code The product code you wish to associate with the AMI
  • source_image_id The base image to launch (Ubuntu 14.04)
  • instance_type The size of the instance to launch (m4.xlarge)
  • ssh_keyname The name of the SSH keypair (creates a default if not given)
  • ssh_keypath The path to the private SSH key
  • ssh_username The username (ubuntu)
  • chef_server_url The URL to the Chef Server (local default)
  • machine_options A Hash of additional chef-provisioning machine_options
  • security Enable to disable the security recipe (false)
  • security_recipe The security recipe (marketplace_ami::_security)
  • audit Enable to disable the audit recipe (true)
  • audit_recipe The audit recipe (marketplace_ami::_security_controls)
  • attribute Set an attribute for the chef-client run
  • recipe Add a recipe to the runlist
  • role Add a role to the runlist

Usage

Before you being you'll need to properly set up valid EC2 credentials on the node that will be converging the recipe.

Update the metadata.rb of your application's cookbook to depend on 'marketplace_ami'
```ruby

your_application/metadata.rb

name 'your_application'
...
depends 'marketplace_ami'
```

Create a publishing recipe that utilizes the marketplace_ami resource to build your Marketplace AMI
```ruby

your_application/recipes/ami_publisher.rb

marketplace_ami "your_application-#{node['your_application']['version']}" do
instance_type 't2.medium'
source_image_id 'ami-123456'
ssh_keyname 'publisher'
ssh_keypath '~/.aws/publisher.pem'
ssh_username 'ec2-user'
product_code '123799879'
security true
audit true

role 'company_wide_role'
recipe 'your_application::setup'
recipe 'your_application::install'
attribute %w(your_application tofu), 'yes'
attribute %w(your_application brocolli), 'more_please'

action :create
end
```

Run the chef-client!

License and Authors

Author:: Chef Partner Engineering (partnereng@chef.io)

Dependent cookbooks

build-essential >= 0.0.0
xml >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

0.1.0

Initial release of marketplace_ami

Collaborator Number Metric
            

0.1.0 failed this metric

Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Contributing File Metric
            

0.1.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file

Foodcritic Metric
            

0.1.0 failed this metric

FC064: Ensure issues_url is set in metadata: marketplace_ami/metadata.rb:1
FC065: Ensure source_url is set in metadata: marketplace_ami/metadata.rb:1
FC066: Ensure chef_version is set in metadata: marketplace_ami/metadata.rb:1
FC067: Ensure at least one platform supported in metadata: marketplace_ami/metadata.rb:1
FC069: Ensure standardized license defined in metadata: marketplace_ami/metadata.rb:1
FC121: Cookbook depends on cookbook made obsolete by Chef 14: marketplace_ami/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: marketplace_ami/libraries/marketplace_ami_provider.rb:102
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric
            

0.1.0 passed this metric

Testing File Metric
            

0.1.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file

Version Tag Metric
            

0.1.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number