pantheon-systems / terminus-secrets-plugin
Secrets - 一个允许操作用于 Quicksilver 的 'secrets' 文件的 Terminus 插件。
This package is auto-updated.
Last update: 2023-06-08 15:00:08 UTC
README
请参阅替代插件,Terminus Secrets Management Plugin,目前处于早期访问阶段,可作为可能的替代方案。
允许在 Pantheon 网站上使用 Quicksilver 的简单 secrets.json
文件进行操作的 Terminus 插件。
为 Terminus 1.x 添加了 'secrets' 命令,您可以使用它来添加、获取、删除和更新。对于与 Terminus 0.x 兼容的版本,请参阅 0.x 分支。
请按照 Quicksilver 示例使用说明进行操作。
请注意,由于此插件管理的是网络附加存储中的简单 json 文件,文件系统同步操作将影响密钥。如果您的情况是在不同的环境中使用不同的密钥,则不应使用此方法。对于这种情况或对敏感密钥,我们建议使用 Lockr。
背景
此插件将条目写入 ~/files/private/secrets.json
文件(注意:这指的是与用于存储您的 Quicksilver 脚本的 private
目录不同的 private
目录!)。这个文件是一个包含多个键的 JSON 文件,它不会包含在您的项目源代码中。'terminus secrets' 脚本将检索此文件,按请求修改它,然后将它写回 Pantheon 网站。
在可以使用此 Terminus 插件之前,必须在每个环境中创建 secrets.json
文件。要创建文件,请调用 secrets set 命令并添加一个密钥。这将自动在该环境中创建文件。
terminus secrets:set site.env key value
密钥目录在部署期间不会复制到 test
和 live
(因为它没有在项目存储库中跟踪);因此,您必须为希望它们可用的每个环境单独设置密钥。
此外,请注意,您的密钥可能被文件系统同步操作覆盖。例如,如果在部署到 TEST
时选择“从 Live 拉取文件和数据库”,则将用 LIVE
中的密钥(或缺乏密钥)覆盖 TEST
环境。如果您打算将 secrets.json
用于生产,请确保在所有环境中设置相同的文件以避免混淆。
您可以在生产环境中创建所有密钥,然后复制到其他环境以复制密钥。
安装
有关安装帮助,请参阅 管理插件
Terminus 3.x 的安装
Terminus 现在已内置插件管理功能。
terminus self:plugin:install pantheon-systems/terminus-secrets-plugin
为Terminus 2.x安装
mkdir -p ~/.terminus/plugins
composer create-project -d ~/.terminus/plugins pantheon-systems/terminus-secrets-plugin:~1
配置
此插件使用无需配置。
用法
将“value”写入“sitename”的“test”环境中的“key”。
terminus secrets:set site.env key value
从“sitename”的“test”环境中删除“key”的秘密。
terminus secrets:delete site.env key
显示“sitename”的“test”环境中“key”的当前值。
terminus secrets:show site.env key
显示“sitename”的“test”环境中所有可用的key。
terminus secrets:list site.env
您可以通过传递--file
选项给此terminus插件来将key读/写到名为非secrets.json
的文件中;这在存储在不同环境中可能不同的配置key时非常有用,因为这可以防止您的特定环境文件被数据库和文件克隆操作覆盖。
有关Terminus和Terminus插件的更多信息,请参阅: https://pantheon.io/docs/terminus/plugins/
Terminus 0.x版本
此插件与Terminus 1.x和Terminus 0.x兼容。这是因为Terminus 1.x在src/Commands
中搜索命令文件,而Terminus 0.x在Commands
中搜索。通常,Terminus插件应该只支持Terminus的一个版本。建议使用分支1.x
和0.x
来做到这一点。此规则的例外是那些通过git clone
广泛安装在持续集成脚本中而未使用--branch
指定的Terminus插件。在这种情况下,将两个版本放在同一分支上对于与这些脚本保持向后兼容性可能是有帮助的。
帮助
运行terminus list secrets
以获取可用命令的完整列表。使用terminus help <command>
获取有关单个命令的帮助。
提示
如果您需要为不同环境或开发环境与生产环境添加多个版本的key,请使用有助于列出key的命名结构将它们全部添加。
keyName_production: value
keyName_development: value
或者
keyName_multiDevName: value
JSON文件中没有key数组,因此所有key都在根目录下。