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
中的名称将是最终的,且不会变形。