geeks4change/geeky-deploy
Composer 安装命令:
composer require geeks4change/geeky-deploy
包简介
README 文档
README
To use:
- (If not on your $PATH, use vendor/bin/gky for gky)
gky initadds a new deploy/targets.php to customize.gky deploy-local --install- After pull,
gky dl(for deploy-local) - For remote,
gky deploy-remote --installandgky dr - If not unique, add the target name, like
gky dr live2
Have fun!
How does it work?
gky deploy-local
- composer install
- build settings.php and friends for local
- (backup database if configured)
- drush deploy = updb / cim
- (post-deploy if configured, like drush tim)
gky deploy-local --install
- composer install
- build settings.php and friends for local
- (backup database if configured)
- drush install --existing-config
- (post-deploy if configured, like drush tim)
gky deploy-remote
- Copy site to sandbox
- composer install
- build settings.php and friends for live
- Copy build to live, continue on live
- (backup database if configured)
- Set maintenance mode
- drush deploy = updb / cim
- (post-deploy if configured, like drush tim)
- Drop maintenance mode
- (warm-caches if configured)
gky deploy-remote --install
- Copy site to sandbox
- composer install
- build settings.php and friends for live
- Copy build to live, continue on live
- (backup database if configured)
- Set maintenance mode
- drush install --existing-config
- (post-deploy if configured, like drush tim)
- Drop maintenance mode
- (warm-caches if configured)
Secrets management
Geeky-deploy has simple and opinionated secrets management:
- Secrets live in (say) deploy/generated/secrets/foo.ext (gitignored!)
- ...and developer / server keys in (say) deploy/secrets/public-keys/devN.pub.
gky encrypt-all-secretsencrypts them into deploy/secrets/encrypted/foo.ext.age.gky deploy-remote livedecrypts them again into deploy/generated//secrets/foo.ext
Decryption
- Decryption in deploy only works when a private keys for one of the public keys is available
- ...either on the current machine in ~/.ssh/
- ...or (for deployment via gitlab) in env variable GEEKY_SECRETS_PRIVATE_KEY
Target-specific secrets
- To have secrets only plaintext on (say) live,
- put them into deploy/generated/secrets/live/foo.ext
gky update-secretsencrypts them into deploy/secrets/encrypted/live/foo.ext.age.gky deploy-remote livedecrypts ONLY the secrets for live again into deploy/generated/secrets/live/foo.ext- ...AND symlinks deploy/generated/secrets/foo.ext to deploy/generated/secrets/live/foo.ext
Updating secrets
- Run
gky decrypt-all-secrets - Change files in deploy/generated/secrets and deploy/generated/secrets/TARGET directory as needed.
- Run
gky encrypt-all-secrets
File layout
Generated files
- deploy/
- generated/
- build-info.env
- secrets/
- secret1.env
- secret2.php
- generated/
- drush/
- drush.yml
- sites/
- self.site.yml
- web/
- sites/
- default/
- settings.php
- services.custom.php
Secrets files
- default/
- sites/
- deploy/
- secrets/
- public-keys/
- developer1.id_rsa.pub
- developer2.id_ecdsa.pub
- gitlab.id_rsa.pub
- encrypted
- secret1.env.age
- secret2.php.age
- public-keys/
- secrets/
统计信息
- 总下载量: 345
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2021-11-25