27. Coding
Module
• 程式碼重複利用
• 引用簡單
class basic {
package { 'ntp': ensure => present }
}
class users {
group { 'devopsdays': ensure => present }
user { 'scott.liao':
ensure => present,
comment => 'DevOpsDays Taipei 2018 speaker',
home => '/104corp/scott.liao',
groups => 'devopsdays',
}
}
class web {
package { 'apache2': ensure => present }
package { 'php7.0': ensure => present }
}
28. Coding
Role and Profile
• 複雜的環境
• 皆以模組為基底
class role::web {
include profile::basic
include profile::users
include profile::web
}
class profile::basic { … }
class profile::users { … }
class profile::web { … }
node ^www.104.com.tw$ {
include role::web
}
31. Sync of puppet
fqdn_rand
# When reboot after sync puppet
@reboot /opt/puppetlabs/bin/puppet agent –t
# Generates random time of sync puppet
2,12,22,32,42,52 * * * * sleep 12; /opt/puppetlabs/bin/puppet agent –t
• Hash with fqdn
• random and limit