Sha256: d69b941de8aba2551651ed8abf9ab7cacf203c200c1b72067a5faf4ce346e27b

Contents?: true

Size: 1.92 KB

Versions: 16

Compression:

Stored size: 1.92 KB

Contents

ClusterChef.cluster 'webserver_demo' do
  cloud :ec2 do
    defaults
    availability_zones ['us-east-1d']
    flavor              't1.micro'  # change to something larger for serious use
    backing             'ebs'
    image_name          'natty'
    bootstrap_distro    'ubuntu10.04-cluster_chef'
    chef_client_script  'client.rb'
    mount_ephemerals(:tags => { :scratch_dirs => true })
  end

  role                  "nfs_client"
  recipe                "package_set"

  facet :webnode do
    instances           6
    role                "nginx"
    role                "redis_client"
    role                "mysql_client"
    role                "elasticsearch_client"
    role                "awesome_website"
    role                "web_server"      # this triggers opening appropriate ports
    # Rotate nodes among availability zones
    azs = ['us-east-1d', 'us-east-1b', 'us-east-1c']
    (0...instances).each do |idx|
      server(idx).cloud.availability_zones [azs[ idx % azs.length ]]
    end
    # Rote nodes among A/B testing groups
    (0..instances).each do |idx|
      server(idx).chef_node.normal[:split_testing] = ( (idx % 2 == 0) ? 'A' : 'B' )
    end
  end

  facet :dbnode do
    instances           2
    role                "mysql_server"
    role                "redis_client"
    # burly master, wussier slaves
    cloud.flavor        "m1.large"
    server(0) do
      cloud.flavor      "c1.xlarge"
    end

    volume(:data) do
      size          50
      keep          true
      device        '/dev/sdi'
      mount_point   '/data/db'
      mount_options 'defaults,nouuid,noatime'
      fstype       'xfs'
      snapshot_id   'snap-d9c1edb1'
    end
  end

  facet :esnode do
    instances           1
    role                "nginx"
    role                "redis_server"
    role                "elasticsearch_data_esnode"
    role                "elasticsearch_http_esnode"
    #
    cloud.flavor        "m1.large"
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
cluster_chef-3.0.12 clusters/website_demo.rb
cluster_chef-knife-3.0.12 clusters/website_demo.rb
cluster_chef-3.0.11 clusters/website_demo.rb
cluster_chef-knife-3.0.11 clusters/website_demo.rb
cluster_chef-3.0.10 clusters/website_demo.rb
cluster_chef-knife-3.0.10 clusters/website_demo.rb
cluster_chef-3.0.9 clusters/website_demo.rb
cluster_chef-knife-3.0.9 clusters/website_demo.rb
cluster_chef-3.0.8 clusters/website_demo.rb
cluster_chef-knife-3.0.8 clusters/website_demo.rb
cluster_chef-3.0.7 clusters/website_demo.rb
cluster_chef-3.0.6 clusters/website_demo.rb
cluster_chef-knife-3.0.7 clusters/website_demo.rb
cluster_chef-knife-3.0.6 clusters/website_demo.rb
cluster_chef-3.0.5 clusters/website_demo.rb
cluster_chef-knife-3.0.5 clusters/website_demo.rb