docker搭建jenkins

一、运行jenkins

这里我们选择Jenkins中国定制版的镜像是因为下载jenkins的插件快不会失败,因为插件源换成了国内的

docker run -itd  \
  -p 8080:8080 -p 50000:50000 \
  --name jenkins \
  --privileged=true -u root \
  --restart=always \
  -v /data/jenkins:/var/jenkins_home \
  jenkinszh/jenkins-zh:lts

备注:8080是web端口;50000是jenkins的slave节点连接jenkins的master节点需用到的

容器运行后我们打开页面,我的宿主机ip是192.168.15.9,容器的80端口映射到了宿主机8888端口,所以我们通过http://192.168.15.9:8888/访问web服务,第一次访问需要解锁jenkins输入管理员密码
docker搭建jenkins_第1张图片
因为我们把容器的/var/jenkins_home映射到了宿主机的/data/jenkins目录,所以通过以下方式获取初始密码,copy到web

$ cat /data/jenkins/secrets/initialAdminPassword
19d2df6c2cc64cd4828bac4506107071

安装推荐的插件
docker搭建jenkins_第2张图片
等待插件安装完成后,创建一个管理员账号
docker搭建jenkins_第3张图片
实例配置默认即可
docker搭建jenkins_第4张图片

二、添加节点

jenkins可以分布式构建代码,比如有两个项目需要打包 ,我们可以让第一个项目在A节点打包,另一个项目在B节点打包,这样可以互不干扰并发打包两个项目了。

新增节点
docker搭建jenkins_第5张图片
节点名称唯一,不能重复
docker搭建jenkins_第6张图片

以下是两种不同的方式添加slave节点

1、ssh方式添加节点(节点可以是物理机也可以是容器,此处物理机)

# step1: 在jenkins容器所在的宿主机先生成ssh key
$ ssh-keygen    # 一直 enter 确认即可

# step2: 把整个".ssh"目录copy到/var/jenkins_home
$ cp -r ~/.ssh /data/jenkins

# step3: 把 ~/.ssh/id_rsa.pub 内容append到slave节点机的 ~/.ssh/authorized_keys文件

# step4: 把 ~/.ssh/id_rsa 内容copy到新增节点的 "Credentials"私钥中

备注:在新增节点的表单中启动方式选“Launch agent via ssh”,并点击高级按钮设置slave节点机器的java命令路径(which java)

以下截图是上面步骤的补充说明
设置节点

  • 远程工程目录:会自动创建填写的目录
  • 主机:节点机ip
  • Credentials:没有凭证的话需要添加
    docker搭建jenkins_第7张图片
    添加凭证
  • Username:必须是ssh key的用户
    docker搭建jenkins_第8张图片
    最后启动节点就可以了
    docker搭建jenkins_第9张图片
    节点就在线了
    docker搭建jenkins_第10张图片

2、通过java web代理方式添加节点(节点可以物理机也可以容器,此处容器)

# step1:启动一个ubuntu18.04镜像的容器
$ sudo docker run -dit --name ubuntu  --privileged=true ubuntu:18.04 /bin/bash

# step2:进入容器
$ sudo docker exec -it ubuntu /bin/bash

# step3:安装依赖(容器必须安装了java、ssh、git、wget)
$ apt update

# 安装wget
$ apt-get -y install wget

# 安装java
$ apt install -y default-jre
$ apt install -y openjdk-8-jre-headless

# 安装ssh
$ apt install -y openssh-server

# 安装git
$ apt install -y git

# step4: 下载"agent.jar"(agent.jar包连接在jenkins节点详情)
$ wget http://192.168.15.9:8888/jnlpJars/agent.jar

# step4: 连接jenkins master(命令在jenkins节点详情)
$ java -jar agent.jar -jnlpUrl http://192.168.15.9:8888/computer/docker/slave-agent.jnlp -secret 5372c28e77f561b8cd85b579316636228dcc34b357a628d56609edc104cb65d9 -workDir "/root/go"

最后在jenkins节点管理中启动节点即可

你可能感兴趣的:(CI,&,CD)