.net core自动化部署:jenkins+docker+git

参考:

jenkins参考:https://www.cnblogs.com/huyong/p/14331097.html

jenkins参考: https://pkg.jenkins.io/redhat-stable/ 

docker参考:https://blog.csdn.net/xjjj064/article/details/106481955/

git参考:https://blog.csdn.net/sinat_36246371/article/details/52981343 

 

1.安装java环境安装jdk

jenkins 是一个java web程序,所以必然需要jdk 

yum install java

  jdk版本

java -version

2.安装docker

(1)添加Yum源需要的依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(2)添加Yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum clean all
yum makecache

(3)安装docker

sudo yum install docker-ce -y

(4)启动docker 

systemctl  start docker.service

(5)配置开机启动 

systemctl enable docker.service

(6)查看版本

docker --version

其他拓展:

删除已安装的docker版本 
# yum -y remove docker* 

3.linux上安装git(客户端)及GitHub的配置

3.1.安装git

(1)安装

sudo yum install git git-core git-doc

(2)一路安装下去,安装完后输入下面命令(邮箱为你在GitHub注册的邮箱号) 

ssh-keygen -t rsa -C "youremail@qq.com"

注意这里会让你输入一些东西,首先要输入保存key的文件名,这个随便写,这里的例子写了keyfilename。

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): keyfilename

然后会提示输入密码,当然还得确认密码。如果你不想设置密码,直接回车两次就OK了

 

(3)打开keyfilename.pub文件公钥,将里面的所有字符全部复制出来

vim keyfilename.pub

 如果提示“-bash: vim: 未找到命令”,则先安装vim命令

(安装vim命令:# yum -y install vim*)

复制完后按Esc键,然后按 : ,输入 q! 退出

3.2. Github关联

打开Github站点https://github.com,并登陆,点击头像右边的小三角,选择settings,然后选择屏幕左边目录的“SSH and GPG keys”,如下图所示:

然后新建一个SSH key(单击new SSH key),出现新建表格:

 

Title中随便填,然后把刚才从keyfilename.pub文件中全部复制出来的字符粘贴到Key中,然后点击“Add SSH key”。

其他拓展:

查看git版本号:

# git --version 

4.jenkins安装与使用 

4.1.安装jenkins 

1.

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

如报:颁发的证书已经过期,在上面的命令 后面加上  --no-check-certificate

# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

 若报“-bash: wget: 未找到命令”,请先执行下面命令安装wget 

# yum -y install wget

2.导入公钥

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

3.安装

yum install jenkins 

4.启动jenkins服务 

service jenkins start

 

开机自启动Jenkins

chkconfig jenkins on

 

 5.查看默认安装路径

rpm -ql jenkins

6.修改端口

vim /etc/sysconfig/jenkins 

 输入 “:set number” 显示行号

linux下jenkins默认使用jenkins用户进行脚本和文件的操作,如果不修改,在部署项目时需要调整涉及到的文件和目录的操作权限可以调整jenkins配置文件,将用户修改为root用户

修改第29行用户账号将JENKINS_USER="jenkins" 改成JENKINS_USER="root" 

 修改第56行端口号(将8080改成其他端口号)

 Esc,然后, 输入 wq保存

7.修改目录的相应权限 

chown -R root /var/log/jenkins
chgrp -R root /var/log/jenkins
chown -R root /var/lib/jenkins
chgrp -R root /var/lib/jenkins
chown -R root /var/cache/jenkins
chgrp -R root /var/cache/jenkins

8.如果设置了防火墙的,需开放一下设置的端口 

查看已开放的端口 

firewall-cmd --list-ports

开放端口(开放后需要要重启防火墙才生效) 

firewall-cmd --zone=public --add-port=8081/tcp --permanent

 重启防火墙  

firewall-cmd --reload

 9.重启Jenkins  

service jenkins restart

10.查看ip

ip addr

 

11.完成jenkins安装 

在浏览器输入:http://你的ip:8081/

1根据提示到指定目录拿到一串密码

  

vim /var/lib/jenkins/secrets/initialAdminPassword

2安装插件,选择推荐安装

3)等待安装

 

若有部分插件安装失败的,点击重试按钮 

 

 4)创建用户

 

  

  

4.2 .jenkins配置 

1.创建一个.net core web项目

 

 

 

将右键Dockerfile文件,属性,设置为始终复制 

 

编译文件,确认能正常访问页面,然后提交到git 

2.创建一个jenkins项目

(1)构建一个自由风格的软件项目

 

2)源代码管理 

指定git分支

 如果项目是非任何人都可以访问,那么还需要配置凭证,否则是不能链接到git仓库的,如下图所示:

 使用账户密码方式:

填写你在GitHub上登录的账号和密码

 

 选择刚刚添加的凭证

3)构建触发器

这里的是设置轮询去git拉取代码,如果代码有更新就触发构建操作,H/2 * * * * 是指每2分钟轮询拉取一次; 

 

 4)构建环境 

 Abort the build if it's stuck 是指如果构建过程中卡住了,就终止构建;这里是5是5分钟,5分钟超时构建失败;

5)添加构建脚本Execute Shell

 

填写构建脚本

 

image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# 停止之前的docker container

CID=$(docker ps | grep "testjk" | awk '{print $1}')
echo $CID
if [ "$CID" != "" ];then
  docker stop $CID
  docker rm $CID
fi


#docker stop testjk;
# 删除这个container
#docker rm testjk;
# build镜像并且打上tag
docker build -t testjk:$image_version .;
docker images;
# 把刚刚build出来的镜像跑起来
docker run -p 8010:80 --name testjk -d testjk:$image_version;
docker logs testjk;

6)点保存回到testjk项目界面,点击立即构建Build Now

 

蓝色图标表示构建成功,红色图标标识构建失败

 

7)如果设置了防火墙的,需开放一下设置的端口

开放端口(开放后需要要重启防火墙才生效) 

firewall-cmd --zone=public --add-port=8010/tcp --permanent

重启防火墙 

firewall-cmd --reload

查看已开放的端口 

firewall-cmd --list-ports

9.访问网站: 

http://你的ip:8010/

 

 可能出现的错误:

(1)如果报以下错误,尝试多构建(Build Now)几次 

Failed connect to github.com:443; Connection refused 

 

error: RPC failed; result=35, HTTP code = 0

  

(2)ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 
Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

 这个错误是因为 Jenkins 无法连接到 Docker 守护程序导致的。

解决方法如下:

①确认 Jenkins 用户是否有访问 Docker 守护程序的权限。

需要将 Jenkins 用户添加到 Docker 用户组中,使其有访问 Docker 守护程序的权限。可以通过以下命令将 Jenkins 用户添加到 Docker 用户组中:

sudo usermod -aG docker jenkins

 

②重启 Jenkins 服务。

在添加 Jenkins 用户到 Docker 用户组之后,需要重启 Jenkins 服务才能生效。可以通过以下命令重启 Jenkins 服务:

sudo systemctl restart jenkins

 

③验证权限是否已经生效。

重新执行 Jenkins 构建任务,检查是否还有权限错误。如果还有权限错误,请确认是否已经正确地将 Jenkins 用户添加到 Docker 用户组中,并重新启动 Jenkins 服务。

 

 

 

 

 其他拓展:

卸载jenkins:

查询以前是否安装jenkins

rpm -qa |grep jenkins

卸载 jenkins

rpm -e jenkins

彻底删除jenkins残留文件 

find / -iname jenkins | xargs -n 1000 rm -rf 

 

posted @ 2021-05-21 16:22  hellocjr  阅读(354)  评论(0编辑  收藏  举报