Docker、Jenkins、Rancher自动化部署项目

技术前提
在阿里云服务器centOS7.3版本虚拟机安装开发环境,也可以自己本机装虚拟机尝试。也有一定技术基
础前提,需要了解linux基础命令、Docker的运用,如:编写Dockerfile文件、Docker常用命令、卷挂载等。

一、安装

yum安装默认路径是/usr/local,如果需要指定路径如下:

# 默认路径安装
yum install 安装对象
# 安装到指定路径
yum -c /etc/yum.conf --installroot=/opt/all_venv/ --releasever=/ install 安装对象
# 该命令简单解释如下:
# -c /etc/yum.conf        表示指定yum配置文件地址
# --installroot=/usr/local    表示指定自定义的安装目录

二、文件传输

1.rz命令

个人感觉速度不是很快,喜欢使用Xftp7

[root@iz2zea7yijqy9s16u1gkz3z environment]# pwd
# 安装上传文件命令
[root@iz2zea7yijqy9s16u1gkz3z environment]# yum install lrzsz
# 上传
[root@iz2zea7yijqy9s16u1gkz3z environment]# rz

在这里插入图片描述

2.xtf7

第一次使用,会让你安装,根据提示安装即可使用。

在这里插入图片描述

git安装

# 安装git
[root@iz2zea7yijqy9s16u1gkz3z ~]# yum install git
# 查看git版本 能看到说明安装成功
[root@iz2zea7yijqy9s16u1gkz3z ~]# git --version
git version 1.8.3.1

tomcat安装

先到官网https://tomcat.apache.org/download-90.cgi下载压缩包找到对应版本

解压

解压tar.gz压缩文件命令: tar zxvf 解压文件路径 -C 解压目的路径

[root@localhost environment]# tar zxvf apache-tomcat-9.0.39.tar.gz

jdk安装

官网https://www.oracle.com/java/technologies/downloads/#java8下载安装包

解压

解压tar.gz压缩文件命令: tar zxvf 解压文件路径 -C 解压目的路径

[root@iz2zea7yijqy9s16u1gkz3z environment]# ls
jdk-8u271-linux-x64.tar.gz
[root@iz2zea7yijqy9s16u1gkz3z environment]# pwd
/home/lxs/environment
[root@iz2zea7yijqy9s16u1gkz3z environment]# tar zxvf /home/lxs/environment/jdk-
8u271-linux-x64.tar.gz -C /home/lxs/environment/
[root@iz2zea7yijqy9s16u1gkz3z environment]# ls
jdk1.8.0_271 jdk-8u271-linux-x64.tar.gz

maven安装

官网https://maven.apache.org/download.cgi下载对应安装包

解压

解压tar.gz压缩文件命令: tar zxvf 解压文件路径 -C 解压目的路径

[root@iz2zea7yijqy9s16u1gkz3z environment]# ls
apache-maven-3.6.3-bin.tar.gz jdk1.8.0_271 jdk-8u271-linux-x64.tar.gz
[root@iz2zea7yijqy9s16u1gkz3z environment]# pwd
/home/lxs/environment
[root@iz2zea7yijqy9s16u1gkz3z environment]# tar zxvf
/home/lxs/environment/apache-maven-3.6.3-bin.tar.gz -C /home/lxs/environment/
[root@iz2zea7yijqy9s16u1gkz3z environment]# ls
apache-maven-3.6.3 apache-maven-3.6.3-bin.tar.gz jdk1.8.0_271 jdk-8u271-linux-
x64.tar.gz

node安装

node主要是负责前端代码编译的时候使用。

下载node压缩包
[root@iz2ze environment]# wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-
linux-x64.tar.xz
解压
[root@asd environment]# tar xf node-v14.15.0-linux-x64.tar.xz
[root@iz2zea7yijqy9s16u1gkz3z environment]# cd node-v14.15.0-linux-x64
[root@iz2zea7yijqy9s16u1gkz3z node-v14.15.0-linux-x64]# ls
bin CHANGELOG.md include lib LICENSE README.md share
[root@iz2zea7yijqy9s16u1gkz3z node-v14.15.0-linux-x64]# pwd
/home/lxs/environment/node-v14.15.0-linux-x64

三、配置系统环境变量

配置环境变量

[root@iz2zea7yijqy9s16u1gkz3z environment]# vi /etc/profile
#JAVA
export JAVA_HOME=/home/lxs/environment/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#MAVEN
export MAVEN_HOME=/home/lxs/environment/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
#NODE
export NODE_HOME=/home/lxs/environment/node-v14.15.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH

刷新环境变量

[root@iz2zea7yijqy9s16u1gkz3z environment]# source /etc/profile

测试安装

# java安装成功
[root@iz2zea7yijqy9s16u1gkz3z lxs]# java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
# mvn安装成功
[root@iz2zea7yijqy9s16u1gkz3z lxs]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/lxs/environment/apache-maven-3.6.3
Java version: 1.8.0_271, vendor: Oracle Corporation, runtime:
/home/lxs/environment/jdk1.8.0_271/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.26.2.el7.x86_64", arch: "amd64", family:
"unix"
# node安装成功
[root@iz2zea7yijqy9s16u1gkz3z environment]# node -v
v14.15.0

四、Docker安装

环境要求

Docker需要系统内核3.10+

安装

参考文档https://docs.docker.com/engine/install/centos/

#1、卸载旧版本
yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
#2、需要的安装包
yum install -y yum-utils
#3、设置镜像仓库 默认国外地址 下载很慢
yum-config-manager \
  --add-repo \
 https://download.docker.com/linux/centos/docker-ce.repo
#推荐设置阿里云镜像地址
yum-config-manager \
  --add-repo \
 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
镜像加速
在自己的阿里云可以找到自己专属的镜像加速器地址
yum makecache fast
# 4、安装Docker相关引擎  docker-ce 社区版 ee企业版
yum install docker-ce docker-ce-cli containerd.io
#5、启动Docker
systemctl start docker
#6、查看Docker版本是否启动
docker version
#7Docker run hello-world
docker run hello-world

在这里插入图片描述

#8、查看下载的镜像
[root@iz2zea7yijqy9s16u1gkz3z ~]# docker images
REPOSITORY     TAG         IMAGE ID      CREATED      
SIZE
hello-world     latest       bf756fb1ae65     9 months ago   
 13.3kB
#9、卸载docker
# 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 删除资源
rm -rf /var/lib/docker

镜像加速

在自己的阿里云可以找到自己专属的镜像加速器地址

在这里插入图片描述
在这里插入图片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "registry-mirrors": ["https://l6f57atj.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

五、jenkins安装

基于Docker安装Jenkins

查找并安装镜像

# 查找镜像
[root@iz2zea7yijqy9s16u1gkz3z environment]# docker search jenkins
NAME                  DESCRIPTION               
   STARS       
jenkins                Official Jenkins Docker image      
   4951        
jenkins/jenkins            The leading open source automation server
   2269        
jenkinsci/blueocean          https://jenkins.io/projects/blueocean  
   574         
jenkinsci/jenkins           Jenkins Continuous Integration and
Delivery383               
# 拉取镜像
[root@iz2zea7yijqy9s16u1gkz3z environment]# docker pull jenkinsci/blueocean
# 查看本地镜像
[root@iz2zea7yijqy9s16u1gkz3z environment]# docker images
REPOSITORY      TAG         IMAGE ID      CREATED      
SIZE
jenkinsci/blueocean  latest       88b3ea93c260     17 hours ago   
755MB

运行jenkins

# 启动Jenkins
# 基于Docker运行的Jenkins 想配置自己主机的开发环境 需要启动时候挂载对应的开发环境
[root@iz2zea7yijqy9s16u1gkz3z environment]# docker run \
-u root \
-d \
--restart=always \
-p 18080:8080 \
-p 50000:50000 \
-v /var/jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
# 查看运行容器
[root@iz2zea7yijqy9s16u1gkz3z environment]# docker ps
CONTAINER ID    IMAGE         COMMAND         CREATED   
   STATUS       PORTS                       
NAMES
f36d109d183a    jenkinsci/blueocean  "/sbin/tini -- /usr/…"  26 seconds
ago   Up 25 seconds    0.0.0.0:50000->50000/tcp, 0.0.0.0:18080->8080/tcp 
fervent_galois

访问jenkins

提示输入密码
在这里插入图片描述

本机运行jenkins

安装

在官网https://www.jenkins.io/download/下载指定版本的war包

# 将war包放到安装的tomcat下的webapps目录下
[root@localhost environment]# mv jenkins.war /winkeytech/lxs/environment/apache-
tomcat-9.0.39/webapps
启动tomcat

启动tomcat访问Jenkins项目的时候,war会自动解压。

通常通过以下几种方式启动关闭tomcat服务:
切换到tomcat主目录下的bin目录(cd /winkeytech/lxs/environment/apache-tomcat-
9.0.39/bin)
1,启动tomcat服务
方式一:直接启动 ./startup.sh
方式二:作为服务启动 nohup ./startup.sh &
方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信
息,Ctrl+C后退出并关闭服务
解释:
通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方
式二可以作为linux服务一直运行;
通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台
的输出信息与错误情况;
通过方式三可以以控制台模式启动tomcat服务,直接看到程序运行时后台的控制台输出信息,不必每次都要很
麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括
log4j和System.out.println()等输出的信息。
2,关闭tomcat服务
./shutdown.sh

[root@localhost bin]# pwd
/winkeytech/lxs/environment/apache-tomcat-9.0.39/bin
# 到tomcat的bin工作目录下 启动
[root@localhost bin]# ./startup.sh
访问jenkins

启动tomcat后,可以访问tomcat下对应的项目,如:http://******:8080/jenkins

# 在本机查看初始化密码
[root@localhost bin]# cat /root/.jenkins/secrets/initialAdminPassword

在这里插入图片描述
在这里插入图片描述
注册第一个管理员账号
在这里插入图片描述
实例配置
在这里插入图片描述
访问成功
在这里插入图片描述

安装插件

根据需求安装对应的插件

  • Docker API Plugin
  • Docker plugin
  • Docker Slaves Plugin
  • Maven Integration
  • bouncycastle API Plugin
  • NodeJS
  • Active Choices

在这里插入图片描述
在这里插入图片描述
如果直接安装失败,可以点击插件手动下载安装包,在高级栏目手动上传。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置全局工具

配置全局环境变量,可以直接基于Jenkins安装或配置主机对应的路径

# 查看主机JAVA_HOME路径
[root@localhost local]# echo $JAVA_HOME
/winkeytech/lxs/environment/jdk1.8.0_271
# 查看主机MAVEN_HOME路径
[root@localhost local]# echo $MAVEN_HOME
/winkeytech/lxs/environment/apache-maven-3.6.3
# 查看主机NODE_HOME路径
[root@localhost local]# echo $NODE_HOME
/winkeytech/lxs/environment/node-v14.15.0-linux-x64

配置jdk

在这里插入图片描述

配置maven、node

在这里插入图片描述

配置docker云

Jenkins在调用Docker服务构建镜像时,打通Jenkins与Docker的通讯
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
服务器配置Docker Host URL有如下两种方法:
注意:如果这里配置的是 2375 端口的话,在Jenkins的 Docker Host URI 就要使用 2375 的端口
示例:Docker Host URI:tcp://<docker服务所在主机的ip>:2375
1.在运行Docker的主机配置系统级别的服务```java

vi /lib/systemd/system/docker.service
# 配置一个 提供外部服务调用docker系统的端口
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

2.配置Docker进程级别的服务

vi /etc/docker/daemon.json
{
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}
# 加载 docker 配置
systemctl daemon-reload
# 重启 docker 服务
systemctl restart docker

新建任务

新建任务这个比较灵活没有固定怎样,根据需求来构建,以下简单做个BladeX基础服务自由风格的构建
示例:

在这里插入图片描述
设置参数如:
Choice Parameter:可选择的参数类似下拉框
Active Choices Reactive Parameter:灵活选择响应参数类型
String Parameter:构建时候手动输入的参数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加代码仓库以及拉取的分支
在这里插入图片描述
增加构建步骤,增加docker云配置推送镜像,Maven构建项目操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开始构建

如上新建任务成功以后,可以构建项目看下是否成功
在这里插入图片描述
查看控制台输出,发现构建成功
在这里插入图片描述
查看配置的镜像仓库有镜像推送

rancher安装

基于CentOS7.3+、内核3.10+版本、Docker运行的Rancher,如果用其他系统可以查找资源学习下。

# docker search rancher 查找Rancher镜像
[root@localhost webapps]# docker search rancher
NAME                 DESCRIPTION                
  STARS       
rancher/agent                                  
  90          
rancher/os              Rancher OS installation container     
  53          
cdrx/rancher-gitlab-deploy      Painless deployment of projects built with
G24          
rancher/k8s             Rancher Kubernetes Images         
  23          
# 可以在DockerHub查找对应的资源,此处运行并且拉取rancher/server:v1.6.17
[root@localhost webapps]# docker run -d --restart=unless-stopped -p 18001:8080
rancher/server:v1.6.17
# 查看运行的容器,用主机IP:对外暴露端口访问,如:192.168.3.17:18001
[root@localhost webapps]# docker ps
CONTAINER ID    IMAGE          COMMAND         CREATED  
    STATUS       PORTS                NAMES
74d62357cb23    rancher/server:v1.6.17  "/usr/bin/entry /usr…"  11 seconds
ago   Up 8 seconds     3306/tcp, 0.0.0.0:18001->8080/tcp  sleepy_noyce

访问rancher

在这里插入图片描述

添加主机

点击添加主机,通过rancher 添加服务器主机,之后将容器通过rancher将容器部署在主机中,并且通过
rancher设定容器的调度规则,实现负载均衡。

在这里插入图片描述
在这里插入图片描述

# 执行生成的命令
[root@localhost webapps]# sudo docker run -e CATTLE_AGENT_IP="192.168.3.17" --
rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v
/var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10
http://192.168.3.17:18001/v1/scripts/B951AACEF86B6519A58C:1577750400000:Qsis1evG
At3M5nnoEinWbqrp1nE
# 查看运行容器,发现多了几个
[root@localhost webapps]# docker ps

在这里插入图片描述
在这里插入图片描述

添加镜像仓库

此镜像仓库是Jenkins构造时推送镜像的仓库地址

在这里插入图片描述
在这里插入图片描述

添加应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mysql

mysql在开发中是必不可少的,在其他服务运行前,先创建mysql。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值