dev/provisioning/modules/puppi/manifests/extras.pp
changeset 28 b0b56e0f8c7f
equal deleted inserted replaced
27:a2342f26c9de 28:b0b56e0f8c7f
       
     1 # Class puppi::extras
       
     2 #
       
     3 # Default extras class with predefined puppi
       
     4 # check, log , info content.
       
     5 # You can provide a custom extra class to use instead of this
       
     6 # with a parameter like:
       
     7 #   extra_class=> 'example42::puppi::extras',
       
     8 #
       
     9 class puppi::extras {
       
    10 
       
    11   # Default Checks
       
    12 
       
    13   puppi::check { 'NTP_Sync':
       
    14     command  => "check_ntp -H ${puppi::params::ntp}" ,
       
    15     priority => '99' ,
       
    16     hostwide => 'yes' ,
       
    17   }
       
    18 
       
    19   puppi::check { 'Disks_Usage':
       
    20     command  => 'check_disk -w 20% -c 10% -L -X tmpfs' ,
       
    21     priority => '10' ,
       
    22     hostwide => 'yes' ,
       
    23   }
       
    24 
       
    25   puppi::check { 'System_Load':
       
    26     command  => 'check_load -w 15,10,5 -c 30,25,20' ,
       
    27     priority => '10' ,
       
    28     hostwide => 'yes' ,
       
    29   }
       
    30 
       
    31   puppi::check { 'Zombie_Processes':
       
    32     command  => 'check_procs -w 5 -c 10 -s Z' ,
       
    33     priority => '10' ,
       
    34     hostwide => 'yes' ,
       
    35   }
       
    36 
       
    37   puppi::check { 'Local_Mail_Queue':
       
    38     command  => 'check_mailq -w 2 -c 5' ,
       
    39     priority => '10' ,
       
    40     hostwide => 'yes' ,
       
    41   }
       
    42 
       
    43   puppi::check { 'Connected_Users':
       
    44     command  => 'check_users -w 5 -c 10' ,
       
    45     priority => '10' ,
       
    46     hostwide => 'yes' ,
       
    47   }
       
    48 
       
    49   puppi::check { 'DNS_Resolution':
       
    50     command  => 'check_dns -H example.com' ,
       
    51     priority => '15' ,
       
    52     hostwide => 'yes' ,
       
    53   }
       
    54 
       
    55 
       
    56   # Info Pages
       
    57   $network_run = $::operatingsystem ? {
       
    58     Solaris => [ 'ifconfig -a' , 'netstat -nr' , 'cat /etc/resolv.conf' , 'arp -an' , 'netstat -na' ],
       
    59     default => [ 'ifconfig' , 'route -n' , 'cat /etc/resolv.conf' , 'arp -an' , 'netstat -natup | grep LISTEN' ],
       
    60   }
       
    61 
       
    62   puppi::info { 'network':
       
    63     description => 'Network settings and stats' ,
       
    64     run         => $network_run,
       
    65   }
       
    66 
       
    67   $users_run = $::operatingsystem ? {
       
    68     Solaris => [ 'who' , 'last' ],
       
    69     default => [ 'who' , 'last' , 'LANG=C lastlog | grep -v \'Never logged in\'' ],
       
    70   }
       
    71 
       
    72   puppi::info { 'users':
       
    73     description => 'Users and logins information' ,
       
    74     run         => $users_run,
       
    75   }
       
    76 
       
    77   $perf_run = $::operatingsystem ? {
       
    78     Solaris => [ 'uptime' , 'vmstat 1 5' ],
       
    79     default => [ 'uptime' , 'free' , 'vmstat 1 5' ],
       
    80   }
       
    81 
       
    82   puppi::info { 'perf':
       
    83     description => 'System performances and resources utilization' ,
       
    84     run         => $perf_run,
       
    85   }
       
    86 
       
    87   $disks_run = $::operatingsystem ? {
       
    88     Solaris => [ 'df -h' , 'mount' ],
       
    89     default => [ 'df -h' , 'mount' , 'blkid' , 'fdisk -l' ],
       
    90   }
       
    91 
       
    92   puppi::info { 'disks':
       
    93     description => 'Disks and filesystem information' ,
       
    94     run         => $disks_run,
       
    95   }
       
    96 
       
    97   $hardware_run = $::operatingsystem ? {
       
    98     Solaris => [ 'find /devices/' ],
       
    99     default => [ 'lspci' , 'cat /proc/cpuinfo' ],
       
   100   }
       
   101 
       
   102   puppi::info { 'hardware':
       
   103     description => 'Hardware information' ,
       
   104     run         => $hardware_run,
       
   105   }
       
   106 
       
   107   $packages_run = $::operatingsystem ? {
       
   108     /(?i:RedHat|CentOS|Scientific|Amazon|Linux)/ => [ 'yum repolist' , 'rpm -qa' ] ,
       
   109     /(?i:Debian|Ubuntu|Mint)/                    => [ 'apt-config dump' , 'apt-cache stats' , 'apt-key list' , 'dpkg -l' ],
       
   110     /(Solaris)/                                  => [ 'pkginfo' ],
       
   111     /(Archlinux)/                                => [ 'pacman -Qet' ],
       
   112     default                                      => [ 'echo' ],
       
   113   }
       
   114 
       
   115   puppi::info { 'packages':
       
   116     description => 'Packages information' ,
       
   117     run         => $packages_run,
       
   118   }
       
   119 
       
   120   puppi::info::module { 'puppi':
       
   121     configfile  => ["${puppi::params::basedir}/puppi.conf"],
       
   122     configdir   => [$puppi::params::basedir],
       
   123     datadir     => [$puppi::params::archivedir],
       
   124     logdir      => [$puppi::params::logdir],
       
   125     description => 'What Puppet knows about puppi' ,
       
   126     verbose     => 'yes',
       
   127 #   run         => "ls -lR ${puppi::params::logdir}/puppi-data/",
       
   128   }
       
   129 
       
   130   ### Default Logs
       
   131   case $::operatingsystem {
       
   132 
       
   133     Debian,Ubuntu: {
       
   134       puppi::log { 'system':
       
   135         description => 'General System Messages',
       
   136         log         => ['/var/log/syslog'],
       
   137       }
       
   138       puppi::log { 'auth':
       
   139         description => 'Users and authentication',
       
   140         log         => ['/var/log/user.log','/var/log/auth.log'],
       
   141       }
       
   142       puppi::log { 'mail':
       
   143         description => 'Mail messages',
       
   144         log         => ['/var/log/mail.log'],
       
   145       }
       
   146     }
       
   147 
       
   148     RedHat,CentOS,Scientific,Amazon,Linux: {
       
   149       puppi::log { 'system':
       
   150         description => 'General System Messages',
       
   151         log         => ['/var/log/messages'],
       
   152       }
       
   153       puppi::log { 'auth':
       
   154         description => 'Users and authentication',
       
   155         log         => ['/var/log/secure'],
       
   156       }
       
   157       puppi::log { 'mail':
       
   158         description => 'Mail messages',
       
   159         log         => ['/var/log/maillog'],
       
   160       }
       
   161     }
       
   162 
       
   163     SLES,OpenSuSE: {
       
   164       puppi::log { 'system':
       
   165         description => 'General System Messages',
       
   166         log         => ['/var/log/messages'],
       
   167       }
       
   168       puppi::log { 'mail':
       
   169         description => 'Mail messages',
       
   170         log         => ['/var/log/mail'],
       
   171       }
       
   172       puppi::log { 'zypper':
       
   173         description => 'Zypper messages',
       
   174         log         => ['/var/log/zypper.log'],
       
   175       }
       
   176     }
       
   177 
       
   178     Solaris: {
       
   179       puppi::log { 'system':
       
   180         description => 'General System Messages',
       
   181         log         => ['/var/adm/messages'],
       
   182       }
       
   183       puppi::log { 'auth':
       
   184         description => 'Users and authentication',
       
   185         log         => ['/var/log/authlog'],
       
   186       }
       
   187     }
       
   188 
       
   189     Archlinux: {
       
   190       puppi::log { 'system':
       
   191         description => 'General System Messages',
       
   192         log         => ['/var/log/messages.log','/var/log/syslog.log'],
       
   193       }
       
   194       puppi::log { 'auth':
       
   195         description => 'Users and authentication',
       
   196         log         => ['/var/log/user.log','/var/log/auth.log'],
       
   197       }
       
   198       puppi::log { 'mail':
       
   199         description => 'Mail messages',
       
   200         log         => ['/var/log/mail.log'],
       
   201       }
       
   202     }
       
   203 
       
   204     default: { }
       
   205 
       
   206   }
       
   207 
       
   208 }