概览
Jenkins服务器设置
1. 我们必须配置Jenkins,为此我们将创建一个安装Jenkins 的EC2服务器。此外,我们还将安装一些其他工具,例如Sonarqube和Docker,因此我们需要比较大的RAM和CPU。
服务器配置: t2.large、Ubuntu22.04、安全组端口开放 - 22、9000、8080、8081 和 8082,存储:30GB gp2。
2.创建EC2实例后,使用ssh登录创建的机器。
3.安装Jenkins,您可以参考Github Repo,只需运行脚本或按照命令将其安装到您的机器上。
GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git
下面可以看到Jenkins已经安装完成。
4. 现在,在 public_ip:8080 的帮助下浏览 Jenkins 服务器。确保您已在实例的安全组中打开端口号 8080。
5. 使用命令/var/lib/jenkins/secrets/initialAdminPassword 获取密码。
6. 输入密码后,单击继续。
7. 点击“安装建议的插件”
8. 现在,您可以通过单击“跳过并以管理员身份继续”继续
9. 设置完成。
10.安装Docker Pipeline插件
Sonarqube 服务器设置
11.安装Sonarqube扫描仪插件
12.在您的 EC2 实例或本地计算机上安装Sonarqube 。
您可以参考 Github Repo,只需运行脚本或按照命令将其安装到您的计算机上。
GitHub存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git
apt install unzipadduser sonarqube
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.4.0.54424.zip
unzip * chmod -R 755 /home/sonarqube/sonarqube-9.4.0.54424 chown -R sonarqube:sonarqube /home/sonarqube/sonarqube-9.4.0.54424 cd sonarqube-9.4.0.54424/bin/linux-x86–64/ ./sonar.sh start
13. 为 EC2/本地服务器设置 Sonarqube。
用户名和密码:admin
在下一步中,您必须重置密码。
14. 您的 Sonarqube 服务器已启动并正在运行,如下所示。
15. 现在,我们必须将 Jenkins Sonarqube 扫描仪与此Sonarqube 服务器连接起来。为此,请单击搜索框右侧的个人资料,然后转到“我的帐户”。
16. 生成用于将 Jenkins Sonarqube Scanner与Sonarqube Server连接的令牌。单击“安全”选项卡,为令牌命名,然后单击“生成”。
17. 现在,在 Jenkins 中添加生成的令牌。通过仪表板 -> 管理 Jenkins -> 凭据 -> 系统 -> 全局凭据。
Jfrog-Artifactory 服务器设置
18. 创建新的EC2实例t2.medium并安装jfrog-artifactory。
您可以参考 Github Repo,其中有一个名为Install-Jfrog-Artifactory.sh 的脚本并运行它,在您的计算机上安装了Jfrog Artifactory ,或者您也可以直接复制和粘贴。
GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git
19. 现在,设置Artifactory,在代码分析成功完成后上传工件。
单击“开始”。
20. 输入新密码,然后单击下一步。
21. 单击“跳过”
22. 单击“跳过”。
23.通过命名来创建存储库,确保存储库应该是通用的或Maven 的,因为我们必须上传java 的工件。
24. 为存储库命名并单击“保存并完成”。
25. 为了将Jfrog-Artifactory与Jenkins集成,我们必须在Jfrog-Artifactory 中生成令牌。
单击生成访问令牌。
26. 单击“生成”。
27. 复制令牌。
28.转到Jenkins和仪表板 -> 管理 Jenkins -> 凭据并粘贴从Jfrog-Artifactory复制的令牌,然后按照下面的屏幕截图执行其余操作,然后单击创建。
29.在安装了Jenkins的EC2服务器上安装Docker。您可以参考下面的命令,或者您可以参考 Github Repo,您只需要运行脚本并将其安装到您的计算机上。
GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git
sudo apt updatesudo apt install docker.iosudo su -usermod -aG docker jenkinsusermod -aG docker ubuntusystemctl restart docker
30.在本地计算机上安装minikube 。
请参阅官方的链接:https ://minikube.sigs.k8s.io/docs/start/
您也可以参考 Github Repo,只需运行脚本或按照命令将其安装到您的计算机上。
GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git
sudo apt updatesudo apt upgradewget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64chmod +x minikube-linux-amd64sudo mv minikube-linux-amd64 /usr/local/bin/minikube
31. 转至https://operatorhub.io/operator/argocd-operator并单击安装来安装 ArgoCD。您将获得在安装了minikube 的本地计算机上安装时必须使用的命令。
32. 命令运行 并且argoCD 操作符已安装
33. 存储Docker 凭据。
34.还存储Github 凭证(个人访问令牌)。
部署在 Kubernetes 集群上
35. 访问operatorhub.io并输入argoCD,然后单击operator Documentation链接
36. 单击“用法”->“基础知识”并复制所选脚本。
37. 创建yml 文件并将脚本粘贴到该文件中。
38. 我们使用此脚本来下载argoCD控制器。
现在,下载 argoCD 控制器的最后一步将通过以下命令完成:kubectl apply -f argocd-basics.yml
39. 在这里,您可以看到argoCD 控制器已创建。
40. 我们需要第四个控制器,因为它负责argoCD UI。
41. 我们想在本地机器上运行这个控制器。因此,为此,我将编辑第四个控制器,在其中将类型:ClusterIP更改为NodePort。
42. 我们运行相同的命令来获取服务,但这次有一个不同之处,我们可以看到 NodePort 。
现在,要生成浏览器 URL,请编写命令minikube service argocd-server。
要获取浏览器 URL,请编写命令minikube service list,您可以在下面的屏幕截图中查看该命令 。
43. 我点击了该链接,您将看到此UI,点击“高级”,然后点击“<your_IP>”
44. 您可以看到ArgoCD UI登录页面。
45. 在这里,您必须输入用户名和密码。
用户名是admin ,要获取密码,请参阅下面的屏幕截图。
46. 我已经得到加密的密码并将复制它。
现在,我已经使用以下命令解密了密码
47. 现在,我已经输入了用户名和密码并登录了argoCD UI 。
48. 单击“创建应用程序”。您可以在上面的屏幕截图中看到这一点。
现在,要创建应用程序,您必须输入一些配置,您可以在下面的屏幕截图中查看它,最后单击“创建”。
49. 现在,等待几分钟。argoCD将自动部署应用程序。
50. 在这里,发现报错了,因为我在名称空间参数中写入了名称空间,这应该是默认值。
51.那么,让我们纠正它。
最终配置。
52. 单击“保存”后,单击“刷新”,它将再次启动部署应用程序的过程。
我的应用程序已成功部署,如下面的屏幕截图所示。
53. 如果运行命令kubectl get pods。您可以看到最后两个正在运行的Pod ,这确保部署成功。
54. 所以,我也面临并解决了一些问题。
每个服务和工具的最终输出
Jenkins Pipeline
Sonarqube 代码分析
上传工件至 Jfrog Artifactory
在 Kubernetes 集群上使用 argoCD 控制器进行部署