Jnekins搭建流程

单数据源、多数据源区别

Posted by dm on September 25, 2020

安装流程-Docker

1,#查看jenkins版本命令,此步骤可省略
> docker search jenkins

2,拉取最新版本的Jenkins镜像
> docker pull jenkins/jenkins:lts

3,创建Jenkins工作目录
> mkdir /home/jenkins

4,给该目录赋予权限
> chown -R 1000:1000 /home/jenkins

5,启动容器,运行Jenkins
> docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins/jenkins:lts
    --privileged=true 让容器有root权限,方便进入容器操作
    -p 9090:8080 jenkins的web访问端口9090
    -v /home/jenkins:/var/jenkins_home 容器/var/jenkins_home路径映射到宿主机/home/jenkins

6,查看容器是否启动成功
> docker ps -a

安装流程-Linux

下载Jenkins官网地址

> sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

> sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

> sudo yum install jenkins

image-20200925142806826

修改端口号

修改配置文件
> vim etc/sysconfig/jenkins

修改默认端口号
> JENKINS_PORT="8080"

修改java路径

查看当前java路径
> whereis java

修改java路径
> vim etc/init.d/jenkins

启动Jenkins,(启动、重启、停止命令)

启动
> service jenkins start

重启
> service jenkins restart

停止
> service jenkins stop

浏览器打开jenkins

ip:端口号

查看Jenkins密码

> cat /var/lib/jenkins/secrets/initialAdminPassword

下载插件

	
Publish Over SSH

Publish Over FTP	

Maven Release Plug-in

生成ssh-key

> ssh-keygen -t rsa -C "316588010@qq.com"

创建authorized_keys

> touch authorized_keys
将id_rsa.pub复制到 authorized_keys中

二、遇到问题

Jenkins 部署项目出现 Failed to connect to repository : Command “git ls-remote -h http://gitlab.XXX 128

Jenkins 部署项目出现 :
Failed to connect to repository : Command "git ls-remote -h https://gitlab.com/financemall-server/XXXXXX.git HEAD" returned status code 128:
stdout: 
stderr: fatal: Authentication failed for 'https://gitlab.com/financemall-server/XXXXXX..git/'

解决方法:
1.在gitlab(github)添加ssh key
2.配置凭证域

jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [pro]. Message [Auth fail]]

image-20200925143950459

解决方法:
1.在使用Publish Over SSH之前,需要制作SSH私钥。机器间做免密登录配置。假设机器A,ip为192.168.10.213,机器B: 47.102.158.62,机器A能够免密登录机器B,机器B能够免密登录机器A,制作方式是:

> cd ~
> ssh-keygen -t rsa

2.通过下面的命令,表示可以通过机器192.168.10.213,免密登录到机器47.102.158.62

> ssh-copy-id 47.102.158.62

3.生成knows_hosts文件

image-20200925144038484

解决Jenkins+Gitlab出现的stderr: Permission denied权限问题

在Jenkins凭据-系统-全局配置,中选择SSH Username with private key,下面的Private Key选择Enter directly直接输入在Gitlab部署了public key对应的private key即可。一般public key是在~/.ssh/id_rsa.pub,而private key是~/.ssh/id_rsa。
点击OK,保存项目再次构建就好了。

image-20200925144204312

Jenkins报错Maven JVM terminated unexpectedly with exit code 137

1.创建虚拟内存磁盘卷
[root@VM_0_8_centos ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1838        1502          69           0         265         183
Swap:             0           0           0
[root@VM_0_8_centos ~]# dd if=/dev/zero of=/swap/swapadd bs=1024 count=2024288
dd: failed to open ‘/swap/swapadd’: No such file or directory

2.创建虚拟内存磁盘卷
# 大概count=2024288,2G左右,可以视磁盘大小和需求创建。
# 默认存放在/swap/swapadd,可以是自己的任何目录。
[root@VM_0_8_centos ~]# mkdir /swap
[root@VM_0_8_centos ~]# dd if=/dev/zero of=/swap/swapadd bs=1024 count=2024288
2024288+0 records in
2024288+0 records out
2072870912 bytes (2.1 GB) copied, 18.7357 s, 111 MB/s

3、将磁盘卷转为虚拟内存卷
[root@VM_0_8_centos ~]# mkswap /swap/swapadd
Setting up swapspace version 1, size = 2024284 KiB
no label, UUID=a6a67e41-fb1f-417c-aa03-cf8c91fc0d65

4、启用虚拟内存服务
[root@VM_0_8_centos ~]# swapon /swap/swapadd
swapon: /swap/swapadd: insecure permissions 0644, 0600 suggested.

5、再来查看内存使用情况
[root@VM_0_8_centos ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1838        1503          75           0         258         180
Swap:          1976           0        1976
[root@VM_0_8_centos ~]# 
 
Jenkins 系统管理 - 系统配置 - maven项目配置 - 全局maven_opts配置
-Xmx512m -XX:MaxPermSize=128m

image-20200925144230292