puppet php,Puppet package资源介绍(二十四)

package资源

package资源可以借助本地包管理系统帮我们安装软件,也可以通过参数指定软件包来安装.

package { 'resource title':

provider             => # (namevar) The specific backend to use for this `package...

name                 => # (namevar) The package name.  This is the name that the...

ensure               => # What state the package should be in. On...

adminfile            => # A file containing package defaults for...

allow_virtual        => # Specifies if virtual package names are allowed...

allowcdrom           => # Tells apt to allow cdrom sources in the...

category             => # A read-only parameter set by the...

configfiles          => # Whether to keep or replace modified config files

description          => # A read-only parameter set by the...

flavor               => # OpenBSD supports 'flavors', which are further...

install_options      => # An array of additional options to pass when...

instance             => # A read-only parameter set by the...

package_settings     => # Settings that can change the contents or...

platform             => # A read-only parameter set by the...

reinstall_on_refresh => # Whether this resource should respond to refresh...

responsefile         => # A file containing any necessary answers to...

root                 => # A read-only parameter set by the...

source               => # Where to find the package file. This is only...

status               => # A read-only parameter set by the...

uninstall_options    => # An array of additional options to pass when...

vendor               => # A read-only parameter set by the...

# ...plus any applicable metaparameters.

}

provider:包管理系统,不同的操作平台有着不同的包管理器,如redhat的yum,ubuntu的dpkg等.

name:软件包的名字.

ensure :软件包的状态,installed或present表示安装,absent表示卸载;pureged表示一处软件包;latest表示安装最新的。

adminfile:软件包的默认配置文件.

allowcdrom:通知apt允许使用cdrom作为软件源,可以设置false或者true.

allow_virtual:虚拟包名.

source:软件包的源.

install_options:安装软件包的参数.

参数很多,有安装的也有卸载的卸载参数uninstall_options,不一个一个写了.

示例一:

系统源安装httpd软件包.[root@sh-web1 ~]# cat httpd.pp

package {"httpd":

ensure => present,

provider => 'yum',

}

provider:这个参数默认也是从yum源安装,所以不需要也是可以的,除非你需要特别安装安装包.

运行结果:[root@sh-web1 ~]# puppet apply httpd.pp

Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.04 seconds

Notice: /Stage[main]/Main/Package[httpd]/ensure: created

Notice: Finished catalog run in 5.69 seconds

检查:[root@sh-web1 ~]# rpm -qa httpd

httpd-2.2.15-60.el6.centos.5.x86_64

示例二:

安装haproxy.(通过source源指定软件包,通过rpm方式安装.)

安装haproxy的puppet代码.[root@sh-web1 ~]# cat haproxy.pp

package {"haproxy":

ensure => present,

source => '/tmp/haproxy-1.5.2-2.el6.x86_64.rpm',

provider => 'rpm',

}

运行puppet代码的结果.[root@sh-web1 ~]# puppet apply haproxy.pp

Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.04 seconds

Notice: /Stage[main]/Main/Package[haproxy]/ensure: created

Notice: Finished catalog run in 0.61 seconds

[root@sh-web1 ~]# rpm -qa haproxy

haproxy-1.5.2-2.el6.x86_64

示例三:

puppet 一次安装多个软件包.[root@sh-web1 ~]# cat many.pp

package {["autoconf",

"mysql-devel",

"make",

"gcc"]:

ensure => present,

}

运行结果:[root@sh-web1 ~]# puppet apply many.pp

Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.04 seconds

Notice: /Stage[main]/Main/Package[mysql-devel]/ensure: created

Notice: Finished catalog run in 14.96 seconds

[root@sh-web1 ~]# rpm -qa make

make-3.81-23.el6.x86_64

[root@sh-web1 ~]# rpm -qa autoconf

autoconf-2.63-5.1.el6.noarch

[root@sh-web1 ~]# rpm -qa mysql-devel

mysql-devel-5.1.73-8.el6_8.x86_64

前几篇文章中有一个php模块的puppet代码如下:class php {

include php::phpfpmconf

$packages = ['php','php-devel']

package {[$packages]:

ensure=> "installed"

}

package {"php-fpm":

ensure => present,

}

service {"php-fpm":

ensure=> running,

enable=> true,

hasrestart=> true,

hasstatus=> true,

provider => init,

require=> Package["php-fpm"],

}

}

$packages = ['php','php-devel']

package {[$packages]:

ensure=> "installed"

}

$packages 等于的并不是数组,是数组中的元素,所以下面的package安装还是需要"[]"的.

官网给出的示例

name

# In the 'openssl' class

$ssl = $operatingsystem ? {

solaris => SMCossl,

default => openssl

}

package { 'openssl':

ensure => installed,

name   => $ssl,

}

. etc. .

$ssh = $operatingsystem ? {

solaris => SMCossh,

default => openssh

}

package { 'openssh':

ensure  => installed,

name    => $ssh,

require => Package['openssl'],

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值