You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

想将Ansible剧本放到公开GitHub,如何避免上传ansible-vault加密文件?

避免Ansible加密目录公开的可行方案

以下是几种实用方案,帮你把templates/keys目录的敏感内容隔离在公开GitHub仓库之外:

  • 用.gitignore直接忽略目录
    在仓库根目录新建或编辑.gitignore文件,添加一行:

    templates/keys/
    

    如果之前已经把这个目录提交到过版本库,先执行下面的命令移除Git的追踪(不会删除本地文件):

    git rm -r --cached templates/keys
    

    之后提交.gitignore的修改,这个目录就不会再被推送到GitHub了。

  • 拆分仓库,用Git子模块管理敏感内容
    把templates/keys单独放到一个私有仓库(比如继续用你本地的Gitea,或者GitHub私有仓库),然后在公开仓库中通过子模块关联它:

    git submodule add <你的私有仓库地址> templates/keys
    

    公开仓库只会存储子模块的引用信息,敏感文件实际存在私有仓库里,不会被公开。别人克隆你的公开仓库时,需要加上--recurse-submodules参数才能拉取子模块内容,或者后续执行git submodule update --init。

  • 保留本地加密文件,提供模板示例
    用.gitignore忽略templates/keys目录后,在公开仓库里添加该目录的示例文件,比如templates/keys/credentials_mariadb.example,里面只放占位符(比如{{ mariadb_username }}、{{ mariadb_password }})。同时在README里说明,使用者需要根据示例创建实际的加密文件,并用自己的Ansible Vault密钥加密后放在本地对应位置。

  • 把敏感内容移到外部存储
    不再把凭证存在templates/keys的文件里,改用外部方式读取:比如从本地环境变量、本地未纳入版本控制的配置文件,或者密钥管理工具读取。在playbook里用lookup插件直接调用这些外部源,这样敏感内容完全不会进入GitHub仓库。

内容的提问来源于stack exchange,提问作者Logan M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:12:22