Novops 开源项目使用教程
1. 项目介绍
Novops 是一个跨平台的秘密和配置管理器,专为开发和 CI 环境设计。它能够安全地从各种来源加载秘密,包括 Hashicorp Vault、AWS、Google Cloud、Azure、SOPS 等。Novops 支持将配置作为代码进行管理,能够无缝地为本地开发、应用程序和 CI 管道设置安全的文件和环境变量。
主要特点
- 秘密管理:安全地从任何来源加载秘密。
- 配置即代码:管理并设置安全的文件和环境变量。
- 安全性:秘密仅在内存中加载,并在使用后立即丢弃,避免敏感数据的误处理或传播。
- 通用性:适用于不同平台和工具的广泛秘密管理需求。
- 开源:Novops 是免费且开源的。
2. 项目快速启动
安装 Novops
你可以通过以下命令安装 Novops:
sh -c "$(curl --location https://raw.githubusercontent.com/PierreBeucher/novops/main/install.sh)"
创建 novops.yml
配置文件
以下是一个简单的 novops.yml
配置示例:
environments:
dev:
variables:
- name: DATABASE_PASSWORD
value: hvault_kv2:
path: app/dev
key: db_password
- name: DATABASE_USER
value: postgres
files:
- variable: APP_SSH_KEY
content: hvault_kv2:
path: app/dev
key: ssh_key
aws:
assume_role:
role_arn: arn:aws:iam::12345678910:role/dev_deploy
运行命令
使用 Novops 加载秘密并运行命令:
source <(novops load)
novops run -- sh
3. 应用案例和最佳实践
案例1:使用 Hashicorp Vault 管理数据库密码
在开发环境中,使用 Hashicorp Vault 管理数据库密码,并通过 Novops 加载到应用程序中:
environments:
dev:
variables:
- name: DATABASE_PASSWORD
value: hvault_kv2:
path: app/dev
key: db_password
- name: DATABASE_USER
value: postgres
案例2:生成临时 AWS 凭证
在 CI/CD 管道中,使用 Novops 生成临时的 AWS 凭证:
environments:
ci:
aws:
assume_role:
role_arn: arn:aws:iam::12345678910:role/ci_deploy
4. 典型生态项目
Terraform
Novops 可以与 Terraform 结合使用,安全地加载 Terraform 所需的秘密:
novops run -- terraform apply
Ansible
在 Ansible 中使用 Novops 加载秘密:
novops run -- ansible-playbook playbook.yml
Pulumi
使用 Novops 为 Pulumi 提供安全的秘密管理:
novops run -- pulumi up
通过以上步骤,你可以快速上手并安全地使用 Novops 进行秘密和配置管理。