49aa1dc36c
Signed-off-by: Catty Steve <4795515+Catty2014@user.noreply.gitee.com>
38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
use workshop_vault::*;
|
|
use env_logger;
|
|
use log::info;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
env_logger::init();
|
|
// 从环境变量创建客户端
|
|
let client = create_vault_client_from_env()?;
|
|
|
|
// 检查是否初始化 Vault
|
|
let initialized = client.is_initialized().await?;
|
|
info!("Vault initialized: {}", initialized);
|
|
|
|
// 创建 CI/CD 密钥管理器
|
|
let client = create_vault_client_from_env()?;
|
|
let secret_manager = WorkshopSecretManager::new(client, "my-ci-pipeline".to_string());
|
|
info!("Vault initialized: {}", initialized);
|
|
|
|
// 存储 CI/CD 变量
|
|
secret_manager.store_cicd_variable("DATABASE_URL", "postgres://user:pass@localhost/db").await?;
|
|
info!("Vault initialized: {}", initialized);
|
|
secret_manager.store_cicd_variable("API_SECRET", "super-secret-key").await?;
|
|
|
|
// 读取变量
|
|
let db_url = secret_manager.get_cicd_variable("DATABASE_URL").await?;
|
|
println!("Database URL: {}", db_url);
|
|
|
|
// 存储密钥文件
|
|
secret_manager.store_secret_file("id_rsa", "-----BEGIN PRIVATE KEY-----\n...").await?;
|
|
|
|
// 列出所有变量
|
|
let variables = secret_manager.list_cicd_variables().await?;
|
|
println!("Available variables: {:?}", variables);
|
|
|
|
Ok(())
|
|
}
|