DevOps(十)Jenkins实战之发布Django开发Web应用

面学习了Jenkins,Gitlab,Git,Selenium等等DevOps有关的工具。今天我们使用一个完整的Web应用发布流程来讲解怎么样将这些工具怎么配合使用。下面是这个流程的简单介绍:首先我们用Django开发一个简单的Web应用,然后发布到Gitlab代码仓库当中,然后通过Jenkins的流水线,将代码拉取到服务器上,布署在服务器上。 要完成上面的任务我们需要遵循以下步骤:

步骤 1: 安装Django

确保你已经安装了Python。然后使用pip安装Django:

pip install django

步骤 2: 创建Django项目

在你选择的目录下,运行以下命令创建一个新的Django项目。这里我们将项目命名为helloworld

django-admin startproject helloworld

进入项目目录:

cd helloworld

步骤 3: 创建Django应用

在项目目录下,创建一个名为hello的Django应用:

python manage.py startapp hello

步骤 4: 设置视图

hello应用目录的views.py文件中,添加如下代码来创建一个简单的视图:

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("Hello, World!")

步骤 5: 配置URLs

首先,在hello应用目录中创建一个urls.py文件:

from django.urls import path
from .views import hello_world

urlpatterns = [
    path('', hello_world),
]

然后,需要将这个应用的URLs包含到项目的主URL配置中。打开helloworld/urls.py文件,修改为以下内容:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', include('hello.urls')),  # 添加这一行
]

步骤 6: 运行开发服务器

确保一切设置正确,然后启动Django开发服务器:

python manage.py runserver

在浏览器中访问 http://localhost:8000/hello/,你应该看到显示“Hello, World!”的页面。

步骤 7: 初始化Git仓库

在项目根目录下,初始化一个Git仓库:

git init

添加一个.gitignore文件(可以从这里获取标准的Python .gitignore内容),然后提交你的更改:

echo "*.pyc" >> .gitignore
echo "__pycache__/" >> .gitignore
echo "db.sqlite3" >> .gitignore
git add .
git commit -m "Initial commit with Hello World"

步骤 8: 提交到GitLab

  1. 在GitLab上创建一个新的仓库(不勾选 "Initialize repository with a README")。

  2. 按照GitLab提供的指令将代码推送到新仓库,通常是这样:

    git remote add origin <你的GitLab仓库URL>
    git branch -M main
    git push -u origin main
    

替换<你的GitLab仓库URL>为你的实际GitLab仓库URL。

完成以上步骤后,你的Django "Hello World" 应用就会存储在GitLab上了。

接下来我们在Jenkins上配置一个流水线任务,从GitLab拉取代码,发布到服务器上,并使用Selenium进行测试。

步骤 9: 设置Jenkins环境

9.1 安装Jenkins

确保Jenkins已安装并运行在服务器上。如果还没有安装,可以从Jenkins官网下载并根据你的操作系统进行安装。具体可以参考我前面的博文《DevOps(四)在Ubuntu20.04和CentOS7安装Jenkins

9.2 安装必要的插件

登录到Jenkins,进入“Manage Jenkins” > “Manage Plugins”。安装以下插件:

  • Git plugin
  • Pipeline
  • SSH Agent Plugin(如果需要通过SSH部署)

重启Jenkins以应用安装的插件。

步骤 10: 配置GitLab与Jenkins

10.1 在Jenkins中配置GitLab凭证
  1. 在Jenkins中,进入“Manage Jenkins” > “Manage Credentials”。
  2. 在相应的域下,添加新凭证。
  3. 选择“Username with password”,输入你在GitLab生成的帐号和密码,记得ID要取唯一值,并且要记住,后面的Jenkins流水线中需要使用。

步骤 11: 创建Jenkins流水线

11.1 创建新的流水线任务
  • 在Jenkins主页,点击“New Item”。
  • 输入项目名,选择“Pipeline”然后点击“OK”。
11.2 编写Jenkinsfile

在你的项目根目录中创建一个名为Jenkinsfile的文件,其中包括以下内容:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', credentialsId: 'sean', url: 'http://gitlab.povison-pro.com/Sean/helloworld.git'
            }
        }
        stage('Build') {
            steps {
                sh 'python manage.py runserver 0.0.0.0:8000'
            }
        }
       
    }
}

注意, git branch: 'main', credentialsId: 'sean', url: 'http://gitlab.povison-pro.com/Sean/helloworld.git' 这一句的参数,要记住。 git branch 这个参数后面跟的是分支名。credentialsId 这个参数后面跟的是我们上面配的那个连接gitlab用户名密码的ID,url这个参数后面跟的是项目的git地址,大家根据自己环境的情况来替换。

步骤 5: 运行并监控流水线

以上步骤为你提供了一个基本的框架,用于从GitLab拉取代码,通过Jenkins自动构建和测试,最后部署到服务器的流程。我们在客户端浏览器上通过访问http://192.168.110.170:8000/hello,就能看到布署在服务器上的django应用返回的结果了。

 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 07:46:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 07:46:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 07:46:07       82 阅读
  4. Python语言-面向对象

    2024-04-23 07:46:07       91 阅读

热门阅读

  1. I fumo 星(STL,数学)

    2024-04-23 07:46:07       41 阅读
  2. Nginx四层负载均衡

    2024-04-23 07:46:07       118 阅读
  3. CSS3 transition过渡:打造流畅动画效果的全面指南

    2024-04-23 07:46:07       105 阅读
  4. 天星金融消保课堂开讲,金融健康意识再提升

    2024-04-23 07:46:07       39 阅读
  5. 说说redis的集群的原理吧

    2024-04-23 07:46:07       38 阅读
  6. redis 无占用 两种方式 清除大批量数据 lua脚本

    2024-04-23 07:46:07       37 阅读
  7. gitlab上传新创建的工程项目

    2024-04-23 07:46:07       210 阅读
  8. MySQL-数据目录

    2024-04-23 07:46:07       137 阅读
  9. 2007. 从双倍数组中还原原数组

    2024-04-23 07:46:07       38 阅读
  10. 微服务(学习)

    2024-04-23 07:46:07       41 阅读
  11. 介绍下volatile关键字

    2024-04-23 07:46:07       37 阅读
  12. npm包管理器

    2024-04-23 07:46:07       44 阅读
  13. 我的创作纪念日

    2024-04-23 07:46:07       37 阅读
  14. npm 打包后自动压缩成zip文件

    2024-04-23 07:46:07       152 阅读