当前位置: 首页 > news >正文

【Jenkins】01 - Jenkins安装

【Jenkins】01 - Jenkins安装

文章目录

  • 【Jenkins】01 - Jenkins安装
    • 一:整体架构
    • 二:Jenkins的安装部署
      • 1:gitlab的安装和使用
        • 1.1:在ssh下安装
        • 1.2:在docker下安装
        • 1.3:测试访问
      • 2:Jenkins的安装
        • 2.1:安装jdk
        • 2.2:启动jenkins
        • 2.3:安装和配置maven
        • 2.4:安装git

笔记整理自尚硅谷在b站的Jenkins公开课

Jenkins,原名 Hudson,2011 年改为现在的名字。它是一个开源的实现持续集成的软件工具。

官网:https://www.jenkins.io/

一:整体架构

服务器1:

  • ip -> 192.168.44.101
  • 内容 -> 部署gitlab,到时候开发完成的代码会推送到这里, 如果使用docker安装gitlab, 还要下载docker
  • 内存要求4G+

服务器2:

  • ip -> 192.168.44.102
  • 内容 -> jdk8, maven, docker和jenkins
  • 内存要求512M+
  • 硬盘要求10G+

在这里插入图片描述

  1. 开发人员编写代码到eclipse/idea, 通过本地测试运行通过之后推送代码到git/svn
  2. jenkins拉取代码,然后通过jenkins构建的脚本自动构建和部署到测试服务器

核心来说就是Jenkin代替了人工,对于代码的拉取,集成、构建和测试都是自动化完成

二:Jenkins的安装部署

本次测试使用的环境是centos7,假设你的服务器ip是:192.168.44.101(ifconfig)

1:gitlab的安装和使用

网址:https://about.gitlab.com/

文档:https://docs.github.cn/jh/install/requirements.html

  • 安装所需要的最小内存是4g
1.1:在ssh下安装
# step1:安装对应的依赖sshd等等
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd# step2:配置镜像
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash# step3:开始安装
sudo EXTERNAL_URL="http://192.168.44.101" yum install -y gitlab-jh

除非在安装过程中制定了自定义密码,否则将随机生成一个密码(/etc/gitlab/initial_root_password)

⚠️ 此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码, 使用此密码和用户名root登录

# 常用命令如下:
gitlab-ctl start                  # 启动所有 gitlab 组件;
gitlab-ctl stop                   # 停止所有 gitlab 组件;
gitlab-ctl restart                # 重启所有 gitlab 组件;
gitlab-ctl status                 # 查看服务状态;
gitlab-ctl reconfigure            # 启动服务;vi /etc/gitlab/gitlab.rb         # 修改默认的配置文件;
gitlab-ctl tail                   # 查看日志;
1.2:在docker下安装

docker的安装,如果已经安装了docker,跳过此步骤

# 这里我们安装docker的底层工具,会自动提示我们下载,很快就会完成了
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 增加阿里云的docker下载仓库,默认情况下,Docker的官方是从国外的服务器上下载的,下载速度是非常慢的,甚至失败
# 所以在这里我们是使用yum-config-manager组件来指定一个新的下载资源,指向的是阿里云的应用服务器,以此提高下载速度
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo yum makecache fast # centos stream 9这个镜像没有fast参数,可以不要这个# 安装docker客户端
sudo yum -y install docker-ce# 启动docker
sudo service docker start# 查看版本验证docker是否安装成功
docker version# 阿里云镜像加速
# https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

1️⃣ 添加容器

docker run --detach \--hostname 192.168.44.101 \   # 设置容器内主机名,如果没有DNS,可以设置为宿主机IP,或者后面在external_url中指定--publish 443:443 --publish 80:80 \  # 端口映射--name gitlab \--restart always \--volume /srv/gitlab/config:/etc/gitlab \     # 挂载配置, 宿主机位置/srv/gitlab/config, 容器中的配置的位置/etc/gitlab--volume /srv/gitlab/logs:/var/log/gitlab \   # 挂载日志--volume /srv/gitlab/data:/var/opt/gitlab \   # 挂载数据--shm-size 256m \   # 避免内存不足,特别是运行Sidekiq时registry.gitlab.cn/omnibus/gitlab-jh:latest

2️⃣ 启动容器

docker start gitlab

3️⃣ 查看已经存在的容器

docker ps -a

4️⃣ 进入容器

docker exec -it gitlab /bin/bash
1.3:测试访问

访问地址:http://192.168.44.101,当首次运行出现502错误的时候排查两个原因

  • 虚拟机内存至少需要4g
  • 稍微再等等刷新一下可能就好了

登录用户名:root, 密码在:cat /etc/gitlab/initial_root_password中,登录后需要改密码不然24小时之后会失效

2:Jenkins的安装

中文文档:https://www.jenkins.io/zh/doc/

  • 内存大于512M
  • 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)
  • 前置软件是JDK8(jre或者jdk都行)和docker
2.1:安装jdk
yum search jave|grep jdk# 这里安装JRE(java runtime environment)
yum install -y java-1.8.0.-openjdk# 但是Jenkins得运行需要JDK,这里需要再安装一下JDK
yum install -y java-devel
2.2:启动jenkins

方式一

下载war包,然后启动war包

方式2

1️⃣ 下载Jenkins,配置JDK位置

# step1:下载Jenkins
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm# 安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm# 修改jenkins的配置(需要指定jdk的位置,否则启动失败)
vim /etc/init.d/jenkins

在这里插入图片描述

在这里插入图片描述

2️⃣ 修改jenkins的默认启动用户,启动Jenkins

vim /etc/sysconfig/jenkins    # Jenkins默认配置文件JENKINS_USER="root"       # ----> 修改jenkins默认启动用户为root
# 重新加载配置文件
sudo systemctl daemon-reload
# 启动jenkins服务
systemctl start jenkins# 查看jenkins状态
systemctl status jenkins# 查看防火墙状态 
systemctl status firewalld# 关闭防火墙状态
systemctl stop firewalld

浏览器访问输入Jekins机器IP地址与默认端口8080, 这里会告诉你管理员密码在哪里

登录之后,如果你用的是比较好的网络,可以安装推荐的插件

🎉 可以先不安装,因为这些插件都在海外,还没有配置清华源,安装大概率失败。

在这里插入图片描述

3️⃣ 根据提示创建管理员账号,然后就可以了,管理员账号的密码没有要求

在这里插入图片描述

在这里插入图片描述

4️⃣ 修改为清华大学Jenkins镜像源(https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/)

在这里插入图片描述

然后修改Jenkins的镜像地址

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样在后面安装插件的时候就快了,因为使用的是清华源的镜像

5️⃣ 安装插件

dashboard -> manage Jenkins -> manage plugins-> available

安装git & maven

2.3:安装和配置maven

安装Jenkins

下载maven的tar.gz包 -> https://maven.apache.org/download.cgi

在这里插入图片描述

放到服务器上然后解压

tar zxvf apache-maven-3.9.11-bin.tar.gz# 换地并更名
mv apache-maven-3.9.11 /usr/local/maven

配置maven的配置文件,更新为阿里云镜像

<?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"><localRepository>${user.home}/.m2/repository</localRepository><pluginGroups><pluginGroup>org.mortbay.jetty</pluginGroup></pluginGroups><proxies></proxies><servers><server><id>releases</id><username>ali</username><password>ali</password></server><server><id>Snapshots</id><username>ali</username><password>ali</password></server></servers><mirrors><mirror><!--This sends everything else to /public --><id>nexus</id><mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror><mirror><!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --><id>nexus-public-snapshots</id><mirrorOf>public-snapshots</mirrorOf> <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url></mirror><mirror><!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --><id>nexus-public-snapshots1</id><mirrorOf>public-snapshots1</mirrorOf> <url>https://artifacts.alfresco.com/nexus/content/repositories/public/</url></mirror></mirrors><profiles> <profile><id>development</id><repositories><repository><id>central</id><url>http://central</url><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://central</url><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository></pluginRepositories></profile><profile><!--this profile will allow snapshots to be searched when activated--><id>public-snapshots</id><repositories><repository><id>public-snapshots</id><url>http://public-snapshots</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>public-snapshots</id><url>http://public-snapshots</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><activeProfile>development</activeProfile><activeProfile>public-snapshots</activeProfile></activeProfiles></settings>
2.4:安装git
yum install -y gitgit config user.name "your_username"
git config user.password "your_password"
http://www.dtcms.com/a/335785.html

相关文章:

  • C语言网络编程TCP通信实战:客户端↔服务器双向键盘互动全流程解析
  • [GWCTF 2019]枯燥的抽奖
  • Java线程的6种状态和JVM状态打印
  • [TryHackMe]Brainpan1( 内存溢出)
  • PERCEIVER IO:一种用于结构化输入与输出的通用架构
  • 脉冲计数实现
  • 深入剖析ROS参数服务器通信机制 ——共享全局数据的“云端仓库”实现原理
  • Node.js安装教程
  • MySQL的事务日志:
  • java之 junit4单元测试Mockito的使用
  • 26. Object.defineProperty 和 Proxy 用法
  • 中级统计师-会计学基础知识-第五章 财务报告
  • 计算机算术6-SRT2除法
  • Linux817 shell:until,nfs,random
  • TypeScript中的import语法详解
  • 6.Ansible自动化之-管理变量和事实
  • 关于第一次接触Linux TCP/IP网络相关项目
  • 牛客周赛 Round 105
  • Java -- 坐标体系--绘图方法
  • 《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
  • Originality AI:原创度和AI内容检测工具
  • thingsboard 服务器在2核CPU、2G内存资源配置下如何调优提速,适合开发/演示
  • 飞算JavaAI赋能高吞吐服务器模拟:从0到百万级QPS的“流量洪峰”征服之旅
  • C#读取文件, IO 类属性及使用示例
  • [GLM-4.5] GLM-4.5模型 | Claude Code服务集成
  • Qt 5.5 的安装与配置(使用 VSCode编辑)
  • React 基础实战:从组件到案例全解析
  • Talk2BEV论文速读
  • 什么叫作数据处理?数据处理和数据治理是什么关系
  • Java StringBuffer使用详解