服务器部署 jenkins

jenkinsci/blueocean 安装

docker pull jenkinsci/blueocean

doker 部署 jenkins

docker run -d -u root --name jenkins -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkinsci/blueocean:lts

docker run -d -u root --name jenkins -p 8080:8080 -p 50000:50000 -v /workspace/data/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime jenkinsci/blueocean:1.25.1

查看 Jenkins 启动情况

# 查看启动项
docker ps
# 查看全部
docker ps -a

遇到的问题

Jenkins 容器 docker run 之后状态 Exited

# 查看docker日志 :
docker logs jenkins
发现是目前权限问题
因为/data/jenkins_home 目录是root权限

解决方法

chown -R 1000 /data/jenkins_home //用户组改变

Jenkins 首次登录需要密码

// 进入容器
docker exec -it de20d10b6046(容器id) bash
cat /var/jenkins_home/secrets/initialAdminPassword //查看密码

jenkins 部署项目

添加节点

进入容器 创建 ssh 证书 连接寄主机

# 生成证书
ssh-keygen -t rsa -C "kingpi@163.com" -f ~/.ssh/host-rsa
# 进入.ssh
cd ~/.ssh

添加 config

Host 172.17.0.1(寄主机docker ip)
HostName 172.17.0.1
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/host-rsa

寄主机进入 ~/.ssh

cd ~/.ssh

进入文件 authorizedkeys

vi authorized_keys
# 输入 上面创建的 连接寄主机 ssh证书公钥

jenkins 添加 节点

image.pngWeChatb3c23b7241c04b4d5134e43d23656cf8.png

jenkins 容器内创建连接 github 证书

ssh-keygen -t rsa -C "kingpi@163.com" -f ~/.ssh/github.com
# config 添加host

jenkins 添加凭证 如上面 图

连接远程服务器

jenkins 容器内创建证书

ssh-keygen -t rsa -C "kingpi@163.com" -m PEM -P "" -f ~/.ssh/yooleap.net
# config 添加host

jenkins 系统配置配置服务器信息 添加上私钥

image.png

遇到的问题

# 连接服务器测试报错
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@59df330d]_

# 解决方法
ssh openSSH 版本过高 改用RSA
ssh-keygen -t rsa -C "kingpi@163.com" -m PEM -P "" -f ~/.ssh/yooleap.net