面学习了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
-
在GitLab上创建一个新的仓库(不勾选 "Initialize repository with a README")。
-
按照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凭证
- 在Jenkins中,进入"Manage Jenkins" > "Manage Credentials"。
- 在相应的域下,添加新凭证。
- 选择"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应用返回的结果了。