20
Creating beautiful Puppet modules with pupet-lint

Creating beautiful puppet modules with puppet-lint

Embed Size (px)

DESCRIPTION

Utah County Puppet user group Meeting on 2014-Oct-21: puppet-lint

Citation preview

Page 1: Creating beautiful puppet modules with puppet-lint

Creating beautiful Puppet modules

with pupet-lint

Page 2: Creating beautiful puppet modules with puppet-lint

$(whoami)

Page 3: Creating beautiful puppet modules with puppet-lint

http://spuder.github.io

#spuder

Page 4: Creating beautiful puppet modules with puppet-lint
Page 5: Creating beautiful puppet modules with puppet-lint

=> Packages=> Files=> Services

Page 6: Creating beautiful puppet modules with puppet-lint

DSL?

I’ve got dual T1 uplinks

Page 7: Creating beautiful puppet modules with puppet-lint

$package=openssh-server

if [`which yum`]; then

yum install $package

elif [`which apt-get`; then

apt-get install $package

else

echo “Neither apt nor yum found”; exit 1

fi

Page 8: Creating beautiful puppet modules with puppet-lint

$package=openssh-server

package { “$package”:

ensure => present,

}

Page 9: Creating beautiful puppet modules with puppet-lint
Page 10: Creating beautiful puppet modules with puppet-lint

class ssh { package {‘openssh-server’: ensure => present, } file {‘/etc/ssh/sshd_config’: content => ‘puppet:///ssh/sshd_config', owner => ‘root’, require => Package[‘openssh-server’], } service {‘sshd’: ensure => ‘running’, require => [Package[‘openssh-server’],File[‘/etc/ssh/ssd_config’]], }}

manifest init.pp

Page 11: Creating beautiful puppet modules with puppet-lint

$ puppet module generate foo-bar$ mv foo-bar bar #bug PUP-3124$ tree bar/bar/├── README.md├── files├── manifests│   └── init.pp├── metadata.json├── spec├── templates└── tests └── init.pp

bar module layout

Page 12: Creating beautiful puppet modules with puppet-lint

Name your puppet modules

Page 13: Creating beautiful puppet modules with puppet-lint

There are two hard things in computer science:

- cache invalidation- naming things- off-by-one errors.

- Phil Karlton

Page 14: Creating beautiful puppet modules with puppet-lint

Wrapper Module => devops/ac_mysql

Base Module => puppetlabs/mysql

http://bit.do/wrapper-class

Page 15: Creating beautiful puppet modules with puppet-lint

Workshop 1

https://github.com/UCPUG/ucpug-presentations

Page 16: Creating beautiful puppet modules with puppet-lint

Puppet-lint

Page 17: Creating beautiful puppet modules with puppet-lint

$ puppet parser validate *.pp$ puppet-lint *.pp

alias ppv='puppet parser validate'alias ppl='puppet lint --no-80chars-check'

Page 18: Creating beautiful puppet modules with puppet-lint
Page 19: Creating beautiful puppet modules with puppet-lint

Workshop 2

https://github.com/UCPUG/ucpug-presentations

Page 20: Creating beautiful puppet modules with puppet-lint

Questions?