# # This example file is almost the # same as what I have been using # to build swift in my environment (which is based on vagrant) # $swift_local_net_ip='127.0.0.1' $swift_shared_secret='changeme' Exec { logoutput => true } package { 'curl': ensure => present } class { 'ssh::server::install': } class { 'memcached': listen_ip => $swift_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, } # === Configure Storage class { 'swift::storage': storage_local_net_ip => $swift_local_net_ip } # create xfs partitions on a loopback device and mounts them swift::storage::loopback { ['4', '2', '3']: require => Class['swift'], } # sets up storage nodes which is composed of a single # device that contains an endpoint for an object, account, and container Swift::Storage::Node { mnt_base_dir => '/srv/node', weight => 1, manage_ring => true, storage_local_net_ip => $swift_local_net_ip, } swift::storage::node { '4': zone => 4, require => Swift::Storage::Loopback[4], } swift::storage::node { '2': zone => 2, require => Swift::Storage::Loopback[2], } swift::storage::node { '3': zone => 3, require => Swift::Storage::Loopback[3], } class { 'swift::ringbuilder': part_power => '18', replicas => '3', min_part_hours => 1, require => Class['swift'], } # TODO should I enable swath in the default config? class { 'swift::proxy': proxy_local_net_ip => $swift_local_net_ip, account_autocreate => true, require => Class['swift::ringbuilder'], }