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

对于使用每个角色的git子模块组合可部署配置,是否有行业标准的方法?,git,ansible,git-submodules,composition,code-reuse,Git,Ansible,Git Submodules,Composition,Code Reuse,我希望将复杂的部署构建为较小存储库的组合 例如,我可能希望将资源清册管理服务器部署为oracle UIM安装,我希望将其构建在配置服务器、安装jdk、安装weblogic、设置基本域的角色上,然后将UIM放到该堆栈上 我可以创建执行标准配置、安装jdk、安装weblogic二进制文件、安装标准域配置等的角色,但某些事情总是需要调整和抽象 是否有一个标准来设置它们之间要使用的公共变量,例如{{install_user}}或{{DB_URL}} 如果没有,是否有人有好的建议来帮助在没有项目经理的情况

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

例如,我可能希望将资源清册管理服务器部署为oracle UIM安装,我希望将其构建在配置服务器、安装jdk、安装weblogic、设置基本域的角色上,然后将UIM放到该堆栈上

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

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


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

我有大约10个非常复杂的微服务设置,它们使用了大量的公共变量,为此我创建了一个名为common_vars的单独角色,它在默认值和任务中只有两个文件夹,其中默认值包含所有公共变量,任务的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  

是的。让我想一想,我可能会提供一个我自己的答案供公众评论和输入。这是否允许其他角色访问这些值?是的,如果您将其作为依赖项添加到meta/main.yml中,就像我在回答中提到的那样