使用gitignore连续部署


12

使用Git进行连续部署时,如何处理gitignore中被忽略的文件?这些文件出于隐私原因而被忽略(即,不希望它们被推送到其他远程存储库,例如GitHub),但是由于这些被忽略的文件没有被推送到连续部署存储库中,因此它们的应用程序将无法运行(因为被忽略的文件是该软件才能正常运行。

人们通常如何做到这一点?在这种情况下,由于文件被忽略,Git是否不是连续部署的最佳选择?


2
我投票结束这个问题是离题的,因为它没有显示出最低限度的基础研究成果。
罗杰罗杰(Roger Roger)

3
我不缺少研究工作。OP似乎很了解gitignore的功能。我看到的是一个XY问题,但是由于在问题中同时解释了X和Y,因此Doc能够写出一个体面的答案,希望可以解决OP的实际问题。
Ixrec

1
@ScantRoger:说实话,这个问题可以写得更好,但是远不是那么糟糕,它值得一票。
布朗

Answers:


14

如果没有这些文件就无法运行软件,则任何种类的部署(手动,自动或连续),任何种类的VCS甚至没有任何VCS都会出现问题。因此,要么更改您的软件,使其实际上可以在没有那些文件的情况下运行(例如,如果文件丢失,它可以采用某种“默认参数”),或者您提供了适合复制的那些文件的某些版本( (作为部署步骤的一部分)到目标环境(如果没有这些文件的“私有”版本)。

如果您谈论的是诸如包含要登录到服务器的数据库凭据的文件之类的文件,出于安全原因,您不想进行版本控制,那么您将不得不将该文件一次性放入部署环境中,可能是手动进行,由拥有足够权限或知道密码的人执行。但这是有意的,不应阻止您部署软件的每日新版本。只需确保部署新版本时就位的凭证文件不会被覆盖。


同意,如果从vcs中签出不足以进行构建和运行(尽管容量减少),则您的源树不完整。
Newtopian

@Newtopian:请注意,这确实是故意的和正确的(请参见我的示例)。
布朗

2

另一个选择是将敏感信息存储在部署工具中。并将部署工具配置放在单独的私有源存储库中。

将敏感数据保留在目标机器上是可行的,但可能会有点腐烂-有人不按照程序进行更改就改变了它,机器刹车了,没人记得正确的设置,等等。

例如,Saltstack具有 https://docs.saltstack.com/en/latest/topics/pillar/index.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.