文章内容
https://gitee.com/fakerlove/jenkins

文章目录

  • 1. 简介
    • 1.1 介绍
    • 1.2 环境准备
      • 1.2.1 安装jenkins
        • 1) 离线安装
        • 2) docker 安装
        • 3) 访问jenkins
      • 1.2.2 安装gitlab
        • 一、安装及配置
          • 1.gitlab镜像拉取
          • 2.运行gitlab镜像
          • 3.配置
          • 4.创建一个项目
        • 二、用户使用
          • 1.下载git.exe
          • 2.登录gitlab网页
          • 3.设置ssh
          • 4.从gitlab克隆代码
          • 5.提交代码到gitlab
      • 1.2.3 gitlab占用内存太多问题

1. 简介

1.1 介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已经上线了,需要把服务关,在部署到服务器上,将项目启动起来,这个时候可能某个用户正在操作某些功能上的东西,如果你隔三差五的部署一下,这样的话对用户的体验也不好,自己也是烦的很,总是打包拖到服务器上。希望小型企业工作人员学习一下,配置可能复杂,但是你配置好了之后,你只需要把代码提交到Git或者Svn上,自动构建部署,非常方便。有任何地方不懂的翻到最下方随时咨询我,想帮助更多的初学者共同一起努力成长!

1.2 环境准备

1.2.1 安装jenkins

jenkins 镜像网站

https://mirrors.cloud.tencent.com/jenkins/
https://mirrors.huaweicloud.com/jenkins/
https://mirrors.tuna.tsinghua.edu.cn/jenkins/
http://mirrors.ustc.edu.cn/jenkins/

1) 离线安装

yum install -y java-1.8.0-openjdk* -y
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.277.4-1.1.noarch.rpm
rpm -ivh jenkins-2.277.4-1.1.noarch.rpm
yum install jenkins
systemctl start jenkins

2) docker 安装

安装docker

1.启动docker,下载Jenkins镜像文件

docker pull jenkins/jenkins

2.创建Jenkins挂载目录并授权权限(我们在服务器上先创建一个jenkins工作目录 /var/jenkins_mount,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对容器内的配置文件进行修改。 如果我们不这样做,那么如果需要修改容器配置文件,将会有点麻烦,因为虽然我们可以使用docker exec -it --user root 容器id /bin/bash 命令进入容器目录,但是连简单的 vi命令都不能使用)

mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount

3.创建并启动Jenkins容器

-d 后台运行镜像

-p 10240:8080 将镜像的8080端口映射到服务器的10240端口。

-p 10241:50000 将镜像的50000端口映射到服务器的10241端口

-v /var/jenkins_mount:/var/jenkins_mount /var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。这里我们设置的就是上面我们创建的 /var/jenkins_mount目录

-v /etc/localtime:/etc/localtime让容器使用和服务器同样的时间设置。

–name myjenkins 给容器起一个别名

docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins

自己的jenkins

mkdir ~/jenkins
mkdir  ~/jenkins/jenkins_mount
mkdir  ~/jenkins/etc
mkdir  ~/jenkins/maven
docker run -it -d -p 10240:8080 -p 10241:5000 -u root -v ~/jenkins/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime -v ~/jenkins/maven:/var/maven -v ~/jenkins/etc/:/etc/  --name myjenkins jenkins/jenkins:lts

4.查看jenkins是否启动成功,如下图出现端口号,就为启动成功了

docker ps -l

5.查看docker容器日志。

docker logs myjenkins

6.配置镜像加速,进入 cd /var/jenkins_mount/ 目录。

cd /var/jenkins_mount/

修改 vi hudson.model.UpdateCenter.xml里的内容

修改前

将 url 修改为腾讯云官方镜像:

https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json

修改后

配置国内镜像源

mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
apt-get update

3) 访问jenkins

  1. 访问Jenkins页面,输入你的ip加上10240

  1. 管理员密码获取方法,编辑initialAdminPassword文件查看,把密码输入登录中的密码即可,开始使用。
vi /var/jenkins_mount/secrets/initialAdminPassword

  1. 到此以全部安装成功,尽情的使用吧!

1.2.2 安装gitlab

一、安装及配置

1.gitlab镜像拉取
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce

拉取镜像

2.运行gitlab镜像
docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

运行成功后出现一串字符串

运行成功

docker run -d  -p 443:443 -p 8088:80 -p 222:22 --name gitlab --restart always -v ~/gitlab/config:/etc/gitlab -v ~/gitlab/logs:/var/log/gitlab -v ~/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
3.配置

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)。

# gitlab.rb文件内容默认全是注释
vim /home/gitlab/config/gitlab.rb

配置文件

# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出

修改gitlab.rb文件

# 重启gitlab容器
docker restart gitlab

此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头
打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开为:ip:端口号)

4.创建一个项目

第一次进入要输入新的root用户密码,设置好之后确定就行

gitlab页面

下面我们就可以新建一个项目了,点击Create a project

Create a project

创建完成后:

创建完成!

二、用户使用

1.下载git.exe

双击git.exe安装git(一直点下一步,直到完成)
点击电脑桌面空白地方右键看到如下两行即安装成功

image.png

2.登录gitlab网页

url:http://192.168.1.111
填写账号密码登录

登录页面

3.设置ssh

1.打开本地git bash,使用如下命令生成ssh公钥和私钥对

ssh-keygen -t rsa -C 'xxx@xxx.com'

然后一路回车(-C 参数是你的邮箱地址)

生成密匙

2.然后输入命令:

# ~表示用户目录,比如我的windows就是C:\Users\Administrator,并复制其中的内容
cat ~/.ssh/id_rsa.pub

公匙

3.打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框

添加公匙到gitlab

4.从gitlab克隆代码

1.回到gitlab页面点击projects->your projects

2.选择一个需要克隆的项目,进入

我的项目页面

3.点击按钮复制地址

复制ssh地址

4.新建一个文件夹,我在这里在我的电脑D盘下新建project文件夹

5.进入projects文件夹右键选择->Git Bash Here

点击Git Bash Here

6.设置用户名和邮箱

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

设置名字和邮箱

7.克隆项目

git clone 项目地址

克隆项目

8.查看projects文件夹,项目已经克隆下来了

项目目录

5.提交代码到gitlab

1.基于以上步骤,在克隆的项目文件夹下新增一个测试文件

新增txt文件

2.查看同步状态
在项目文件夹下右键点击->Git Bash Here

输入

git status

状态

可以看到红色部分有需要提交的文件
3.提交代码
输入

git add  测试提交的文件.txt

(“git add“后加“.”则添加全部文件,也可以加"*.txt"表示添加全部需要提交的txt文件 )

add需要提交的文件

然后输入以下命令提交并添加提交信息

git commit -m "message"

commit

最后输出以下命令提交到gitlab

git push origin master

1.2.3 gitlab占用内存太多问题

修改/etc/gitlab/gitlab.rb

unicorn['worker_processes'] = 2
postgresql['max_worker_processes'] = 4
nginx['worker_processes'] = 4

重新运行

gitlab-ctl reconfigure  #gitlab会读取配置文件参数并修改各个插件的配置文件去(我猜的)
gitlab-ctl restart

jenkins教程_1 简介相关推荐

  1. Nacos教程_1 简介和安装

    教程原稿–https://gitee.com/fakerlove/joker-nacos 文章目录 nacos 教程 1. 简介 1.1 介绍 1.2 安装 下载 linux版本 windows版本 ...

  2. Git教程_1 简介

    https://gitee.com/fakerlove/git 文章目录 git 教程 1. 简介 1.1 介绍 1.2 环境准备 1.3 安装 1. 设置 用户名和密码: 2. 然后看本地目录是否有 ...

  3. docker教程_1 简介和安装

    https://gitee.com/fakerlove/docker 文章目录 Docker 教程 1. 简介 1.1 概念 1.2 优点 1.3 安装 环境准备 安装 Docker 教程 1. 简介 ...

  4. jsoup教程_1 简介

    1.1 jsoup 概念 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API, 可通过DOM,CSS以及类似于jQuery的操作方法 ...

  5. C和C++Everything教程的简介

    C和C++Everything教程的简介 C和C++Everything教程的简介 C和C++Everything教程的简介 该专栏包含了以下专栏的全部博文 C和C++完整教程(该专栏目前已有八百多篇 ...

  6. jenkins war包_Jenkins的安装和部署(jenkins教程)

    一.jenkins的下载.安装以及环境的搭建部署. 1.什么是jenkins以及它的作用: Jenkins 是一个可扩展的持续集成(CI)平台.它只是一个平台,真正运作的都是插件. Jenkins的主 ...

  7. spring-mvc教程_使用MVC模式制作游戏-教程和简介

    spring-mvc教程 游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,它的用途很快就会被注意到,因为 ...

  8. 使用MVC模式制作游戏-教程和简介

    游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,其实用性很快就会被注意到,因为它允许快速更改内容,而无需 ...

  9. docker运行jenkins挂掉_【图文】Jenkins教程集成SonarQube

    什么是SonarQube? 看看维基百科的说明: SonarQube与CI/CD架构图 SonarQube与CI/CD架构图 Docker运行SonarQube 简单了解之后,开始安装SonarQub ...

最新文章

  1. XTU 1243 2016
  2. 面试官:自己搭建过vue开发环境吗?
  3. python中静态方法、类方法、属性方法区别
  4. idhttp返回乱码_node.js http.get请求返回的中文乱码, iconv zlib模块都不好使,求解决!!!...
  5. ASM 转自三思笔记,改成自己看着舒服的格式而已
  6. 手机驱动工程师门,准备转行了吗
  7. Windows 11彻底禁用IE浏览器后,银行网银系统完全解决方案!
  8. 大哉昆仑的 双英雄的无敌bug存档
  9. oracle支持sha256加密算法,Sha256 加密算法
  10. idea切换工作空间_IDEA中如何在一个工作空间中管理多个项目
  11. PythonStock(25)股票系统:PythonStock V1 发布了,基于Python开发,使用Tushare抓取数据,存储到Mariadb数据库中,同时还开发了通用数据报表系统,通过配置
  12. 【ECLIPSE 二】eclipse java web 版本修改问题 3.0-2.5
  13. table 手机 滑动_移动端touch事件滚动
  14. html5光线传感器,光线传感器是什么
  15. Docker基础(centos安装、阿里云镜像加速器配置、常用命令、数据卷、DockerFile、镜像推送阿里云等)
  16. BlueStacks让 Android 应用跑在 Windows 平台上!
  17. 编译实验 lr c语言代码,编译原理-实验5-LR(1)分析法
  18. 十分感谢--致谢好友的
  19. 中南大学移动宽带连接路由器解决方案
  20. PI API 基础函数(一)

热门文章

  1. OpenGL纹理本质(三)
  2. Clojure 学习入门(17)- 异常处理
  3. UE4之模型格式介绍
  4. C#之xml配置文件读写
  5. html变量改变结构,如何在html结构标签中使用js 变量 生成可变化的 title标题?
  6. jsp和mysql的乱码问题_jsp和servlet操作mysql中文乱码问题的解决办法
  7. python 时间格式按年月分组_python – 按时间间隔对消息进行分组
  8. mysqlplus 批量插入_MySQL批量插入数据
  9. 基因突变PHP6,基因突变中那些“披着狼皮的羊” 很多“致命性”基因突变正在被证实无害...
  10. python能爬取什么_5行代码就能写个爬虫,python真是太方便了!