分享到:
发表于 2024-07-26 13:37:18 楼主 | |
前提条件 安装KubeSphere,认真阅读全文可免费领取PetaExpress云服务器一台。 在KubeSphere中启用DevOps套件 参考:启用DevOps https://kubesphere.io/zh/docs/v3.4/pluggable-components/devops/ 安装GitLabCE 我们先这次的演练创建一个名为devops的企业空间,同时创建一个名为gitlab的项目供GitLabCE部署使用。 通过应用仓库部署GitLab应用
虽然已经是最小功能集部署,但由于部署的服务及其资源开销较多,部署过程还是比较长的。部署完成后可以在gitlab应用的「工作负载」部分查看到所有负载都在运行中的状态。 4.确认所有工作负载运行后,如之前您已经配置过集群或项目网关并使能过gitlab.example.com的域名解析,那么您就可以直接访问该域名来打开GitLab的站点页面。 在GitLab中创建一个示例项目 首先让我们来登陆GitLab。GitLab的初始密码被作为Secret保存,我们可以回到项目首页,在「配置」下的「保密字典」中搜索initial可以找到gitlab-initial-root-password的条目。点击该字典条目,并在「数据」区块中点击最右侧的眼睛图标来展示password数据项的内容。
点击「Createaproject」按钮进入创建项目的页面,通过「CreatefromTemplate」我们可以来创建一个示例项目用于后面的流水线演练。 让我们选择NodeJSExpress这个项目模版来创建应用,所有模版都可以通过Preview按钮来预览其中的内容,使用模版后得到如下创建项目界面。 填入您偏好的项目名称,并在项目可见度这里选择默认的Private来创建私有项目,以便于后续演示如何访问私有项目。完成导入后可以得到如下的项目页面。 关闭AutoDevOps并创建Jenkinsfile 由于我们后续要使用KubeSphereDevOps,而GitLab默认开启了AutoDevOps功能(会为无CI配置的项目自动提供流水线支持),为了避免混乱,我们先暂时关闭AutoDevOps。 找到项目页面中间部位的文件及功能快捷入口区域,点击「AutoDevOpsenabled」按钮块,进入配置页面后取消DefaulttoAutoDevOpspipeline的勾选并「Savechanges」,即可完成AutoDevOps功能的关闭。 接下来,我们还需要为这个项目创建一个Jenkinsfile用于后续KubeSphereDevOps流水线的构建。在master分支下直接创建一个名为Jenkinsfile的文件,填入以下内容即可。 使用KubeSphereDevOps为GitLab提供流水线 我们首先在devops的企业空间中创建一个名为demo的DevOps项目,用于后续演练如何为GitLab创建流水线。 将GitLab与KubeSphereJenkins进行绑定 由于KubeSphereJenkins默认绑定的GitLab服务是官方的gitlab.com,因此在创建流水线前需要先重新绑定到我们创建的私有GitLab服务上。 首先,我们需要打开KubeSphereJenkins的页面,为了操作方便,我们直接为kubesphere-devops-system命名空间下的devops-jenkins开放NodePort。 使用KubeSphere账号登陆Jenkins(如果登陆失败可能是账号同步问题,可以修改一次KubeSphere的密码再次尝试)。通过「系统管理??系统配置」进入系统配置页面,找到GitLabServers配置区,点击「AddGitLabServer」开始添加我们的GitLab服务。 如上图所示,需要填写或编辑的配置项一共有三项: ServerURL:这里填入我们刚刚部署完成的GitLab服务的访问方式(如果是域名访问,一定需要是Jenkins也可达的域名) Crendentials:这里选择或创建一个Jenkins的的凭证项,该凭证需要是GitLab某个用户的PersonalAccessToken(下面我们会继续说明如何创建) WebHook:这个一定要勾选ManageWebHooks这项,用于我们之后同步JenkinsPipeline的状态到我们的GitLab服务中 创建GitLabPersonalAccessToken的JenkinsCrendential 首先,我们回到GitLab中,可以直接通过/-/profile/personal_access_tokens(例如本文可使用[http://gitlab.example.com/-/profile/personal_access_tokens](http://gitlab.example.com:30433/-/profile/personal_access_tokens))来访问PersonalAccessTokens的创建页面。按Jenkins的要求,我们创建一个名为jenkins且具备api``read_repository``write_repository权限的令牌,复制令牌字符串备用。 然后我们回到Jenkins首页,从「系统管理??安全??ManageCrendentials??StoresscopedtoJenkins??Jenkins??全局??全局凭据(unrestricted)」进入凭证创建页面。 点击左侧面板的「添加凭据」即可开始创建凭证,填写完成后点击Ok保存即可完成凭证创建: Kind选择GitLab个人令牌 Scope选择默认的全局,ID填入任意不产生命名冲突的ID Token填入刚刚复制备用的GitLab令牌字符串(可忽略字符串长度的提示) 完成这部分配置之后,KubeSphereDevOps流水线的状态也会和我们GitLab中的Pipeline状态形成联动,大家可以参看视频中的效果。 使用Jenkinsfile创建KubeSphereDevOps流水线 让我们进入之前创建的demoDevOps项目,开始「创建」流水线。 在弹出的「创建流水线」对话框中,我们填入一个流水线「名称」并点击下方「代码仓库(可选)」这个区域来进行代码仓库绑定。 进入到「选择代码仓库」面板后,我们选择GitLab标签页,然后在「GitLab服务器地址」下拉框中选择我们上一小节在Jenkins中添加到GitLabCE服务器。由于我们演练的是私有仓库访问,下面需要先选择一个凭证用于访问私有代码仓库。在之前没有创建的情况下,这里我们点击绿色的「创建凭证」链接开始创建。 在弹出的「创建凭证」对话框中,输入「名称」后选定类型为用户名和密码;然后在「用户名」文本框中输入我们的账号root,在「密码/令牌」中输入之前从保密字典中获取到的初始密码(gitlab-initial-root-password)。
运行成功后可以再次查看流水线运行记录,并查看运行日志,得到如下图所示结果。
|
|
楼主热贴
个性签名:无
|
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见