puppet 入门
puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资源 8 类和函数 10 节点 11 变量和数组 12 模块 13 几个常用的资源 14 file 资源 14 package 资源 15 service 资源 15 exec 资源 16 puppet 高级内容 17 FAQ 18 1
第 0 章 2 前言 2
第 1 章 puppet 简介 1 puppet 是什么 2 Figure 1.1: puppet structure 1 2 3
第 1 章 puppet 简介 4 Hello world f i l e { " /tmp/ t e s t " : content=>" hello \n", mode => 0644; package { [ "gcc", "make" ] : ensure => i n s t a l l e d ; 再次提醒 : 不同的资源有不同的属性, 但是又有一些属性是所有资源都共有的, 例如 tag, 这种属性叫做元属性 4
第 2 章 puppet 安装 1 debian 系发行版安装 puppet 2 apt get i n s t a l l puppet puppetmaster redhat 系发行版安装 puppet rpm Uvh http : / / download. fedora. redhat. com/pub/ epel / 5/ i386 / epel release 5 3.noarch. rpm yum i n s t a l l puppet 1 2 5
第 2 章 puppet 安装 6 源代码安装 puppet base64 cgi digest /md5 etc f i l e u t i l s ipaddr openssl strscan syslog u r i webrick webrick / https xmlrpc tar zxf facter 1.5.7. tar. gz cd facter 1.5.7 ruby i n s t a l l. rb tar zxf puppet 0.25.4. tar. gz cd puppet 0.25.4 ruby i n s t a l l. rb 配置 c/s 模式的 puppet 试验环境 6
第 2 章 puppet 安装 7 apt get i n s t a l l puppet apt get i n s t a l l puppetmaster echo " 192.168.0.10 server. puppet.com" >>/etc / hosts 注意 : 要在安装软件以前先设置主机名, 因为生成证书的时候要把主机名写入证书, 如果证书生成好了再改主机名, 就连不上, 这是很多初学者遇到的问题 puppetd test server server. puppet.com pupetca l i s t pupetca s a node default { f i l e { " /tmp/temp1. t x t " : content => " hello " ; pupetd t e s t server server. puppet.com 7
第 3 章 puppet 语法 资源 f i l e { " / etc /passwd" : name => " / etc / passd", owner => root, group => root, mode => 644; f i l e { " sshdconfig " : name => $operatingsystem? { s o l a r i s => " / usr / l o c a l / etc / ssh / sshd_config ", default => " / etc / ssh / sshd_config ",, owner => root, 8
第 3 章 puppet 语法 9 group => root, mode => 644, service { " sshd " : subscribe => F i l e [ sshdconfig ], f i l e { [ " / etc /passwd", " / etc / hosts " ] : owner => root, group => root, mode => 644; F i l e { owner => root, mode => 644 ; f i l e { " / etc /apache2/ port. conf " : content => "80", require => Package [ "apache2" ] ; package { "apache2" : 9
第 3 章 puppet 语法 10 ensure => i n s t a l l e d ; 类和函数 class ssh { f i l e { " / etc / ssh / sshd_config " : source => "puppet : / / $ f i l e s e r v e r / ssh / sshd_config. cfg " ; package { " ssh " : ensure => i n s t a l l e d ; service { " ssh " : ensure => running ; 10
第 3 章 puppet 语法 11 define svn_repo ( $path ) { exec { " / usr / bin /svnadmin create $path / $ t i t l e " : unless => " / bin / t e st d $path", svn_repo { puppet_repo : path => " / var / svn_puppet " svn_repo { other_repo : path => " / var / svn_other " 1 2 节点 3 node ' host1. example.com ' { include ssh node ' host2. example.com ' { include apache, mysql, php 1 2 3 11
第 3 章 puppet 语法 12 node ' host4. example.com ' { $networktype=" t e l e " $nagioscheckport=" 80,22,3306 " include ssh, apache, mysql 变量和数组 $test=" hello, guys" f i l e { " /tmp/ t e s t " : content => $test ; [ "apache2", " httpd ", " ssh " ] define php : : pear ( ) { package { " `php $ {name " : ensure => i n s t a l l e d php : : pear { [ ' ldap ', ' mysql ', ' ps ', 'snmp ', ' s q l i t e ', ' tidy ', ' xmlrpc ' ] : 12
第 3 章 puppet 语法 13 模块 13
第 4 章 几个常用的资源 file 资源 source => "puppet : / / $ { f i l e s e r v e r / l v s /$ { corp. $ { idc. keepalived. conf " 14
第 4 章几个常用的资源 15 f i l e { " / etc / squid / squid. conf " : mode => 0644, content => template ( " squid / squid. conf. erb " ) ; 1 cache_mem <%= Integer ( vmx_memsize. t o _ i *0.45) %> MB visible_hostname <%= fqdn %> package 资源 package { [ "vim", " iproute ", "x window system" ] : ensure => i n s t a l l e d ; [ "pppoe", "pppoe conf " ] : ensure => absent ; service 资源 service { " ssh " : ensure => running ; " nfs " : ensure => stoped ; 1 15
第 4 章几个常用的资源 16 exec 资源 exec { " delete config " : path => " / bin : / usr / bin ", command => "rm / etc / ssh / ssh_config " ; 16
第 5 章 puppet 高级内容 17
第 6 章 FAQ Q: puppet 的证书机制 A: Q:debian 下面的证书出错, 怎么解决? A: puppetd test server server. example.com # 发送证书请求 puppetca l i s t # 列出所有证书请求 puppetca s a # 签名所有证书 puppetd test server server. example.com # 得到证书 18
第 6 章 FAQ 19 Q:redhat 下面的证书问题如何解决? A: Q: 源代码安装的 puppet 如何解决证书问题? A: Q: 如何配置 puppetrun A: path / allow * puppetd no c l i e n t l i s t e n verbose no daemonize server server. puppet.com puppetrun host host1. puppet. com 19
第 6 章 FAQ 20 后记 huangmingyou houqp frostynova aaniao999 kuuyee edison7500 min xu 270175100 douzl Daniel Ho unline wtoppp xw2014 chifeng dywer Liu Nan 20
第 6 章 FAQ 21 修改日志 21