On Github spikeheap / saw-meet-puppet-talk
node 'thor' {
$backup_dirs = [ '/usr/local', '/var/local' ]
duplicity { $backup_dirs:
bucket => 'test-backup',
dest_id => 'someid',
dest_key => 'somekey'
}
}
'duplicity' module available at https://github.com/Jimdo/puppet-duplicity
node /^server/ {
include ssh::server
}
node /^client/ {
include ssh::client
}
node 'abitofboth' {
include ssh
}
'ssh' module available at https://github.com/saz/puppet-ssh
node /^workstation/ {
include workstation
include workstation::developer
}
class workstation( $apt_packages = [ 'thunderbird', 'enigmail' ] ){
apt::source { 'canonical_partner':
location => 'http://archive.canonical.com/ubuntu',
repos => 'partner',
include_src => true
}
-> package{ $apt_packages:
ensure => present,
}
include workstation::packages::oraclejava
...
'workstation' module available at https://github.com/NMiUK/puppet-workstation
class workstation::packages::oraclejava( $ensure = 'present' ) {
if $operatingsystem == 'Ubuntu'{
apt::ppa { 'ppa:webupd8team/java': }
exec { 'accept_java7_license':
command => "echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections && echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections",
path => "/usr/bin/:/bin/",
}
package {'oracle-java7-installer':
ensure => $ensure,
}
Apt::Ppa['ppa:webupd8team/java'] -> Exec['accept_java7_license'] -> Package['oracle-java7-installer'] -> Package['oracle-java7-set-default']
}
}