Docker安装Jenkins 2.346.3
1、安装JDK11
yum install -y java-11-openjdk.x86_64
2、拉去Jenkis镜像,最新LTS版本的Jenkins 2.346.3。
docker pull jenkins/jenkins:2.346.3-2-lts-jdk11
3、宿主机上创建Jenkins数据目录,并授权
准备一个用于存储Jenkins数据的目录。因为我们用Docker安装的,容器的数据如果没有进行持久化当容器被删除了会出现数据丢失。
mkdir -p /home/jenkis
chmod 777 -R /home/jenkis
4、创建jenkis容器
docker run -itd --name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
--privileged=true \
--restart=always \
-v /home/jenkis:/var/jenkins_home jenkins/jenkins:2.346.3-2-lts-jdk11
#说明:
#容器运行后需要开放端口。
#8080默认Jenkins web页面使用的端口。
#50000是Agent连接Server用到的通信端口。(后面安装JenkinsAgent的时候要注意网络连通性)
#时区配置,定义默认的时区。(JAVA_OPTS环境变量为修改时间配置,否则可能jenkins的时间显示有问题!)
#设置特权级运行的容器
#随docker容器启动
#持久化数据目录,挂载本地的数据目录
5、验证
启动Jenkins容器后。然后docker logs 看下日志。在日志中可以获取到激活Jenkins需要用到的密钥字符串。保存下来。
密钥:0cd27e8392fd49ef955f4145f6217616
#查看jenkins容器运行状态
[root@Devops6 ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6139736ef4c jenkins/jenkins:2.346.3-2-lts-jdk11 "/usr/bin/tini -- /u…" 5 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins
#查看jenkins容器log
[root@Devops6 ~]#docker logs jenkins
……
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
0cd27e8392fd49ef955f4145f6217616
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
……
6、访问web界面并输入密码
-
访问http://192.168.3.101:8080/开始配置Jenkins。
-
填写解锁密钥
-
可通过如下2种方式来获取密码:
(1)查看docker里的日志文件 [root@Devops6 ~]#docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword 0cd27e8392fd49ef955f4145f6217616 (2)查看jenkins容器日志 如上面验证5
-
输入密码后,这边的加载一会儿,耐心等一会儿:
-
加载完成后,出现安装插件界面:
点击
无
,我们先不安装插件,待后续根据需求再安装相应的插件即可:(因为不好先安装个Chinese中文插件) -
插件安装完成后创建管理员用户
账户:admin 密码:123456
-
实例配置使用默认地址
http://192.168.3.101:8080/
-
开始使用jenkins
: -
配置Jenkis插件源:
外网用户:访问插件源是否正常 https://updates.jenkins.io/update-center.json 另外,也可以在Available点击这里的check now 内网用户: 使用nexus3做一个代理,通过Nexus代理仓库的方式缓存到内网; ------------------------------------------------------- 手动上传插件在Plugin Manager-->Advanced(高级)-->Deploy Plugin Jenkins插件下载地址: https://plugins.jenkins.io/ -------------------------------------------------------- 更换清华源:访问 https://mirrors.tuna.tsinghua.edu.cn/ Jenkis-->updates-->dynamic-stable-2.346.3 点击update-center.json,然后复制其浏览器地址即可: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.346.3/update-center.json 得到清清华源地址后,我们再次按下面方式进行配置 Plugin Manager-->Advanced(高级)-->升级站点 将https://updates.jenkins.io/update-center.json替换掉
7、安装配置Jenkins Agent
agent就是真正去执行任务的节点。
1.新建节点,并填写参数配置
·首先,我们需要在JenkinsServer上面添加节点。
点击Manege Jenkins-Manage Nodes and Clouds:
点击+ New Node:
填写Node name,Type选择Permanent Agent,点击Create:
配置执行器数量,远程工作目录,标签,Usage内容,其余不变,填写完成后,点击保存:
·另外:如果这里配置了自定义工作目录的话,那么这里的值就会替代上面我们指定的远程工作目录!
Number of executors
你可以这样理解,我在jenkins上运行一个job,它就会占用一个执行器。它所运行作业的数量,作业的并发数。
所以你在调并发的时候,如果出现队列在排队的情况,那可能是因为这里的执行器数量设置不够!
点击Save后,就可以看到创建好的agent节点了:
2.获取agent启动程序并运行agent
-
在首页点击刚才新建的节点
node_01
: -
这里agent有2种方式可以连接到jenkins master,我们使用第二种方式:
1、在命令行中启动节点 java -jar agent.jar -jnlpUrl http://192.168.3.101:8080/computer/node%5F01/jenkins-agent.jnlp -secret f6c903a9dde3e702cf830736b5c32ec484c3c35c08f698a0aca7e465bf2f234d -workDir "/home/jenkisagent" 2、Run from agent command line, with the secret stored in a file: echo f6c903a9dde3e702cf830736b5c32ec484c3c35c08f698a0aca7e465bf2f234d > secret-file java -jar agent.jar -jnlpUrl http://192.168.3.101:8080/computer/node%5F01/jenkins-agent.jnlp -secret @secret-file -workDir "/home/jenkisagent"
-
第二种方法操作步骤
mkdir -p /home/jenkisagent echo f6c903a9dde3e702cf830736b5c32ec484c3c35c08f698a0aca7e465bf2f234d > secret-file #编写后台启动脚本 vim vim start.sh #!/bin/bash nohup java -jar agent.jar -jnlpUrl http://192.168.3.101:8080/computer/node%5F01/jenkins-agent.jnlp -secret @secret-file -workDir "/home/jenkisagent" ##设置开启启动 ⚠️ 注意:如果使用rc.local和crontab设置开机启动的话,是没有效果的;这里采用systemd方法来设置服务开机启动。 vim /etc/systemd/system/jenkins-agent.service [Unit] Description=Jenkins Agent service After=network.target [Service] Type=simple User=root WorkingDirectory=/home/jenkinsagent ExecStart=/usr/bin/java -jar /home/jenkisagent/agent.jar -jnlpUrl http://192.168.3.101:8080/computer/build01/jenkins-agent.jnlp -secret @/home/jenkisagent/secret-file Restart=on-failure [Install] WantedBy=multi-user.target ##重新加载配置文件 systemctl daemon-reload systemctl enable jenkins-agent ##重启测试启动情况 ps -ef |grep java systemctl status jenkins-agent ##可以通过sytemctl命令来启动/重启/关停这个服务的: systemctl start/restart jenkins-agent systemctl stop jenkins-agent ##jenkins server节点和agent节点已全部安装成功。 #给虚机做一个快照