Slide 1

Slide 1 text

Exercício Distribuir configuração de clientes Zabbix (monitoração)

Slide 2

Slide 2 text

Conceitos ● Resource ● Type – User, File, Package ● Name ● Attributes ● Meta Attributes ● Classes ● Definitions ● Modules user { 'ze': ensure => present, gid => 1000, require => Group['ze'], }

Slide 3

Slide 3 text

Exemplo Simples - Locales ● Configurar locales em um servidor ● Pacote locales ● Arquivo /etc/default/locale ● Arquivo /etc/locale.gen ● Executar /usr/sbin/locale.gen ● Código fonte em: ● https://github.com/dcsobral/puppet-exemplo-locale

Slide 4

Slide 4 text

Experimentando com a linha de Comando ● ralsh puppet:~# ralsh user bob user { 'bob': ensure => 'absent' } puppet:~# ralsh user bob ensure=present notice: /User[bob]/ensure: created user { 'bob': ensure => 'present' } puppet:~# ralsh user bob ensure=absent notice: /User[bob]/ensure: removed user { 'bob': ensure => 'absent' }

Slide 5

Slide 5 text

Experimentando com a linha de Comando ● puppet describe dcs@puppet:~/exemplo$ puppet describe package -s package ======= descrição e funcionamento Parameters ---------- adminfile, allowcdrom, category, configfiles, description, ensure, flavor, instance, name, platform, responsefile, root, source, status, type, vendor Providers --------- aix, appdmg, apple, apt, aptitude, aptrpm, blastwave, darwinport, dpkg, fink, freebsd, gem, hpux, nim, openbsd, pkg, pkgdmg, portage, ports, portupgrade, rpm, rug, sun, sunfreeware, up2date, urpmi, yum, zypper

Slide 6

Slide 6 text

Criando Arquivos package { 'locales': ensure => installed, }

Slide 7

Slide 7 text

Puppet Apply package { 'locales': ensure => installed, } file { '/etc/default/locale': ensure => present, content => 'LANG=pt_BR.UTF-8', }

Slide 8

Slide 8 text

Dependências package { 'locales': ensure => installed, } file { '/etc/default/locale': ensure => present, content => 'LANG=pt_BR.UTF-8', require => Package['locales'], }

Slide 9

Slide 9 text

Outros Atributos package { 'locales': ensure => installed, } file { '/etc/default/locale': ensure => present, content => 'LANG=pt_BR.UTF-8', require => Package['locales'], owner => 'root', group => 'root', mode => 644, }

Slide 10

Slide 10 text

Enviando Arquivos file { '/etc/locale.gen': ensure => present, source => '/root/exemplo/locale.gen', require => Package['locales'], owner => 'root', group => 'root', mode => 644, }

Slide 11

Slide 11 text

Executando Processos exec { '/usr/sbin/locale-gen': }

Slide 12

Slide 12 text

Múltiplas Dependências exec { '/usr/sbin/locale-gen': require => [ Package['locales'], File['/etc/locale.gen'] ], }

Slide 13

Slide 13 text

Notificações exec { '/usr/sbin/locale-gen': subscribe => File['/etc/locale.gen'], require => [ Package['locales'], File['/etc/locale.gen'] ], }

Slide 14

Slide 14 text

Refresh exec { '/usr/sbin/locale-gen': subscribe => File['/etc/locale.gen'], refreshonly => true, require => [ Package['locales'], File['/etc/locale.gen'] ], }

Slide 15

Slide 15 text

Classes e Nós class locale { package { 'locales': ensure => installed, } file { '/etc/default/locale': ensure => present, content => 'LANG=pt_BR.UTF-8', require => Package['locales'], } file { '/etc/locale.gen': ensure => present, source => '/root/exemplo/locale.gen', require => Package['locales'], } exec { '/usr/sbin/locale-gen': subscribe => File['/etc/locale.gen'], refreshonly => true, require => [ Package['locales'], File['/etc/locale.gen'] ], } } node default { include locale }