关于puppet脚本的一些笔记

本文记录一些puppet的常用方法,会根据实践继续更新。

简介

  • puppet工作目录(puppet-slave)是在 /etc/puppet/
  • /etc/puppet/manifest 这是puppet脚本的入口
  • /etc/puppet/modules 这里存放众多的puppet module
  • 但是一个普通的、不被其他puppet脚本include的脚本,可以放在任何地方,比如,这样执行:
    puppet apply /tmp/1.pp

关于 exec、require 和执行顺序

File ‘a.pp’

class basic_exec {
  exec { 'step-1':
    command => '/tmp/1.sh',
    path    => [ '/usr/local/bin/', '/bin/' ]
  } -> 
  exec { 'step-2':
    command => 'echo 123 > /root/111.txt',
    path    => [ '/usr/local/bin/', '/bin/' ]
  } 
}

class {'basic_exec': }  

## Then, run 'puppet apply a.pp'
## If 1.sh does not return 0, step-2 will not be executed. 

File ‘b.pp’

class basic_exec {
    exec { 'step-2':
        require => Exec['step-1'], 
        command => 'echo 123 > /root/222.txt',
        path    => [ '/usr/local/bin/', '/bin/' ]
    } 
  
    exec { 'step-1':
        command => 'echo 123 > /root/111.txt',
        path    => [ '/usr/local/bin/', '/bin/' ]
    } 
}


class {'basic_exec': }  

## Then, run 'puppet apply b.pp'; 
## step-1 is executed before step-2. 

include class 的用法

  1. include有2种用法

    a.
    class XXX {
    include test::test_1
    include test::test_2
    }

    b.
    class XXX {
    class {‘test::test_1’: }
    class {‘test::test_2’: }
    }

  2. 注意事项
    2.1 所include的类,以上面为例应该放在如下的目录下 /etc/puppet/modules/test
    2.2 若要规定执行顺序,应该这么写:

    class XXX {
    class {‘test::test_1’: } ->
    class {‘test::test_2’: }
    }

stage的用法

#starting of xxx module
stage {'stage_xxx': require => Stage['main'],}
class {'test_module::xxx': stage => 'stage_xxx',}

自动安装一个rpm包

package{'mode_auth_openidc':
    ensure   => present,
} ->

其他的一些puppet命令

puppet master -D
puppet cert --list --all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值