国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

前端工程化:保姆級教學(xué) Jenkins 部署前端項目

共 26624字,需瀏覽 54分鐘

 ·

2022-06-26 13:19

DevOps

提到 Jenkins,想到的第一個概念就是 CI/CD 在這之前應(yīng)該再了解一個概念。

DevOps Development 和 Operations 的組合,是一種方法論,并不特指某種技術(shù)或者工具。DevOps 是一種重視 Dev 開發(fā)人員和 Ops 運維人員之間溝通、協(xié)作的流程。通過自動化的軟件交付,使軟件的構(gòu)建,測試,發(fā)布更加的快捷、穩(wěn)定、可靠。

CI

CI 的英文名稱是Continuous Integration,中文翻譯為:持續(xù)集成。

試想軟件在開發(fā)過程中,需要不斷的提交,合并進行單元測試和發(fā)布測試版本等等,這一過程是痛苦的。持續(xù)集成CI是在源代碼變更后自動檢測、拉取、構(gòu)建的過程。

ci.png

CD

CD 對應(yīng)兩個概念 持續(xù)交付Continuous Delivery 持續(xù)部署Continuous Deployment

持續(xù)交付

提交交付顧名思義是要拿出點東西的。在 CI 的自動化流程階段后,運維團隊可以快速、輕松地將應(yīng)用部署到生產(chǎn)環(huán)境中或發(fā)布給最終使用的用戶。

從前端的角度考慮,在某些情況下肯定是不能直接通過自動化的方式將最終的 build 結(jié)果直接扔到生產(chǎn)機的。持續(xù)交互就是可持續(xù)性交付供生產(chǎn)使用的的最終 build。最后通過運維或者后端小伙伴進行部署。

cd1.png

持續(xù)部署

作為持續(xù)交付的延伸,持續(xù)部署可以自動將應(yīng)用發(fā)布到生產(chǎn)環(huán)境。

cd2.png

Jenkins 安裝

示例服務(wù)器為 阿里云 CentOS 服務(wù)器。安全組中增加 8080 端口 Jenkins 默認占用

Jenkins 安裝大體分兩種方式,一種使用 Docker 另一種則是直接安裝,示例選擇后者。不管使用哪種方式安裝,最終使用層面都是一樣的。 Linux 安裝[1], Docker 安裝[2]

點擊查看Linux安裝過程

# 下載 Jenkins 資源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
# 獲取并導(dǎo)入信任 的包制作者的秘鑰
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
# 升級 yum 源中的所有包
sudo yum upgrade
# Jenkins 依賴于 java 所以需要安裝 JDK
sudo yum install java-11-openjdk
# 安裝 Jenkins
sudo yum install jenkins
復(fù)制代碼

如果最終 Jenkins 沒有找到包而導(dǎo)致沒有安裝成功,檢查第一步和第二部執(zhí)行結(jié)果并重新執(zhí)行。

可以使用 systemctl 命令管理 Jenkins 服務(wù) systemctl[3]

# 啟動 Jenkins 服務(wù)
systemctl start jenkins
# 重啟 Jenkins 服務(wù)
systemctl restart jenkins
# 停止 Jenkins 服務(wù)
systemctl stop jenkins
# 查看 Jenkins 服務(wù)狀態(tài)
systemctl status jenkins
復(fù)制代碼

啟動服務(wù)后訪問服務(wù)器地址 + 8080 端口,Jenkins 默認為 8080 端口。

Jenkins 使用及 Freestyle 任務(wù)構(gòu)建

jenkins1.jpg

首次進入使用 cat /var/lib/jenkins/secrets/initialAdminPassword 查看密碼。

隨后進入插件安裝頁面,暫時安裝系統(tǒng)推薦插件即可。

然后創(chuàng)建用戶

jenkins2.jpg

構(gòu)建目標(biāo):拉取 github 代碼

點擊 新建 Item 創(chuàng)建一個 Freestyle Project

jenkins3.jpg

在 源碼管理 處選擇 git ,輸入倉庫地址,點擊添加。

jenkins4.jpg

輸入 github 賬號和密碼,這里的密碼有時候可能會出現(xiàn)問題,可以使用 token github 如何生成 token ?[4]

配置只是一方面,同時服務(wù)器也要具備 git 環(huán)境。 yum install git

jenkins5.jpg

構(gòu)建目標(biāo):部署到本機

部署前端項目肯定是離不開 nginx 的。 yum install nginx。

安裝完成后同樣可以使用 systemctl 命令管理 nginx 服務(wù)。

nginx 具體配置這里就不說了。本示例項目中,靜態(tài)文件托管目錄為 /usr/share/nginx/html/dist。

接著來到 Jenkins 這里。想要部署前端項目還需要依賴一個 Node 環(huán)境,需要在 Manage Jenkins -> Manage Plugins 在可選插件中搜索 nodejs 選擇對應(yīng)插件進行安裝,安裝完成后需要重啟才會生效。

jenkins6.jpg

然后到 系統(tǒng)管理 -> 全局工具配置 中配置 Node (吐槽:沒有安裝任何插件時系統(tǒng)管理以及其子頁面全是英文,安裝完插件后又變成了中文。這國際化不知道是系統(tǒng)原因還是它的原因 ??)。

jenkins7.jpg

隨后去修改剛才創(chuàng)建的任務(wù)。在 構(gòu)建環(huán)境 中會多出一個選項 Provide Node & npm bin/ folder to PATH 勾選即可。然后在 構(gòu)建 中選擇 增加構(gòu)建步驟 -> 執(zhí)行 shell 輸入打包發(fā)布相關(guān)的命令。Jenkins 會逐行執(zhí)行。

npm install yarn -g
yarn install
yarn build
# 打包 build 后的文件
tar -zcvf dist.tar.gz dist/
# 刪除 build 后的文件
rm -rf dist/
# 移動 build 后的壓縮包到 nginx 托管目錄下。
sudo mv dist.tar.gz /usr/share/nginx/html
# 進入托管目錄下
cd /usr/share/nginx/html
# 解壓
sudo tar -zxcf dist.tar.gz
# 刪除壓縮包
sudo rm -rf dist.tar.gz
復(fù)制代碼
  • 由于項目構(gòu)建時是在 Jenkins 的工作目錄下執(zhí)行腳本,會出現(xiàn)權(quán)限問題。導(dǎo)致即使使用了 sudo 還會出現(xiàn)類似以下錯誤。
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
復(fù)制代碼

解決方案:在 /etc/sudoers 文件中增加 jenkins ALL=(ALL) NOPASSWD:ALL 表示在執(zhí)行 sudo 時不需要輸入密碼。

  • 如果不使用 sudo 則會出現(xiàn)以下錯誤。
xxxxxxx: Permission denied
復(fù)制代碼

解決方案:修改 /lib/systemed/system/jenkins.service 文件。將 User=jenkins 修改為 User=root,表示給 Jenkins 賦權(quán)限。修改配置文件后記得重啟服務(wù)。

  • 構(gòu)建的過程中還可能出現(xiàn)以下錯誤
ERROR: Error fetching remote repo 'origin'
復(fù)制代碼

解決方案:由于需要構(gòu)建的代碼在 github 上面,這種錯誤表示拉取代碼失敗了,重試幾次就可以了。

工作目錄

上面提到一個很重要的概念就是 工作目錄 在上面的 shell 默認就是在這里執(zhí)行的。工作目錄是由兩部分組成。

  • /var/lib/jenkins/workspace/ 類似于前綴吧。

  • web-deploy 這個其實是上面構(gòu)建任務(wù)的名字。

總結(jié):Jenkins 的執(zhí)行目錄是 /var/lib/jenkins/workspace/web-deploy。也就是說輸入的每一條命令都是在這里面執(zhí)行的。(搞清楚定位能避免好多問題,特別是前端的部署,就是打包,移動,解壓很容易搞錯路徑。)

構(gòu)建目標(biāo):偵聽 git 提交到指定分支進行構(gòu)建

  • 來到 Jenkins 中選擇 系統(tǒng)管理 -> 系統(tǒng)配置 找到 Jenkins URL 將其復(fù)制。

  • 隨后在尾部添加 github-webhook/ 尾部斜杠一定不要丟。整體結(jié)構(gòu)大致為 http://192.168.0.1:8080/github-webhook/

  • 登錄 github 需要集成的項目中添加 webhook。在 Payload URL 中將上述內(nèi)容填入。

jenkins8.jpg
  • 然后修改 Jenkins 任務(wù)配置 構(gòu)建觸發(fā)器中選擇 GitHub hook trigger for GITScm polling
jenkins9.jpg

由于在上面的源碼管理中已經(jīng)指定了main分支,此時如果這個分支的代碼有改動就會觸發(fā)自動構(gòu)建。

構(gòu)建目標(biāo):部署到目標(biāo)主機

在真實的開發(fā)場景中,Jenkins 幾乎不會和前端資源放到一個服務(wù)器。大多數(shù)情況下 Jenkins 所處的服務(wù)器環(huán)境就是一個工具用的服務(wù)器,放置了一些公司中常用的工具。因此構(gòu)建到指定的服務(wù)器也至關(guān)重要。

1,系統(tǒng)管理 -> 插件管理 搜索 Publish Over SSH 進行安裝。

jenkins10.jpg

2,然后在系統(tǒng)管理 -> 系統(tǒng)配置中找到 Publish over SSH 點擊新增,再點擊高級,然后選中 Use password authentication, or use a different key

jenkins11.jpg

完成后可點擊右下角 Test Confirguration 進行測試。

3,繼續(xù)修改構(gòu)建任務(wù)。先修改原有的構(gòu)建腳本。因為要發(fā)布到遠程,所以原有的發(fā)布命令要進行去除。

npm install yarn -g
yarn install
yarn build
# 只打包,然后刪除文件夾。
tar -zcvf dist.tar.gz dist/
rm -rf dist/
復(fù)制代碼

4,選擇構(gòu)建后操作 -> Send build artifacts over SSH

jenkins12.jpg
  • Rransfer Set Source files:要上傳到目標(biāo)服務(wù)器的文件。它是一個相對路徑,相對于 Jenkins 的工作目錄 由于上面的 shell 執(zhí)行之后在工作目錄中只有一個壓縮包,so 直接寫一個文件名即可。

  • Remove prefix:去前綴。假設(shè)此時打包文件在 /var/lib/jenkins/workspace/web-deploy/assets/dist.tar.gz,那么 Rransfer Set Source files 則應(yīng)該為 assets/dist.tar.gz,此時 Remove prefix 配置為 assets/ 則可以去除這個前綴,否則會在目標(biāo)服務(wù)中創(chuàng)建 assets 。

  • Remote directory:遠程的靜態(tài)資源托管目錄。由于配置服務(wù)器默認為 /,所以 usr/share/nginx/html/ 不用以 / 開頭。

  • Exec command:遠程機執(zhí)行 shell,由于配置服務(wù)器默認為 /, 所以 工作目錄也是以 / 開始

執(zhí)行成功后查看執(zhí)行日志會有類似以下結(jié)果:

SSH: Connecting from host [iZuf6dwyzch3wm3imzxgqfZ]
SSH: Connecting with configuration [aliyun-dev] ...
SSH: EXEC: completed after 202 ms
SSH: Disconnecting configuration [aliyun-dev] ...
# 如果 Transferred 0 file 則需要查看配置的路徑是否正確。表示文件并沒有被移動到遠程主機中。
SSH: Transferred 1 file(s)
Finished: SUCCESS
復(fù)制代碼

構(gòu)建目標(biāo):釘釘機器人通知

1,系統(tǒng)管理 -> 插件管理 搜索 DingTalk 進行安裝。文檔[5]

jenkins13.jpg

2,釘釘群創(chuàng)建機器人。釘釘群 -> 只能群助手 -> 添加機器人 -> 自定義

ding1.jpg

3,定義機器人名字和關(guān)鍵字,創(chuàng)建完成后先將 webhook 中的內(nèi)容復(fù)制。

ding2.jpg

4,Jenkins 中 系統(tǒng)管理 -> 系統(tǒng)配置 -> 釘釘 -> 新增 配置完成后可點擊右下角進行測試。

jenkins14.jpg

5,修改構(gòu)建任務(wù)配置。

jenkins15.jpg
  • 通知人:atAll 勾選后 @ 不到準(zhǔn)確的人。??。輸入框內(nèi)可填寫需要被 @ 人的手機號,多個換行。

  • 自定義內(nèi)容:支持 markdown 寫法,可以使用一些環(huán)境變量。192.168.0.1:8080/env-vars.html/

  • 實現(xiàn)默認 `@` 執(zhí)行人[6]

6,構(gòu)建成功

ding3.jpg

Pipline 構(gòu)建

上一章節(jié)中著重介紹了如何構(gòu)建 freestyle 的任務(wù),但是 Jenkins 遠不止于此。在本章開始之前強烈建議閱讀文檔[7],重點關(guān)注流水線相關(guān)內(nèi)容。

新建任務(wù) -> 選擇流水線 其他內(nèi)容可以都不用管,只關(guān)注流水線 有兩種選擇,演示就選擇第一種。

直接在 Jenkins 中書寫配置。

pipline1.jpg

在項目的 Jenkinsfile 配置文件中寫配置。

pipline2.jpg

在正式開始之前應(yīng)該了解 Jenkins Pipline 的基礎(chǔ)概念。

pipeline {
    agent any // 在任何可用的代理上,執(zhí)行流水線或它的任何階段。
    stages {
        stage('Build') { // 定義 "Build" 階段。
            steps {
                // 執(zhí)行與 "Build" 階段相關(guān)的步驟。
            }
        }
        stage('Deploy') { // 定義 "Deploy" 階段。
            steps {
                // 執(zhí)行與 "Deploy" 階段相關(guān)的步驟。
            }
        }
    }
}
復(fù)制代碼
  • pipline:定義流水線整個結(jié)構(gòu),可以看做是根節(jié)點

  • agent:指示 Jenkins 為整個流水線分配一個執(zhí)行器,比如可以配置 Docker

  • stages:對整個 CI 流的包裹,個人認為沒多大用,還必須得有。

  • stage:可以理解為是對某一個環(huán)節(jié)的描述。注意:參數(shù)就是描述內(nèi)容,可以是任何內(nèi)容。不要想歪了只能傳遞 Build Deploy 這些。

  • steps:描述了 stage 中的步驟,可以存在多個。

了解到這里還是不夠的。流水線入門[8] 流水線語法參考[9]

Pipline 復(fù)刻 Freestyle

這里先直接把配置貼出來。后續(xù)結(jié)合內(nèi)容在進行分析。

點擊查看完整配置

// 自定義 釘釘插件 的 錯誤信息和成功信息
def successText = [
    """ ### 新的構(gòu)建信息,請注意查收""",
    """ ${env.JOB_BASE_NAME}任務(wù)構(gòu)建<font color=green>成功</font> ,點擊查看[構(gòu)建任務(wù) #${env.BUILD_NUMBER}](http://106.14.185.47:8080/job/${env.JOB_BASE_NAME}/${env.BUILD_NUMBER}/)"""
]
def failureText = [
    """ ### 新的構(gòu)建信息,請注意查收""",
    """ ${env.JOB_BASE_NAME}任務(wù)構(gòu)建<font color=red>失敗</font> ,點擊查看[構(gòu)建任務(wù) #${env.BUILD_NUMBER}](http://106.14.185.47:8080/job/${env.JOB_BASE_NAME}/${env.BUILD_NUMBER}/)"""
]
// 1,偵聽 github push 事件
properties([pipelineTriggers([githubPush()])])

pipeline {
    agent any
    // 環(huán)境變量定義。
    environment {
        GIT_REPO = 'http://github.com/vue-ts-vite-temp.git'
    }
    stages {
        // 2,拉取 github 代碼,通過 GitSCM 偵聽 push 事件。
        stage('Pull code') {
            steps {
                checkout(
                    [
                        $class: 'GitSCM',
                        branches: [[name: '*/main']],
                        extensions: [],
                        userRemoteConfigs: [
                            [
                                credentialsId: '381325e4-0f9c-41ea-b5f6-02f8ea2a475a',
                                urlenv.GIT_REPO
                            ]
                        ],
                        changelogtrue,
                        polltrue,
                    ]
                )
            }
        }
        stage('Install and build') 
{
            steps {
                // 3,前面安裝過的 nodejs 插件使用
                nodejs('v14.19.0') {
                    sh 'npm install yarn -g'
                    sh 'yarn install'
                    sh 'yarn build'
                }
            }
        }
        stage('Pack') {
            steps {
                sh 'tar -zcvf dist.tar.gz dist/'
                sh 'rm -rf dist/'
            }
        }
        stage('Deploy') {
            steps {
                // 4,前面下載的 Publish Over SSH 插件的使用
                sshPublisher(
                    publishers: [
                        sshPublisherDesc(
                            configName: 'aliyun-dev',
                            transfers: [
                                sshTransfer(
                                    cleanRemote: false,
                                    excludes'',
                                    execCommand'''
                                        cd /usr/share/nginx/html/
                                        tar -zxvf dist.tar.gz
                                        rm -rf dist.tar.gz
                                    '
'',
                                    execTimeout120000,
                                    flattenfalse,
                                    makeEmptyDirsfalse,
                                    noDefaultExcludesfalse,
                                    patternSeparator'[, ]+',
                                    remoteDirectory'/usr/share/nginx/html/',
                                    remoteDirectorySDFfalse,
                                    removePrefix'',
                                    sourceFiles'dist.tar.gz'
                                )
                            ],
                            usePromotionTimestampfalse,
                            useWorkspaceInPromotionfalse,
                            verbosefalse
                        )
                    ]
                )
            }
        }
    }
    post {
        success {
            // 5,DingTalk 插件的使用。
            dingtalk (
                robot: '1314',
                type'ACTION_CARD',
                title'Jenkins構(gòu)建提醒',
                text: successText,
                btns: [
                    [
                        title: '控制臺',
                        actionUrl'http://106.14.185.11:8080/'
                    ],
                    [
                        title: '項目預(yù)覽',
                        actionUrl'http://github.com/'
                    ],
                ],
                at: []
            )
        }
        failure {
            dingtalk(
                robot: '1314',
                type'ACTION_CARD',
                title'Jenkins構(gòu)建提醒',
                text: failureText,
                btns: [
                    [
                        title: '控制臺',
                        actionUrl'http://106.14.185.11:8080/'
                    ],
                    [
                        title: '項目預(yù)覽',
                        actionUrl'http://github.com/'
                    ],
                ],
                at: []// 這里是手機號多個之間,隔開
            )
        }
    }
}
復(fù)制代碼

這么多內(nèi)容手寫無疑是很難受的,好在 Jenkins 提供了一些幫助工具。訪問地址為:Jenkins地址 + /job + 當(dāng)前任務(wù) + /pipeline-syntax/,例如:http://localhost:8080/job/dev-deploy/pipeline-syntax/,或者進入任務(wù)構(gòu)建頁面,點擊流水線語法進入

pipline3.jpg

進入該頁面后請熟讀并背誦以下三項。重點放到第一項。

pipline4.jpg

回頭看上面的腳本注釋都帶有序號。根據(jù)注釋序號開始解釋。

1,在片段生成器中選擇 properties: Set job properties 生成代碼片段。由于只是使用了 git hook trigger 所以要對生成的片段稍作修改。

pipline5.jpg

2,如果不是為了偵聽 github push 選擇 git: Git 即可,但現(xiàn)在應(yīng)該選擇 checkout: Check out from version control,隨后填寫信息生成代碼即可。

pipline6.jpg

3,選擇 nodejs: Provide Node & npm bin/folder to Path

pipline7.jpg

4,選擇 sshPublisher: Send build artifacts over SSH,像上面流水線一樣配置之后直接生成代碼即可。

pipline8.jpg

5,DingTalk 文檔

總結(jié): 通過插件生成的代碼,稍作組合就成為了完整的配置。但整體難度還是要略高于 Freestyle 任務(wù)。畢竟生成的代碼有部分也不是拿來即用的,并且 Pipline 基本語法一定要有所掌握。不然生成的代碼都不曉得放到哪里合適。

關(guān)于本文

來自:DoubleX

https://juejin.cn/post/7102360505313918983

最后

歡迎關(guān)注【前端瓶子君】??ヽ(°▽°)ノ?
回復(fù)「算法」,加入前端編程源碼算法群,每日一道面試題(工作日),第二天瓶子君都會很認真的解答喲!
回復(fù)「交流」,吹吹水、聊聊技術(shù)、吐吐槽!
回復(fù)「閱讀」,每日刷刷高質(zhì)量好文!
如果這篇文章對你有幫助,在看」是最大的支持
 》》面試官也在看的算法資料《《
“在看和轉(zhuǎn)發(fā)”就是最大的支持


瀏覽 34
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 牛牛成人在线视频| 激情综合在线| 无码一区二区av| 中文字幕第4页| 毛片毛片毛片毛片毛片毛片| 俺来俺也去www色在线观看| 超碰av电影| 2026无码视频| 无码一区二区三区免费| 成人av一区| 国产毛片毛片毛片毛片毛片| 无码免费在线观看视频| 96精品| 色老板在线视频| 欧美色图88| 亚洲男人天堂av| 日韩爱爱免费视频| 一区二区三区日本| 中文字幕五月天| www.五月天婷婷| 天天操夜夜爽| 啪啪网站免费| 亚洲av免费看| 三级网站视频| 欧美国产中文| 日韩最新无码发布| 婷婷开心五月天| 成人二区| 懂色aV| 可以免费看的av| 小h片| 伊人青青操| 成人黄色一级A片| 国产无遮挡又黄又爽在线观看| 大香蕉啪啪| 91亚洲精品视频| 日本综合久久| 欧美午夜成人一区二区三区| 成人小说视频| 男人天堂无码视频| 精品中文视频| 亚洲精品三级在线观看| 成人性生活A级毛片网站| 亚洲精品久久久久久| 视色av| a天堂8在线资源| 俺来俺也去www色在线观看| 大香蕉做爱视频| 操逼三级片| 中文字幕五月久久婷婷| 久久日av| 吴梦梦《女教师时间暂停》| 国产成人高清| 日韩AV在线电影| 国产中文字幕在线视频| 日本高清黄色视频| 伊人一区二区三区| 激情亚洲婷婷| 撒尿BBw搡BBwBBw| 刘玥精品国产一区二区三区| 翔田千里一区二区三区精品播放| 日本免费在线观看视频| 婷婷好色五月天| 瘦精品无码一区二区三区四区五区六区七区八区 | 青青草97国产精品麻豆| 国产三级电影在线观看| 最近中文字幕mv第三季歌词| 伊人狠狠蜜桃亚洲综合| 熟女综合| 蜜桃视频网址| 久久精品久久久久久久| 欧美888| 91国在线| 伊人成人在线视频观看| 天堂网一区二区三区| 天天做天天爱夜夜爽| 亚洲日韩一区二区三区四区| 国产主播精品在线| 五月伊人婷婷| 亚洲性爱AV网站| 国产海角视频| 99re99| 国产福利小视频| 毛片国产| 亚洲中文字幕AV| 亚洲黄色影院| 江苏妇搡BBBB搡BBB| 中文字幕亞洲高清手機版第617| 亚洲成人视频免费观看| 无码四区| 国产色吧| 北京熟妇槡BBBB槡BBBB| 久草香蕉视频| 黄色视频一级| 波多野结衣av在线播放| 免费无码国产| 黄色小视频免费观看| 青青草国产亚洲精品久久| 亚洲成人三级| 亚洲va视频| 草草久久久无码国产专区的优势| 日本高清无码视频| 99热热久久| 中国老女人操逼视频| 成人视频在线观看黄色18| 免费在线观看a片| 一级黄色视频免费看| 超碰女人| 国产成人精品123区免费视频 | 天堂无码视频在线播放| 国产精品免费麻豆| 91网在线观看| 香蕉视频a| 又爽又黄免费网站97双女| 蜜桃无码一区| 99视频+国产日韩欧美| 自慰在线观看网站| 强伦人妻一区二区三区视频| 国产精品一级a毛视频| 成人H在线| 精品无码一区二区三区在线| 91福利网址| 91亚洲精品国偷拍自产在线观看| 欧美亚洲日韩一区二区| 无码欧美成人| 亚洲欧洲av| 国产三级午夜理伦三级| 日韩一级高清| 天堂成人在线| 婷婷五月av| 欧美性网| 久草网站| 色多多毛片| 亚洲综合免费观看高清完整版在线| 中文字幕的色| AV1区二区| 五月丁香天堂| 亚洲综合一区二区三区| 九九热在线精品视频| 亚洲vs无码秘蜜桃| 国产无套进入免费| 中文字幕欧美视频| 国产乱子伦视频国产印度| 91丨国产丨精品丨丝袜| 男人的天堂黄色| 婷婷久久综合久色| 翔田千里被操120分钟| 婷婷综合缴情亚洲另类在线| www99| 国产a毛一级,a毛一级| 黄色小视频在线| 国精产品一二三区| 91av一区| 五月婷婷丁香在线| 欧美日韩在线视频播放| 伊人久色| 亚洲国产成人精品女人| 天天干天天干| 亚洲日韩免费在线观看| 北条麻妃九九九精品视频免费观看| 水蜜桃视频在线播放| 亚洲AV成人一区二区三区不卡| 人妻精品无码| 亚洲免费一级| 黄片高清无码| 久久久网站| 免费av网站| 手机AV网站| 国产在线观看mv免费全集电视剧大全| 北京熟妇搡BBBB搡BBBB电影| 精品码产区一区二亚洲国产| 乱伦综合网| AV免费在线播放| 肏屄在线视频| 久久婷婷五月综合| 中国一级黄色A片| 最美人妖系列国产Ts涵涵| 北条麻妃亚洲无码| 日韩爆乳一区二区三区| aaa久久| 色播婷婷五月天| 99久久99| 久久人妻无码| www九九| 日韩精品A片| 国产三级片在线观看视频| 国产成人自拍在线| 91精品久久久久| 日韩一级一片| 精品人妻一区二区三区日产乱码| 人人操人人操人人操人人操| а√在线中文8| 草在线视频| 婷婷日韩| 国产操女人| 在线观看中文字幕亚洲| 五十路老国产| 另类老妇奶BBBBwBB| 99re热| 国产精品资源| 国产女同在线观看| 天天日天天干天天草| 成人欧美在线观看| 少妇嫩搡BBBB搡BBBB| 欧美成人精品一区二区| 成人性视频Aⅴ| 精品免费一区二区三区四区| 成人AV一区二区三区| 强伦轩一区二区三区四区| 五月综合激情| 6969电视影片最新更新| 少妇高潮一区二区三区99| 婷婷婷色| 日本三级中文字幕| 中文字幕在线观看av| 亚洲天堂av在线观看| 色欲一区二区三区| 骚逼综合网| 欧美性爱视频在线观看| www.骚逼| 日屄在线观看| 欧美成人网站免费在线观看| 女人特级毛片18| 一级成人片在线观看| 韩国gogogo高清在线完整版| 一起草在线视频| 华女与黑人91A∨| 亚洲字幕在线播放| 一级一级a免一级a做免费线看内裤 | 国产精品乱码一区二区三区| 午夜啪啪视频| h片在线观看免费| 夜夜撸| 日韩无码三级视频| AV怡红院| 人人色人人干| 一级无码专区| 亚洲AV女人18毛片水真多| 在线欧美亚洲| 青青草大香蕉| 少妇无码中文| 国产精品1区2区3区| 欧美激情综合网| 午夜探花| 久久成人在线视频| 亚洲有码中文字幕| 毛多水多丰满女人A片| 大香蕉尹人| 乱伦AV网| 欧美婷婷综合| 婷婷五月天激情四射| 国产91综合一区在线观看| www在线播放| 91内射视频| 欧美黄网站| 欧美性爱a视频| 小明看台湾成人永久免费视频网站| 国产精品午夜福利| 亚洲成人福利在线| 美女一级A片| 成人无码日韩| 日鸡吧链接| 精品一区二区三区无码| 好男人WWW一区二区三区| 国产精品成人AV在线| 蜜桃av久久久亚洲精品| 粉嫩99精品99久久久久| 最新无码视频| 操屄视频播放| 午夜福利AV在线| 久久免费视频观看| 中文字幕网在线| 久色婷婷| 91做爱| 国产精品毛片A√一区| 婷婷亚洲精品| 黄色影片在线观看| 日本一级片在线播放| 国产激情一区二区三区| 天天操免费视频| 成人毛片在线播放免费| 牛牛在线精品视频| 女生自慰网站在线观看| 欧美在线成人网| 一级黄色性爱视频| 97人人爽| 熟女人妻一区二区三区免费看| 激情综合网五月| 特级西西WWW888| 日韩潮喷| 国产高潮在线| 色天堂影院| 国产精品免费一区二区三区四区视频| 2022黄片| 国产福利在线| 国产香蕉视频在线播放| 无码人妻精品一区二区三| 欧美黄片AAA| 12——13女人毛片毛片| 九九视频免费在线观看| 在线日韩一区二区| 九色自拍视频| 久色性爱视频| 久久天天拍| 99re热| 天天综合网久久| 91第一页| 99色色| 日日99| 亚洲女人被黑人巨大进入| 5252a我爱haose01我愿 | 免费看三级网站| 国产做受91电影| 人妻少妇视频| 中国精品77777777| 狠狠五月| 亚洲日韩一区二区三区四区 | 在线观看免费欧美操逼视频 | 北条麻妃一区二区三区在线观看 | av福利电影在线| 中文字幕VA| 911亚洲精品| 国产黄色视频在线播放| 国产V在线观看| 国产日韩欧美综合精品在线观看 | 无码插逼| 在线观看毛片网站| 欧洲第一无人区观看| 国产AV影视| 午夜天堂在线| 巜人妻初尝按摩师BD中字| 欧美性爱a视频| 亚洲午夜福利在线| 天天干夜夜操熟女| 国产网址| 轻轻操内射无码| 操逼爽| 激情视频网站| 免费人成视频在线播放| 国模在线| 日本高清免费视频| 国产精品观看| 小小拗女BBw搡BBBB搡| 豆花视频logo| 又粗又硬又爽18级A片| 亚洲AV网址| 中文字幕乱码免费综合久久| 少妇厨房愉情理伦BD在线观看| 欧美成人精品一区二区| xxxxxbbbbb| 午夜探花| 日韩久久婷婷| 强奸乱伦制服丝袜| 婷婷无码成人精品俺来俺去| 久久草视频| 草久在线| 久久理伦| 99re这里只有精品6| 久久精品国产亚洲| 国产丝袜久久| 91香蕉在线观看| 黄页网站视频| 青娱乐网| 亚洲中文AV在线| 欧美黄色片在线观看| AV在线大香蕉| 乱子伦】国产精品| 日产精品久久久| 成人在线精品视频| 免费视频久久久| 日韩无码A片| 人人操人人上| 国产精品成人免费精品自在线观看| 国产黄色片在线免费观看| 99精品在线免费观看| 免费A片在线| 操BAV| 成人欧美一区二区三区在线观看 | 国产精品热| 9l蝌蚪PORNY中文| 俺来也俺就去www色情网| 日p视频在线观看| 国产一区二| 四虎影院污| 国产中文字幕视频| 77777精品成人免费A片| wwwA片| 五月天久久久久| 91成人片| 中文字幕国产AV| 激情人妻在线| 国产精品国产精品| 四川妇搡BBBB搡BBBB| 99九九久久| 午夜精品久久久久久久99热精东| 亚洲免费在线视频观看| 亚洲天堂中文| 天天看天天操| 国产精品丝袜| 免费看欧美日黄片| 久久亚洲综合| 呦呦av| 操bbbb| 国产亚洲视频免费观看| 欧美日韩国产一区二区三区| 亚洲日韩国产成人精品久久| 黄色一区二区三区| 久久一区二区三区四区五区| 亚洲AV自拍| 国产中文视频| 国产综合色网| 岛国无码在线| 国产91探花精品一区二区| 免费v片| 亚洲国产久久| 天天操天天谢| 亚洲三级视频在线观看| 国产精品中文字幕在线观看| 国产熟女视频| 亚洲国产无码在线观看| 精品人妻一区二区三区四区| 一本色道久久综合狠狠躁的推荐 | 河南乱子伦视频国产| 日本三级片网站在线观看| 亚洲精品911| 国产欧美第一页| 久久99深爱久久99精品| 可以免费看av的网站| 北条麻妃一区二区三区-免费免费高清观看 | 国产成人AV片| 欧洲亚洲在线| 三级黄色免费| 成人中文字幕在线| 在线播放91灌醉迷J高跟美女| 91丨露脸丨熟女| 大鸡巴免费视频| 日韩高清无码成人| 91AV在线看| a片视频免费| 女神思瑞精品一区二区三区| 91免费成人| 99久久人妻无码中文字幕系列| 久久久久久亚洲| 91福利视频在线观看| 亚洲日韩网站在线观看| 久久凹凸视频| 中文字幕日韩亚洲| 五月丁香六月情| 亚洲中文字幕2025| 一区二区三区www污污污网站| 日韩免费高清在线视频| 九色国产在线| 日韩无码视频一区二区| 亚洲日韩在线播放| 亚洲精品911| 成人H动漫精品一区二区无码| 伊人激情网| 成人在线不卡| 免费观看黄片视频| 日韩激情视频| 国精产品久拍自产在线网站| 99热青青| 国产精品一区二区三区四区| 日韩A∨视频| 国产亚洲精品久久久波多野结衣| 北条麻妃无码| 毛片一级片| 亚洲成人大片| 成人午夜精品福利免费| www.17c嫩嫩草色蜜桃网站 | 成人免费视频在线观看| 婷婷国产AV| 美女黄视频网站| 久久大香蕉| 夜夜骑夜夜| 国产麻豆一区二区三区| 日韩三级在线免费观看| 九九偷拍| 免费黄色一级电影| 久久草视频在线播放| 99热8| 国产aⅴ激情无码久久久无码| 91人人妻人人爽| 国产一级美女操逼视频免费播放| 91人妻无码精品蜜桃| h视频在线观看网站| 精品黄色毛片| 亚洲V视频| 午夜福利爱爱视频| 国产一精品一aⅴ一免费| 欧美91| 欧美不卡一区二区三区| 无套内射无码| 久草视频在线免费| 成人性爱在线观看| 国产精品蜜| 五月婷婷成人| 国产一区二区免费看| 欧美黄色小视频| 日韩精品免费在线观看| 丰满大爆乳波霸奶| 99久久99九九99九九九| 精品码产区一区二亚洲国产| 亚洲人做受| 77777色| 毛片一级片| 1区2区视频| 怕怕怕视频| 高清无码毛片| 99在线精品视频免费观看20| 69国产成人综合久久精品欧美| 乱子伦一区二区三区视频在线观看 | 国产精品777777| 成人精东影业JDAV3密友| www.人人操| 黄片51| 北条麻妃中文字幕旡码| 手机看片久草| 欧美精品久久久久久| 最新色站| 免费无码网站| 毛片性爱视屏| 免费观看黄色视频| 影音先锋日韩资源| 九九午夜| 中文无码影院| 色天堂色男人| 高清一区二区三区| 亚洲精品人伦一区二区| 日本内射在线播放| 中文字幕资源在线| 久久久精品黄色网址| 成人在线中文字幕| 国产精品无码专区AV免费播放| 亚洲欧美在线视频观看| 摸BBB槡BBBB搡BBB,,,,,| www.狠狠操| 亚洲AV无码精品| 啊啊啊av| 无码人妻一区二区三一区免费n狂飙 | 天天干天天日天天操| 婷婷丁香激情| 69久久久| 在线观看日韩视频| 91操操操| 成人AV在线看| 日韩电影一区| 欧美视频在线一区| 亚洲少妇无码| 91吴梦梦无码一区二区| 国产免看一级a一片成人aⅴ| 成人视频网站18| 中文字幕不卡在线观看| 亚洲怡春院| 亚洲免费看黄| 香蕉污视频| 懂色一区二区三区免费| 国产高清在线视频| 成人特级毛片| 亚洲视频高清无码| 国产操骚逼| 18禁在线看| 欧美视频在线免费| 99这里只有精品| 婷婷伊人綜合中文字幕| 日韩怡春院| 91亚洲精品国偷拍自产在线观看| 亚洲少妇性爱视频| 成人无码小电影| 黄片网站在线观看| 人人看人人射| 专业操老外| 久久另类TS人妖一区二区| 亚洲娱乐在线| 国产黄色电影在线| 99热碰碰热| 国产精品96久久久久久| 性色网| 日韩成人黄色电影| 精品国产久| 欧美亚洲国产日韩| 91天天操| 国产青草视频在线观看| 米奇7777狠狠狠狠| 日本Sm/调教/捆绑/紧缚| 婷婷精品国产a久久综合| 日韩VA| 成人AV三级片| 亚洲AV无码久久寂寞少妇多毛 | 操屄视频网站| 影音先锋av在线资源| 麻豆网站91| 亚洲国产av电影| 水果派成人播放无码| 人妻夜夜爽天天爽三区麻豆AV网站| 日韩在线视频网站| 国产成人一级片| 高清无码视频观看| 成人网站www污污污网站公司| 日韩无码精品一区| 大香蕉色婷婷| 337P大胆粉嫩噜噜噜| 色高清无码免费视频| 操逼欧美| 大黑鸡巴视频| 色婷婷亚洲综合| 久草中文网| 俺来也在线视频| 少妇搡BBBB搡BBB搡HD(| 污视频网站免费在线观看| av啊啊| 52妺嘿嘿午夜福利在线| 欧美区在线观看| 麻豆天美传媒AV果冻传媒| 特级西西444www大胆免费看| 蜜臀久久99精品久久久电影 | 五月丁香免费视频| 国产又爽又黄免费网站在线| 成人精品一区二区无码| 国产aⅴ激情无码久久久无码 | 很很干在线视频| 黄色在线免费观看网站| 国产肏屄| 影音先锋乱伦| 粉嫩av在线| 人人搞人人操| 隸則av| 日韩一区二| 中文字幕在线永久| 久久97人妻AⅤ无码一区| 国产系列精品AV| 91精品午夜少妇| 国产思思99re99在线观看| 欧美日韩免费观看视频| 日日综合网| 日本大香蕉在线视频| 毛片性爱视屏| 婷婷丁香五月在线| 国产免费国产| 国产精品2025| 日本一区二区三区视频在线观看| 福利所导航| 亚洲精品成人无码熟妇在线| 欧美黄片在线免费看| 成人黄网站免费观看| www.777熟女人妻| 亚洲欧美久久久久久久久久久久| 亚洲AV片一区二区三区| 国产一区二区免费在线观看 | 91av一区| 超碰伊人大香蕉| 国产三级免费观看| 九九精品在线视频| 欧洲美一区二区三区亚洲| 麻豆传媒一区二区| 成人午夜福利高清视频| 天天视频国产| 一道本无码在线播放| 亚州操逼片| 国产无遮挡又黄又爽| 欧美成人超碰| AAAAA毛片| 国产91在线观看| 国产又爽又黄免费网站在线看| 亚洲精品国产成人综合久久久久久久久 | 能看的操逼视频| 人人干人妻| 亚洲色图欧美在线| 日韩欧美亚洲一区二区三区| 午夜三级无码| 亚洲视频五区| 2019人人操| 亚洲天堂精品在线| 日韩射| 欧美成人精品在线| 欧美精品日韩在线观看| 91资源在线观看| 成人特级毛片| 西西444WWW大胆无视频软件亮点| A片在线免费看| 激情五月综合网| 中文字幕有码在线观看| 人人摸人人爱| 波多野吉衣视频| 久久久久久麻豆| 国产成人综合亚洲| 高潮91PORN蝌蚪九色| 在线观看免费a片| 久久97人妻AⅤ无码一区| 久久久久久伊人| 国产亚洲色婷婷久久99精品| 欧美日韩亚洲中文字幕| 午夜福利免费| 国产一| 欧美日韩国产成人| 亚洲色诱| 成年人在线观看视频| 免费一级婬片AA片观看| 国产精品探花熟女AV| 日逼老女人| 久久久久久少妇| 亚洲成人不卡| 麻豆黄色| 日本a在线观看| 人人操人人撸| 五月激情综合网| 成人自拍视频| 怡春院综合| 最美人妖系列国产Ts涵涵| 成人福利视频在线| 青青青亚州视频在线| 欧美午夜伦理| 亚洲无码在线视频播放| 操B网址| 日本成人中文字幕| 亚洲无码视频在线播放| 日本人妻中出| 五月丁香婷婷开心| 久草高清视频| 国产成人黄色电影| 人人操人人搞| 中文无码一区| 国产成人精品一区二三区熟女在线 | 在线毛片网站| 亚洲AV无码成人精品区欧洲| 天天干,夜夜操| 日韩人妻无码精品| 日韩黄色A级片| 99精品国产一区二区| 亚洲AV秘无码不卡在线观看| 亚洲人成人无码一区二区三区| 免费播放婬乱男女婬视频国产| 色欲av伊人久久大香线蕉影院| www.911国产| 亚洲综合无码| 一本色道精品久久一区二区三区 | 三级av无码| 熟女视频网站| 91热视频| 91视频美女内射| 无码主播| 亚洲第一黄色视频| 青青草日逼视频| 欧美黄色毛片| 成人无码区免费AV毛片| 欧美一级a| 国产精品无码久久久久成人app | 欧美午夜精品久久久| 影音先锋男人| 婷婷色视频| 婷婷久久综合久| 天天色情| 五月婷婷AV| 中文字幕首页| 永久免费叼嘿| 久操久| 亚洲三级黄色| 国产AV三级片| 国产精品果冻传媒| 精品人妻一区二区三区日产乱码| a免费在线| 亚洲中文久久| 久色国产| 国产精品九九九| 老司机精品视频在线观看| 另类TS人妖一区二区三区| 欧美三级推荐| 琪琪色视频| 18国产免费视频| 奇米影视av| 五月激情婷婷网| 久久国产欧美| 九色PORNY9l原创自拍| 奇米影视亚洲春色| 日本久久婷婷| 欧美自拍第一页| 久久草在线播放| 亚洲在线无码视频| 欧美福利视频| 人人干AV| 99久久伊人| 99视频在线看| 9I成人免费版| 亚洲高清无码免费在线观看| 日本中文字幕在线免费观看| 天堂a在线| 9i看片成人免费视频| 激情婷婷| av影音先锋| 日韩在线一区二区三区四区| 国产成人精品二三区麻豆| 亚洲精品一区二区三区| 先锋影音一区二区三区| 俺去也在线播放| 亚洲女人视频| 免费看黃色AAAAAA片| 成人在线免费观看国产| 青青操色| 夜夜夜叫天天天做| 人人草在线视频| 美女网站黄| 午夜无码福利视频| NP玩烂了公用爽灌满视频播放 | 91熟女视频| 亚洲无码高清电影| 韩国人妻无码| 一区在线观看视频| 日批视频| 69国产成人精品二区| 337P人体美鮑高清| 国产在线黄片| 欧美性爱操逼视频| 蜜臀精品色无码蜜臀AV| 做爰视频毛片下载蜜桃视频。 | 亚洲午夜福利电影| 开心激情网站| 国产一级婬乱片免费| 欧美性色网| 国产色av| 婬乱欧美一二三区| 无码国产精品一区二区视频| 插插插视频| 国产精品久久久久久久久| 五月天福利网| а√在线中文8| 黄页网站在线免费观看| 亚洲高清无码免费在线观看| av福利在线| 亚洲视频免费在线| 在线一区二区三区| 大荫蒂精品另类| 国产精品美女视频| 国产乱妇无码毛片A片在线看下载| 青娱乐国产AV| 大香蕉免费网| 久久无码高清视频| 看一级黄色毛片| 俺也去官网| 色综合久久天天综合网| 成人黄色视频网站| 婷婷日韩在线| 国产第一页在线播放| 黄网站免费看| 99久久人妻精品免费二区| 日韩无码中文字幕视频| 国产成人精品无码免费| 午夜午夜福利理论片在线播放| 欧美久操| 一区二区视频在线观看| 亚洲日韩欧美性爱| 骚骚网| 91人人妻人人澡人人爽| 日本三级片在线| 国产精品久久久久久久久借妻 | 欧美黄片免费在线观看| 欧美色小说| 97免费视频在线观看| 久久精品亚洲无码| 777AV| 99久久人妻无码中文字幕系列| 一级黄色网| 人人看人人干| 一区四区视频| 精品成人A片久久久久久不卡三区 免费看成人A片无码照片88hⅤ | 波多野吉衣高清无码| 日本精品一区二区三区四区的功能 | 亚洲视频中文字幕| 日韩亚洲中文在线| www.AV在线| 国产成人av在线| 91在线无码精品秘网站| 天啪| 亚洲www.| 男人的天堂视频在线观看| 一区二区三区四区精品视频| 日本黄色视频在线观看| 亚洲天堂2016| 无码探花| 大乳奶一级婬片A片| 国产精品人妻无码久久久郑州天气网| 日韩一区二区免费视频| 火淫玖玖免费精品| 蜜桃传媒一区二区亚洲A| BBW老熟女BBw| 免费无码成人| 亚洲国产久久| 北条麻妃久久| 日本A一级片| 欧美精品区| 大香蕉精品欧美色综合2025| 午夜视频在线看| 四虎AV| 草b网站| 亚洲日韩免费观看| 国产三级| 91丝袜在线| 亚洲天堂一区二区| 亚洲AV无码成人精品久久久| 无码专区在线观看| 污网站在线观看|