monofone / ansible-installer
Ansible 角色安装器
Requires (Dev)
- composer/composer: 1.0.*@dev
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-04 22:02:28 UTC
README
这最初是从 composer/installers 中提取的,并适配为 Ansible 角色安装器。
这是为 PHP 包作者在他们的 composer.json 中使用的。它将根据指定的包类型将他们的包安装到正确的位置。
安装器 installers 的目标是成为一个简单的包类型安装路径映射。用户还可以按每个包自定义安装路径,包作者可以在安装时修改包名称。
当前支持的包类型:
稳定类型被标记为 粗体,这意味着这些类型的安装路径将不会改变。对这些类型的任何调整都需要创建一个全新的类型,该类型将涵盖所需的变化。
示例 composer.json 文件
这是一个 Ansible 角色的示例。在您的 composer.json 文件中需要设置的唯一重要部分是 "type": "ansible-role",这描述了您的包是什么,以及 "require": { "ansible/installer": "~1.0" },它告诉 composer 加载自定义安装器。
{
"name": "you/mysql",
"type": "ansible-role",
"require": {
"ansible/installer": "~1.0"
}
}
当用户运行 php composer.phar install 时,这将安装您的角色到 provisioning/roles/common/ 文件夹。
自定义安装路径
如果您正在使用 ansible/installer 消费包,您可以使用以下额外的配置覆盖安装路径。
{
"extra": {
"installer-paths": {
"your/custom/path/{$name}/": ["ansible/web", "vendor/package"]
}
}
}
包类型可以有一个带有 type: 前缀的自定义安装路径。
{
"extra": {
"installer-paths": {
"your/custom/path/{$name}/": ["type:ansible-role"]
}
}
}
这将使用您的自定义路径为列出的每个包。您可以在路径中使用以下变量:{$name}、{$vendor}、{$type}。
自定义安装名称
如果您是包作者,需要您的包在安装时有不同的名称,请考虑使用 installer-name 额外选项。
例如,您有一个名为 you/mysql 的包,类型为 ansible-role。使用 ansible/installer 安装将安装到路径 provisioning/roles/mysql。由于命名约定严格,您作为包作者实际上需要包以 provisioning/roles/ownmysql 的名称和路径安装。在您的 package composer.json 中使用以下配置将允许这样做
{
"name": "you/mysql",
"type": "ansible-role",
"extra": {
"installer-name": "ownmysql"
}
}
请注意,输入到 installer-name 中的名称将是最终的,且不会变形。