Git+Jenkins+docker实现自动部署git拉取代码部署web服务
Git+Jenkins+docker的持续集成环境构建
工作步骤思路(下图所示)
1.server1搭建好git仓库和用docker搭建好docker镜像仓库
2.server3用git命令去别的共用仓库拉取tale的源码,再上传到git仓库
3.server3制作好nginx配置好的docker镜像(这里我是用java命令去运行jar包的方式,所以不需要安装tomcat去支持)
4.server2部署Jenkins,用插件从server1的git仓库拉取tale的源码文件,再通过ssh发送到server3
5.server2上的Jenkins使用插件等功能用一个脚本在server3上部署tale博客系统到docker容器里然后运行容器
注意事项:
1.注意你自己的部署环境,jdk路径什么的,按照你的环境修改有的操作里面的参数,
2.还有是就是Jenkins下载插件版本兼容的问题,我这里Jenkins的版本是2.238,还有就是jdk跟maven之间的版本兼容问题,可以去网上搜一下它们兼容性
3.Jenkins下载插件的时候有没有下载成功,这个需要注意一下
环境部署
192.168.11.25:gitlab服务器、docker搭建registry镜像仓库
需要安装的软件:git、docker
192.168.11.26:Jenkins服务器
需要安装的软件:git、jdk、maven、tomcat、jenkins.war
192.168.11.27:git客户端、web服务器
需要安装的软件:git、jdk、docker
一、安装部署GitLab服务器或者用git构建代码仓库服务器还有docker的镜像仓库(这里建议服务器4G内存或者以上):192.168.11.25
注意:我这里用的是下载git去部署本地代码仓库服务器
方法一:GitLab服务器
配置YUM仓库
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
yum安装gitlab-ce:yum -y install gitlab-ce
加载配置文件并启动:gitlab-ctl reconfigure
启动服务:gitlab-ctl start
启动服务确定下面的状态正确(如下图所示)
其他的服务操作命令
启动:gitlab-ctl start
关闭:gitlab-ctl stop
重启:gitlab-ctl restart
重载配置:gitlab-ctl reconfigure
查看状态:gitlab-ctl status
然后进入该ip地址进行访问网页
方法二:git构建本地仓库
安装git构建本地仓库
yum -y install git
mkdir mygit.git
cd mygit.git
git --bare init
下载docker并运行registry镜像搭建docker镜像仓库
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-18.09.6
systemctl start docker && systemctl enable docker
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name rregistry registry
二、客户端安装git下载tale项目包,再上传到gitlab服务器上:192.168.11.27
yum -y install git
生成私钥传给gitlab服务器
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa root@192.168.11.25
下载项目包上传
mkdir git
cd git
git config --global user.name "admin"
git config --global user.email "admin@example.com"
git clone https://github.com/otale/tale.git
git clone root@192.168.11.25:/root/mygit.git
用户和密码为登录时的用户和密码
#到克隆的空库下
cd mygit/
#把下载的项目包里面的文件拷贝进来
mv ../tale/* ./
#添加当前目录全部文件提交上传
git add .
git commit -m "add project tale"
git push origin master
三、安装配置Jenkins服务器:192.168.11.26
1.安装配置好jdk
tar zxf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91 /usr/local/jdk1.8
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
source /etc/profile
查看java版本查看是否安装成功:java -version
2.安装配置maven
tar zxf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /usr/local/maven3.6.3
vim /etc/profile
export MAVEN_HOME=/usr/local/maven3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile
查看是否安装成功:mvn -v
3.安装配置好tomcat
tar zxf apache-tomcat-8.5.55.tar.gz
mv apache-tomcat-8.5.55 /usr/local/tomcat8
/usr/local/tomcat8/bin/startup.sh
访问网页8080端口查看是否安装成功(如下图)
4.部署Jenkins到tomcat
下载jenkins.war文件把它移动到安装tomcat的webapps目录下(我这里的目录路径是/usr/local/tomcat8/webapps/)
mv jenkins.war /usr/local/tomcat8/webapps/
到安装tomcat的webapps目录下用工具安装
cd /usr/local/tomcat8/webapps/
java -jar jenkins.war --httpPort=8080
然后访问网页8080端口的jenkins目录(如下图)
系统管理—》插件管理—》高级
配置站点源(如下图)
http://updates.jenkins.io/update-center.json
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
这两个网址都可以,点击提交再立即获取
然后点击可选插件搜索插件进行下载安装
系统管理—》插件管理—》可下载镜像
需要下载的插件
Localization: Chinese (Simplified)
Maven Integration plugin
Publish Over SSH
Git client
Git Parameter
5.下载git工具(因为需要去服务器下拉代码)
yum -y install git
6.最好做下其他两台计算机的免密登录(这里在Jenkins网页配置上也会做)
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa root@192.168.11.25
ssh-copy-id -i /root/.ssh/id_rsa root@192.168.11.27
四、部署web服务器(这里用docker实现):192.168.11.27
1.下载安装docker
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-18.09.6
systemctl start docker && systemctl enable docker
2.安装jdk
tar zxf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91 /usr/local/jdk1.8
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
source /etc/profile
3.安装unzip(因为后面打包需要解压tale.zip把里面的.jar文件丢到工作目录中)
yum -y install unzip
4.构建tale镜像
mkdir docker_tale && cd docker_tale/
vim Dockerfile
FROM centos:7
RUN yum install epel-release -y
RUN yum install nginx supervisor -y && yum clean all
RUN sed -i '47a proxy_pass http://127.0.0.1:9000;' /etc/nginx/nginx.conf
COPY supervisord.conf /etc/supervisord.conf
ENV PATH /usr/local/jdk1.8/bin:$PATH
WORKDIR /tale
CMD ["/usr/bin/supervisord"]
vim supervisord.conf
[supervisord]
nodaemon=true
[program:tale]
command=/usr/local/jdk/bin/java -jar /tale/tale-latest.jar
autostart=true
autorestart=true
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
docker build -t tale:base .
查看镜像是否创建成功如下图
docker tag tale:base 192.168.11.25:5000/tale:base
docker push 192.168.11.25:5000/tale:base
mkdir -p /data/tale
要创建一个/data目录下面一个tale目录,因为后面配置Jenkins的时候会把项目传到/data目录下,然后把/data/tale这个目录映射到docker容器里面的工作目录下
五、配置Jenkins:192.168.11.26网页上配置
系统管理—》系统设置
注意:这里最好把其他两台服务器的ssh都做
系统管理—》Global Tool Configuration
创建一个maven项目进行运行,自动部署到服务器上
这里是写的是git仓库的地址,从哪里去拖取源码
这里跟linux里的crontab一样,计划周期让Jenkins不断去git仓库看代码是否更新
这里记得添加clean package
这里是用ssh写一个脚本在别的服务器上运行
这里可以写脚本去启动docker把本地的/data/tale目录映射到docker容器里的/tale目录下,因为上面写Daockerfile的时候编辑的工作目录就是docker里的/tale目录下,再把外面的jdk映射到docker容器中(脚本内容看下面)
docker rm -f tale-test
unzip /data/tale.zip -d /data/tale/
docker run -itd \
--name tale-test \
-p 80:80 \
-v /usr/local/jdk1.8:/usr/local/jdk \
-v /data/tale:/tale \
192.168.11.25:5000/tale:base
测试:访问网页查看是否自动部署完成
更多推荐
所有评论(0)