node{}
包围所有内容。 我在一个同事的团队中看到,由于某种原因,他们只有一个主节点,没有从节点。他们所有的构建都在主节点上运行。
问题:
这是不好的做法吗?
仅拥有一个主节点是否会带来不良后果?节点?
我的设置(一个主机和一个从机)是不好的做法吗?
#1 楼
https://wiki.jenkins.io/display/JENKINS/Jenkins+Best+Practices在较大的系统中,请勿在主服务器上构建。
如果您有一个更复杂的安全设置,允许某些用户
仅配置作业,而不管理Jenkins,则需要防止
他们在主节点上运行构建,否则他们具有
不受限制地访问JENKINS_HOME目录。您可以通过将执行程序计数设置为零来执行此操作。相反,请确保所有作业都在从属服务器上运行。这样可以确保jenkins主服务器可以扩展以支持更多的工作,并且还可以防止构建文件意外/恶意地修改$ JENKINS_HOME上潜在的
敏感数据。如果需要
在主服务器上运行某些作业(例如,Jenkins本身的备份),请使用“作业限制插件”来限制可以在那里执行的作业。 />
一个主节点,没有从节点。他们所有的构建都在master
节点中运行。这是不好的做法吗?
在主节点上运行作业意味着作业可以不受限制地访问JENKINS_HOME目录
是否存在仅拥有一个主节点会带来任何不良后果吗?
由于从属节点可以不受限制地访问JENKINS_HOME目录,因此这可能是不安全的
设置(一个主控器和一个从属器)是一种不好的做法吗?
,只要所有作业都在从属器上运行,它比仅一个主控器要好
总而言之,从安全的角度来看,在主服务器上运行作业是一种不好的做法。
#2 楼
在某些情况下,可以在主节点上运行作业很好,但是您必须要小心。就像提到的其他答案一样,通常来讲,在主服务器上运行作业是一种不好的做法,因为这些作业不会在主节点上进行沙箱处理。话虽如此,有时您确实希望在主服务器上运行作业节点。例如,在我的Jenkins安装中,有两个作业是:
查找其依赖关系已更新的作业,并针对依赖关系的新版本调度它们的构建
查找打开拉尚未建立的请求并为它们安排构建时间
我(作为Jenkins管理员)完全控制这些作业,这些特定作业都不接触磁盘上的任何文件(它们实质上是“元”作业),我希望它们能够在我的奴隶上的所有执行器插槽都忙时也能运行,并且我希望这些作业不会阻塞队列中更重要的作业。由于这些原因,我允许这两个作业-并且仅允许这两个作业-在主节点上运行。