是否存在针对每个角色使用 git 个子模块来组合可部署配置的行业标准方法?

Is there an industry standard method for composition of deployable configurations using git submodules per role?

我想将复杂的部署构建为较小存储库的组合。

例如,我可能想将管理服务器部署和清点为 oracle UIM 安装,我想在配置服务器的角色上构建,安装 jdk,安装 weblogic,设置一个基本域,然后将 UIM 放到该堆栈上。

我可以创建角色来执行我们的标准配置、安装 jdk、安装 weblogic 二进制文件、安装标准化域配置等,但某些事情总是需要调整和抽象.

是否有设置它们之间使用的公共变量的标准,例如{{ install_user }}或{{ DB_URL }}?

如果没有,有没有人有好的建议来帮助在项目经理不在的情况下保持设计正常进行?

我对大约 10 个微服务进行了非常复杂的设置,它们使用了大量的公共变量,为此我创建了一个名为 common_vars 的单独角色,它只有两个文件夹 defaultstasks,其中 defaults 包含所有公共变量,而 tasks 为空 main.yml,我将此角色作为元依赖项导入我所有其他服务部署角色以共享公共变量。

-- common_vars
|   |-- defaults
|   |   `-- main.yml
|   `-- tasks
|       `-- main.yml

我的 defaults/main.yml 看起来像这样(最小的例子,实际上它真的很大):

---
ENVIRONMENT: "dev"

COMMON_BASE_DIR: "/mydir"
COMMON_WEB_DIR: "{{ COMMON_BASE_DIR }}/www"

COMMON_LOG_DIR: "/var/log"

COMMON_WEB_USER: "www-data"
COMMON_WEB_GROUP: "www-data"


common_ubuntu_packages:
  - git
  - vim
  - screen

在我的其他角色中 meta/main.yml 我将其添加为依赖项,如下所示:

---
dependencies:
  - common_vars