# # This example file is almost the # same as what I have been using # to build swift in my environment (which is based on vagrant) $proxy_local_net_ip='127.0.0.1' $swift_shared_secret='changeme' Exec { logoutput => true } # set up all of the pre steps # this shoud be run node pre_swift { class { 'apt':} # use the swift trunk ppa class { 'swift::repo::trunk':} # use our apt repo apt::source { 'puppet': location => 'http://apt.puppetlabs.com/ubuntu', release => 'natty', key => '4BD6EC30', } # install the latest version of Puppet package { 'puppet': ensure => latest, require => Apt::Source['puppet'], } } node swift_all { package { 'curl': ensure => present } class { 'ssh::server::install': } class { 'memcached': listen_ip => $proxy_local_net_ip, } class { 'swift': # not sure how I want to deal with this shared secret swift_hash_suffix => $swift_shared_secret, package_ensure => latest, } swift::storage::loopback { ['1', '2', '3']: require => Class['swift'], } Ring_object_device { weight => 1 } Ring_container_device { weight => 1 } Ring_account_device { weight => 1 } ring_object_device { '127.0.0.1:6010': zone => 1, device_name => '1', } ring_object_device { '127.0.0.1:6020': zone => 2, device_name => '2', } ring_object_device { '127.0.0.1:6030': zone => 3, device_name => '3', } ring_container_device { '127.0.0.1:6011': zone => 1, device_name => '1', } ring_container_device { '127.0.0.1:6021': zone => 2, device_name => '2', } ring_container_device { '127.0.0.1:6031': zone => 3, device_name => '3', } ring_account_device { '127.0.0.1:6012': zone => 1, device_name => '1', } ring_account_device { '127.0.0.1:6022': zone => 2, device_name => '2', } ring_account_device { '127.0.0.1:6032': zone => 3, device_name => '3', } class { 'swift::ringbuilder': part_power => '18', replicas => '3', min_part_hours => 1, require => Class['swift'], } class { 'swift::storage': } # TODO should I enable swath in the default config? class { 'swift::proxy': account_autocreate => true, require => Class['swift::ringbuilder'], } }