帮酷LOGO
0 0 评论

正文
文章标签:Ubuntu  

介绍

gocD是一个强大的持续集成和交付平台,旨在自动化测试和发布过程,GoCD有许多高级功能,例如,可以比较内部版本,可视化复杂的工作流程以及自动进行内部版本跟踪,GoCD是一种灵活的工具,可以帮助团队向生产环境交付经过良好测试的软件。

在本指南中,我们演示如何在Ubuntu 16.04上设置GoCD服务器,我们将安装服务器和代理程序,以使用项目提供的软件包完成CI/CD工作。然后,我们配置身份验证,并且修改一些基本选项来设置服务器。

前提条件

根据GoCD项目的建议,你需要一个至少2G RAM和双核CPU的Ubuntu 16.04服务器来完成此指南。

安装GoCD服务器和代理

首先,在APT源配置目录中添加新的存储库定义,输入:


echo"deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list

我们还需要将GoCD GPG密钥添加到APT,以便可以验证GoCD软件包上的签名,你可以下载该密钥,并通过键入以下内容将它添加到系统中:


curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -

现在我们可以更新本地包索引来拉下新包的列表,并且安装软件,GoCD要求运行Java 8,所以我们安装default-jre包和代理服务器和代理,我们还将安装apache2-utils软件包,使用它来生成认证文件:


sudo apt-get update
sudo apt-get install default-jre go-server go-agent apache2-utils

依赖项和持续集成软件将被下载,并且安装在服务器上。

准备首次使用GoCD

在启动GoCD服务器之前,我们在命令行上完成一些任务以准备就绪。

首先,我们需要确保GoCD进程可以访问磁盘挂载点,以便可以在此处存储数据。CI服务器将作为go用户和组运行,因此我们可以相应地分配/mnt/artifact-storage挂载点的所有权:


sudo chown -R go:go /mnt/artifact-storage

接下来,我们创建和填充用于验证信息的口令文件,GoCD的基于文件的身份验证插件,使用htpasswd实用程序创建的用户身份验证格式。

下面的命令中的-B选项选择bcrypt加密算法,-c选项告诉htpasswd在指定的路径中创建一个新的认证文件,此用户名与系统的操作系统用户完全不同,因此你可以使用你想要的值:


sudo htpasswd -B -c /etc/go/authentication sammy

系统将提示你输入,并且确认新用户的密码,用户名和密码加密后将被写入文件:


OutputNew password:
Re-type new password:
Adding password for user sammy

注意:你可以添加多个用户名和密码组合到文件中,以允许额外的登录,但是,在添加第一个用户后,你需要在没有-c选项的情况下调用htpasswd命令:


sudo htpasswd -B /etc/go/authentication next_user

在第一个用户之后使用-c选项将导致htpasswd替换现有的所有凭据,而不是添加到它们。

获得身份验证文件后,就可以启动GoCD服务器和代理进程,这可能需要一段时间才能完成:


sudo systemctl start go-server go-agent

首先,检查服务是否已成功启动:


sudo systemctl status go-*

如果你的输出看起来与此类似,则两个进程都由systemd初始化:


Output● go-agent.service - LSB: Go Agent
 Loaded: loaded (/etc/init.d/go-agent; bad; vendor preset: enabled)
 Active: active (exited) since Thu 2017-07-27 19:39:18 UTC; 1min 36s ago
 Docs: man:systemd-sysv-generator(8)
 Process: 8911 ExecStart=/etc/init.d/go-agent start (code=exited, status=0/SUCCESS)

. . .
Jul 27 19:39:18 go5 systemd[1]: Started LSB: Go Agent.

● go-server.service - LSB: Go Server
 Loaded: loaded (/etc/init.d/go-server; bad; vendor preset: enabled)
 Active: active (exited) since Thu 2017-07-27 19:39:33 UTC; 1min 21s ago
 Docs: man:systemd-sysv-generator(8)
 Process: 8867 ExecStop=/etc/init.d/go-server stop (code=exited, status=0/SUCCESS)
 Process: 8907 ExecStart=/etc/init.d/go-server start (code=exited, status=0/SUCCESS)

. . .
Jul 27 19:39:33 go5 systemd[1]: Started LSB: Go Server.

接下来,我们应该等待服务绑定到端口8153和8154,GoCD在第一个端口上监听HTTP流量,在第二个端口上监听HTTPS保护的流量,

输入以下命令,监视当前正在监听的端口:


sudo watch netstat -plnt

这将检查监听的TCP端口,并且每2秒更新一次屏幕,当GoCD开始监听端口8153和8154时,屏幕应如下所示:


OutputEvery 2.0s: netstat -plnt Thu Jul 27 20:16:20 2017

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1736/sshd
tcp6 0 0 :::22 :::* LISTEN 1736/sshd
tcp6 0 0 :::8153 :::* LISTEN 8942/java
tcp6 0 0 :::8154 :::* LISTEN 8942/java

在显示监听端口之后,按ctrl键退出进程监视器。

现在该软件已完全启动,并且运行,我们可以在UFW防火墙中打开GoCD的HTTPS端口(端口8154 ),我们不需要打开HTTP端口,因为我们希望所有连接都是安全的:


sudo ufw allow 8154

警告:打开端口8154后,GoCD web接口将在所有接口上都可以访问,当我们准备通过使用htpasswd命令创建/etc/go/authentication文件来锁定接口时,密码认证目前在GoCD中没有启用,

我们的服务器现在正在运行,我们将连接到网络接口以继续配置。

设置密码身份验证

通过GoCD服务器组件的初始化和监听连接,以及防火墙允许连接,我们可以在Web浏览器中连接到服务。

在浏览器中,指定https://协议,后跟服务器名称或IP地址域,并以:8154端口规范结束:


https://server_domain_or_IP:8154

你的浏览器显示一个警告,指示服务证书的SSL未由受信任的证书颁发机构签名:

由于GoCD使用自签名证书,因此这是预期的行为。在浏览器中点击高级或类似的选项,然后选择继续请求。

我们应该使用先前创建的密码文件优先启用身份验证,在顶部导航菜单中单击ADMIN,然后在Security子菜单中选择Authorization Configuration:

在接下来的页面上,单击右上角的Add按钮,将出现一个屏幕,你可以在其中填写身份验证提供程序的详细信息。

首先,在Id字段中为新的授权方法输入一个任意的名称,将Plugin Id选择保留为"Password File Authentication Plugin for GoCD" 最后,在密码文件路径框中,键入/etc/go/authentication,这是我们用htpasswd创建的文件,完成后,单击Check connection按钮以确保GoCD能够正确访问该文件:

如果GoCD显示"Connection OK"消息,请单击Save以应用新的身份验证。

你将被要求使用新方案进行认证,这在第一次显示为标准浏览器登录框,或者你重定向到GoCD登录页面,使用你配置的用户名和密码登录:

你的GoCD安装现在已受密码保护,可以防止未经授权的访问。



文章标签:Ubuntu  

正文

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语