Loading

Devops+Jenkins+flask部署

一、DevOps简介

DevOps(英文Development和Operations是一组过程、方法与系统的统称,DevOps是一组最佳实践强调(开发、运维、测试)在应用和服务生命周期中的协作和沟通,强调整个组织的合作,以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付

1、什么是持续集成

持续集成是指开发人员在程序的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试

  1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量
  2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能
  3. 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心

2、什么是持续交付

持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。

3、什么是持续部署

在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

二、部署简介

一般网站部署的流程:

  • 需求分析
  • 原型设计
  • 开发代码
  • 内网部署
  • 提交测试
  • 确认上线
  • 备份数据
  • 外网更新
  • 最终测试

三、部署流程

jenkins工具平台可以实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能,Jenkins非常易于安装和配置。

由于jenkins是使用java代码开发的,所以我们需要安装java容器才能运行jenkins。

1、安装java

sudo apt install openjdk-8-jdk

2、安装Jenkins

包含在默认Ubuntu软件包中的Jenkins版本往往落后于项目本身的最新版本。 为了利用最新的修复和功能,我们将使用项目维护的软件包来安装Jenkins。

首先,我们将存储库密钥添加到系统。

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

当这两个都到位时,我们将运行update ,以便apt-get将使用新的存储库:

sudo apt-get update

最后,我们将安装Jenkins及其依赖项,包括Java:

sudo apt-get install jenkins

3、开始Jenkins

使用systemctl我们将启动Jenkins:

sudo systemctl start jenkins

由于systemctl不显示输出,我们将使用其status命令来验证它是否成功启动:

sudo systemctl status jenkins

如果一切顺利,输出的开始应显示服务处于活动状态,并配置为启动时启动:

● jenkins.service - LSB: Start Jenkins at boot time
  Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
  Active:active (exited) since Thu 2017-04-20 16:51:13 UTC; 2min 7s ago
    Docs: man:systemd-sysv-generator(8)

4、设置Jenkins

要设置我们的安装,我们将使用服务器域名或IP地址访问Jenkins的默认端口8080http:// ip_address_or_domain_name :8080

默认端口是8080,有时候由于端口占用需要修改如下:

  • 检查 /etc/init.d/jenkins 脚本,修改 do_start 函数的 check_tcp_port 命令,端口号从 8080 换成 8082:
  • 修改 /etc/default/jenkins 文件,将端口 8080 改成 8082
HTTP_PORT=8082
  • 重启Jenkins
sudo systemctl restart jenkins

我们应该看到“解锁Jenkins”屏幕,显示初始密码的位置

img

在终端窗口中,我们将使用cat命令显示密码:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

我们将从终端复制32个字符的字母数字密码,并将其粘贴到“管理员密码”字段中,然后单击“继续”。 下一个屏幕提供安装建议的插件或选择特定插件的选项。

img

我们将点击“安装建议的插件”选项,这将立即开始安装过程:

img

安装完成后,系统将提示您设置第一个管理用户。 可以跳过此步骤,并使用上面使用的初始密码作为admin继续,但是我们将花一点时间创建用户。

img

创建一个admin用户,密码自己定义

img

一旦第一个管理员用户到位,你应该看到一个“Jenkins准备好了!” 确认屏幕。

img

点击“开始使用Jenkins”来访问主要的Jenkins仪表板:

img

查看

[ubuntu@ip-172-31-43-146 ~]$ sudo netstat -plntu|grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      14788/java  

此时,Jenkins已经成功运行。

四、创建项目

默认python3以及python的代码包已经在服务器上下载好了。

我们访问已经部署好的jenkins项目

image-20210505001306632

1、新建item

选择freestyle project

image-20210505001425421

点击确认之后我们可以看到如下界面

image-20210505001619598

我们最需要关注的就是源码管理,以及环境的构建,暂且不管项目的配置。我们先看一下gitee或者github的配置。

2、gitee上的公私钥配置

源码管理方面我们是从gitee中拉取项目代码,如下图所示:

image-20210505002812198

所以我们需要将公钥放在gitee中。

访问我的gitee点击个人设置,查看ssh公钥。我是之前就添加进来的一个公钥。

image-20210505001924792

公私钥如何产生。我们要在我们搭建了jenkins的服务器上生成公私钥。

image-20210505002535709

image-20210505002613182

将公钥放在gitee上。

image-20210505002639063

3、jenkins的项目配置

回到jenkins的项目配置页面

源码管理中输入我们的源码ssh的url地址,如图所示

image-20210505002946367

添加凭证

image-20210505003008143

image-20210505003353864

然后发现我们的项目不红了

image-20210505003439403

但是要填写这两个内容(否则项目不会工作)

这两个内容,我们用如下方式获取

image-20210505004054604

image-20210505004141622

点击保存,返回面板,我们部署一下项目尝试。

image-20210505004229267

点击之后,我们查看工作空间,如下图,我们的项目部署成功。

image-20210505023243507

部署失败的话,可以查看左侧的日志栏。

4、启动项目

配置启动脚本。

image-20210505023605603

点击立即构建

访问页面。成功!

image-20210505005743817

5、配置任务触发时间表达式

继续配置当前的项目

Jenkins 定时任务触发时间表达式 ,H/2 * * * * (2分钟检查一下版本库 如果有更新就不触发 如果没有更新就不触发)

image-20210505005420500

6、修改项目代码

一旦修改项目,并push上去,jenkins就会每两分钟检查一次是否改变,如果改变就会触发构建!

image-20210505005839659

如图所示。

image-20210505011907740

posted @ 2021-05-05 01:27  xine  阅读(891)  评论(2编辑  收藏  举报