frastel/puphpeteer-installer

使用PHP和Composer安装版本化的Puppet模块

dev-master 2013-07-04 00:48 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:27:08 UTC


README

使用PHP和Composer安装版本化的Puppet模块。

默认的puppet模块安装器对您来说太复杂,或者将Puppet模块作为git子模块添加感觉不自然?那么这个安装程序可能对您有用。

所需的Puppet模块通常通过Composer安装在vendor目录中,但它们在Composer安装后会被复制到定义的模块目录。之后,所有Puppet模块都位于一个主目录中,可以从那里执行Puppet配置。

结果文件夹结构如下

puppet/
  manifests/
    <your manifest>.pp
  modules/
    <the installer copies the puppet modules here>
vendor/
  <user>/
    <project-name>/
      <the original downloaded puppet module>

应从git中忽略modulesvendor目录的内容。

此设置假设您已在机器上安装了PHP和Composer。因此,您不能在干净的安装上使用此设置。但无论如何,这只是在PuPHPet的开发过程中的一个想法,也许在某些情况下对您有所帮助。

所需的Puppet模块不需要composer.json,安装仍然可以正常工作,但没有版本控制。向模块中添加composer.json将添加版本控制支持。

在composer.json中的用法

frastel/puphpeteer-installer添加到所需的包中。

    "require": {
        "frastel/puphpeteer-installer": "dev-master"
    },

将Puppet模块安装器添加到scripts部分

    "scripts": {
        "post-install-cmd": "Frastel\\Puphpeteer\\Installer::build",
        "post-update-cmd": "Frastel\\Puphpeteer\\Installer::build"
    },

定义Puppet模块应该复制到哪个位置,以及它们在安装过程中应该如何重命名

    "extra": {
        "puppet-modules-dir": "puppet/modules",
        "puppet-modules": {
            "jfryman/puppet-nginx":      "nginx",
            "puppetlabs/postgresql":     "postgresql",
            "frastel/puppet-phpmyadmin": "phpmyadmin",
            "frastel/puppet-symfony":    "symfony"
        }
    },
  • puppet-modules-dir:相对于composer.json的相对路径
  • puppet-modules:一个列表,列出了通过Composer安装的模块,应该复制到puppet-modules-dir。键是原始项目名称,值是预期的Puppet模块名称。

示例: Demo