Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tutorial Puppet

Tutorial Puppet

Tutorial dos conceitos básicos de Puppet, uma ferramenta de gestão automática de configuração de servidores.

A apresentação não está completa, pois foi usada como parte de um curso prático sobre Puppet.

Daniel Capo Sobral

June 26, 2012
Tweet

More Decks by Daniel Capo Sobral

Other Decks in Programming

Transcript

  1. Conceitos • Resource • Type – User, File, Package •

    Name • Attributes • Meta Attributes • Classes • Definitions • Modules user { 'ze': ensure => present, gid => 1000, require => Group['ze'], }
  2. 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
  3. 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' }
  4. 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
  5. Puppet Apply package { 'locales': ensure => installed, } file

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

    '/etc/default/locale': ensure => present, content => 'LANG=pt_BR.UTF-8', require => Package['locales'], }
  7. 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, }
  8. Enviando Arquivos file { '/etc/locale.gen': ensure => present, source =>

    '/root/exemplo/locale.gen', require => Package['locales'], owner => 'root', group => 'root', mode => 644, }
  9. 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 }