内容提要
本文介绍在CentOS上搭建GoCD持续集成环境。GoCD采用master-slave架构,master负责管理、分配任务并提供界面。作者使用Linode云服务器,先添加yum源安装go-server并启动,通过8153端口访问;再安装go-agent,修改配置绑定server地址后启动。新agent默认处于pending状态,需在server端手动enable才能转为Idle,可重复配置多个agent。
延伸解读
GoCD 的 master-slave 架构与安全考量
GoCD 采用 master-slave 架构,master 负责管理、分配任务并提供用户界面,slave(agent)执行任务。这种架构与 Kubernetes 类似,但 GoCD 默认没有严格的 agent 注册认证机制,任何 agent 都可以尝试注册到 server。因此,新 agent 会处于 pending 状态,需要管理员在 server 端手动 enable 才能转为 Idle 状态。这虽然增加了管理步骤,但避免了未经授权的 agent 接入,提升了安全性。
安装过程中的防火墙配置注意事项
在 CentOS 上安装 GoCD 时,需要注意防火墙设置。Linode 上的 CentOS 7 默认开启 iptables 保护端口,可能导致无法访问 GoCD 的 8153 端口。在测试阶段,可以暂时关闭防火墙(使用 systemctl stop firewalld),以便顺利访问 GoCD 界面。但在生产环境中,应配置适当的防火墙规则,仅开放必要端口,而不是直接关闭防火墙。
GoCD 环境搭建后的后续步骤
本文仅完成了 GoCD 环境的基本搭建,包括安装 go-server 和 go-agent,并成功联通。但尚未进行流水线测试。后续需要配置 pipeline、材料(material)和任务(task),才能实际运行 CI/CD 流程。此外,作者提到会录制视频并撰写后续文章,介绍运行相关内容。因此,读者在完成环境搭建后,应继续学习 GoCD 的流水线配置,以发挥其持续集成和交付的价值。
Q&A
GoCD 的架构是怎样的?
GoCD 采用 master-slave 架构,master 节点负责管理系统、分配任务并提供用户界面,slave 节点(agent)负责执行任务。
在 CentOS 上如何安装 GoCD Server?
首先添加 yum 源:sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo,然后安装:sudo yum install -y go-server。安装后使用 service go-server start 启动服务。
安装 GoCD Server 后如何访问其 Web 界面?
启动 go-server 服务后,通过 http://{{ip-address}}:8153/go 即可访问 GoCD Server 的 Web 界面。
如何安装和配置 GoCD Agent?
添加 yum 源后安装 go-agent:sudo yum install -y go-agent。然后修改配置文件 /usr/share/go-agent/wrapper-config/wrapper-properties.conf,设置 GoCD Server 的地址,保存后使用 service go-agent start 启动。
为什么新注册的 GoCD Agent 处于 pending 状态?如何启用?
因为默认没有防护机制阻止其他 agent 注册,出于安全考虑,新 agent 会处于 pending 状态。需要在 GoCD Server 的 agent 页面手动点击 enable 按钮,之后 agent 状态会变为 Idle。
如何配置多个 GoCD Agent?
重复安装和配置 go-agent 的步骤即可配置多个 agent,每个 agent 都需要在 server 端手动 enable。