在我以前的文章中,我描述了如何使用一个简单的命令启动连续交付堆栈 。 下一步是准备堆栈,以自动方式构建和部署应用程序。 在这篇文章中,我描述了如何配置堆栈,以便准备处理简单的Spring Boot应用程序 。 尽管我将这些组件作为Docker容器运行,但它们仍然需要进行配置以使其协同工作,尤其是Jenkins 。
当我在http:// localhost:8080打开全新Jenkins安装的控制台时,出现以下屏幕,我可以在其中输入生成的密码:
可以在屏幕上显示的文件中的Docker容器中找到该密码,也可以在docker-compose终端的控制台输出中找到该密码: 填写密码后,我可以选择安装“默认”插件,也可以自己选择。 对于我的用例,我可以简单地选择默认的一个(我使用的Jenkins图像已经包含了我需要的必要的非默认插件): 安装插件可能需要一段时间,但之后,我将在下一个屏幕中创建Admin用户: 在此屏幕之后,我得到了詹金斯仪表板: 在添加第一份工作之前,我需要首先解决一些问题:
- 配置Gitlab插件
- 添加Maven安装
- 将Nexus配置为Maven镜像
- 配置Gitlab插件
为了让Jenkins访问Git服务器,我创建了一个名为'jenkins'的新用户,该用户能够克隆存储库。 要创建新用户,请使用浏览器访问http:// localhost:8082 。 使用我的docker-compose堆栈,我可以使用用户'root'和密码'admin123'登录。 接下来,我点击“扳手”进入管理区域 :
在此管理区域中,我创建一个名为“ jenkins” 的新用户 : 如您所见,密码将被邮寄,但是由于我没有在Gitlab Docker中配置邮件服务器, 因此不会发生这种情况。 创建用户后,我选择它进行编辑。 然后,我可以手动填写密码。 现在,我注销以开始新的会话并以该新用户'jenkins'的身份登录。 第一次,我必须重设密码并再次登录。 最后,当我以“ jenkins”用户身份登录时,转到“ jenkins”用户的“配置文件设置”,然后打开“帐户”标签。 在这里,我看到该用户的专用令牌,如下所示: 我将其复制,以便可以在Jenkins配置中使用它。 回到Jenkins控制台,我转到“ Manage Jenkins ”并添加一个新的'Gitlab Api Key'类型的凭证 ,如下所示: 接下来,我进入“ 配置系统 ”并创建一个GitLab连接,如下所示: Gitlab插件将使用此API访问**,该插件将用于签出“管道”作业中的Git代码。
- 添加Maven安装
在控制台中,转到“管理Jenkins”,然后选择“ 全局工具配置 ”。 单击“添加Maven”,然后将安装命名为“ M3”,如下所示:
此Maven安装的名称将在描述管道作业的Jenkinsfile中使用。
- 将Nexus配置为Maven镜像
要为Maven安装定义全局Maven设置文件,请使用Config File Provider插件 。 要添加“ settings.xml ”文件,请转到“ Manage Jenkins ”,然后在主菜单中选择“ Managed files”:
选择“ 添加新配置 ”,然后选择“ Global Maven settings.xml”作为文件类型。 在内容部分,我将Nexus安装添加为镜像,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
注意配置文件的ID。 我在管道代码中引用了它。 由于此管道是与Jenkins安装分开执行的,因此我使用插件“ Pipeline Maven plugin ”使管道使用相同的Maven设置。
现在就这样。 堆栈现在正在运行,并准备构建我的Spring Boot项目。 我将在下一篇文章中展示。