国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

自動化運維CICD

這篇具有很好參考價值的文章主要介紹了自動化運維CICD。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

概述

為什么持續(xù)集成和發(fā)布可以提高效率

如何實現(xiàn)

1、在linux服務器安裝部署代碼倉庫

2、安裝jenkins

使用shell腳本實現(xiàn)CICD

使用pipeline實現(xiàn)CICD

使用Blue Ocean實現(xiàn)CICD


概述

自動化運維CICD

持續(xù)集成(Continuous Integration,CI)和持續(xù)發(fā)布(Continuous Delivery,CD,又稱持續(xù)交付)是經常放在一起提及的兩個概念,專有詞組CI/CD Pipeline 用來描述他們同時存在的持續(xù)集成與發(fā)布自動化管線。
持續(xù)集成是一種編程實踐,它讓開發(fā)團隊通過實現(xiàn)對代碼一系列小的改動,高頻率地提交到版本管理源。現(xiàn)代程序需要依賴大量平臺與工具鏈,需要一種行之有效的方式去反復確認每個改動的正確性。持續(xù)集成在技術上的目標是建立一個自動化、工序穩(wěn)定一致的工作飾程。這種流程包括編譯代碼、打包編譯輸出,以及測試最終生成的結果。這種穩(wěn)定一致并可以反復執(zhí)行的流程,讓開發(fā)人員可以更加頻繁地提交改動,從而提升合作效率和代碼質量。通過持續(xù)集成,團隊可以快速的從一個功能到另一個功能,簡而言之,敏捷軟件開發(fā)很大一部分都要歸功于持續(xù)集成。

持續(xù)發(fā)布是在持續(xù)集成之后的一系列動作。持續(xù)發(fā)布自動化交付生成的產品到各個目標環(huán)境,如測試環(huán)境、審查環(huán)境和生產環(huán)境等,以用于不同的目的。除了生產環(huán)境外,多數(shù)的團隊都會面對各種不同的環(huán)境,如開發(fā)人員使用的開發(fā)環(huán)境、測試人員使用的測試環(huán)境。持續(xù)發(fā)布可以保證各種修改以一種穩(wěn)定、符合預期的方式交付到這些環(huán)境上。在發(fā)布的過程中,除了把持續(xù)集成的最終產物復制到目標環(huán)境外,持續(xù)交付通常還會跟外部的Web API、數(shù)據(jù)庫和其他服務通信,讓新的改動最終在目標環(huán)境生效。

為什么持續(xù)集成和發(fā)布可以提高效率

持續(xù)集成與發(fā)布有一套與之相伴的版本管理實踐來指導團隊之間的合作。而通過加入大量的自動化流程,持續(xù)集成與發(fā)布極大地減少了試錯的成本和人為的錯誤。
1.更加高效的合作模式:持續(xù)集成作為一種實踐,依賴于對工作流程的管理和自動化。當使用持續(xù)集成時,開發(fā)人員高頻率地提交他們的代碼到版本管理源中,有些團隊甚至會對提交的頻率作具體的要求,如每天一次。這種要求的原因是比起一大段需要數(shù)天甚至一個月寫成的代碼,一段段小規(guī)模的代碼改動更容易定位質量問題。另外,通常代碼是對整個團隊的人開放的,如果開發(fā)人員的提交周期非常短,那么就可以避免出現(xiàn)多人共同編輯同一段代碼,最終產生沖突的情況。當用戶實現(xiàn)持續(xù)集成時,通常用戶會從版本管理源的配置開始。雖然用戶高頻率地提交代碼,但是一個新特性或者一段對錯誤的修復往往由多次代碼提交組成,這些提交代碼的時間跨度有長有短。團隊需要通過版本管理和持續(xù)集成的結果來選擇和判斷哪些改動可以更新到生產環(huán)境。
? ? ? ? 能對多個并行開發(fā)的特性實施有效管理的其中一種方式是版本管理系統(tǒng)中的分支管理。分支策略有很多種,其中之一被稱為Git流程,它定義了一系列基于源碼分支的合作流程,如新的代碼應該放在什么分支,如何命名,如何合并入其他主干分支,如開發(fā)分支、測試分支和最終生產分支。對于需要長時間開發(fā)的特性,也會使用專門的副主干分支,用于其他更細小分支的并入。當一個新特性完整之后,這個新特性代表的分支將會被合并入主干分支。這種工作方式最大的挑戰(zhàn)是當大量特性在并行開發(fā)的時候,如何管理這些分支的合并。
2.減少試錯成本:在持續(xù)集成與發(fā)布的概念出現(xiàn)之前,對于代碼的改動,開發(fā)人員需要自行把編譯結果進行一系列的編譯打包操作,在業(yè)內缺乏統(tǒng)一的指導思想去優(yōu)化整體的流程。這些冗長的重復性勞動極大地打擊了開發(fā)人員的積極性,開發(fā)人員從而傾向于一次性提交大量的代碼,以減少測試和部署的頻率。由于測試的頻率降低了,一個錯誤往往要在更長的開發(fā)周期后才會被發(fā)現(xiàn),這種“一次性提交大量的代碼”的偏好反而又增加了開發(fā)人員的其他時間成本,被稱之為試錯成本。
3.減少人為錯誤:對于大量重復性的工作,在一些流程嚴謹?shù)墓纠?,也許會通過詳細的文檔來描述每一個步驟應該如何正確地執(zhí)行。但是這遠遠無法減少人為的錯誤。正如那句計算機領域的諺語“如果一個人工操作的步驟存在犯錯的可能,那么它必然會有犯錯的一天”。減少人為犯錯的空間,與盡可能自動化一切是兩個在工程領域相互關聯(lián)、相互促進的主題。
????????持續(xù)發(fā)布與集成,通過腳本和配置把所有的流程都完全自動化,最大限度地減少人為犯錯的空間。而且由于整個流程穩(wěn)定、可重復,對于流程或者具體腳本中出現(xiàn)的錯誤,用戶都可以輕易對其進行改進和測試,而不會出現(xiàn)人們“隨機犯錯”的情況。

如何實現(xiàn)

1、在linux服務器安裝部署代碼倉庫

持續(xù)集成需要一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構建過程的素材庫,Gitlab是依賴于Git的遠程代碼倉庫,類似于GitHub、Gitee,不同的是GitHub、Gitee的公網上代碼倉庫, Gitlab是可以私有化部署的免費遠程代碼倉庫,官網:https://about.gitlab.com/

1、準備服務器
	10.0.0.7   gitlab  

2、下載安裝包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm

3、安裝GitLab
# 安裝依賴包
[root@gitlab /opt]# yum install -y curl policycoreutils-python openssh-server perl
# 關閉防火墻
[root@gitlab /opt]# systemctl disable --now firewalld
# 關閉selinux
[root@gitlab /opt]# sed -i 's#enforcing#disabled#g' /etc/sysconfig/selinux
# 臨時關閉
[root@gitlab /opt]# setenforce 0
# 安裝
[root@gitlab /opt]# yum install gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm 
# 修改配置文件
[root@sean ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.7'
nginx['listen_port'] = 80
# 刷新配置(默認啟動)
gitlab-ctl reconfigure

?安裝后訪問gitlab私庫http://10.0.0.7/,創(chuàng)建用戶組、用戶及項目,其中組內成員有如下幾種權限

1.Guest:可以創(chuàng)建issue、發(fā)表評論,不能讀寫版本庫 
2.Reporter:可以克隆代碼,不能提交,QA、PM 可以賦予這個權限 
3.Developer:可以克隆代碼、開發(fā)、提交、push,普通開發(fā)可以賦予這個權限 
4.Maintainer:可以創(chuàng)建項目、添加tag、保護分支、添加項目成員、編輯項目,核心開發(fā)可以賦予這個 權限 
5.Owner:可以設置項目訪問權限 - Visibility Level、刪除項目、遷移項目、管理組成員,開發(fā)組組 長可以賦予這個權限

自動化運維CICD

自動化運維CICD

2、安裝jenkins

持續(xù)集成需要一個持續(xù)集成服務器, Jenkins 就是一個配置簡單和使用方便的持續(xù)集成服務器。依賴于Java開發(fā)的,由各種組件組成的一個自動化部署工具。

Jenkins自由風格主要的部署步驟:參數(shù)化構建->源代碼管理->構建->構建后操作

1、安裝Java
[root@localhost opt]# yum install java-1.8.0-openjdk* -y

2、安裝Jenkins
[root@localhost opt]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@localhost opt]# yum install -y jenkins-2.249.1-1.1.noarch.rpm
[root@localhost opt]# systemctl start jenkins

3、登陸密碼
[root@localhost opt]# cat /var/lib/jenkins/secrets/initialAdminPassword
edfcd0f0432a4a868dc32da0c34f7f3a

4、安裝插件
[root@localhost updates]# tar -xf /opt/plugins.tar.gz  -C /var/lib/jenkins/

5、Jenkins 優(yōu)化
[root@localhost updates]# cd /var/lib/jenkins/updates
[root@localhost updates]# sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@localhost updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

# 最后,系統(tǒng)管理 --> 插件管理 --> 高級,把站點升級改為國內插件下載地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

?創(chuàng)建用戶

自動化運維CICD

創(chuàng)建權限組

自動化運維CICD

自動化運維CICD

?分配權限

自動化運維CICD

由于jenkins構建項目中的源碼是從git拉取,因此需要配置憑證方能拉取成功

  • 系統(tǒng)管理 ---> ?Manage Credentials ---> 系統(tǒng)憑證 ---> 全局憑證 ---> 添加憑證 ---> Username with Password(遠程倉庫的用戶密碼)
  • 系統(tǒng)管理 ---> ?Manage Credentials ---> 系統(tǒng)憑證 ---> 全局憑證 ---> 添加憑證 ---> ssh username with private key(需先在遠程倉庫設置中配置jenkins服務器公鑰,再填入jenkins服務器私鑰)

自動化運維CICD

配置完后就可以拉取代碼到工作目錄,然后進行構建和發(fā)布,工作目錄默認在/var/lib/jenkins/workspace

自動化運維CICD

自動化運維CICD

如果是發(fā)布maven工程,需要在jenkins服務器安裝java,maven,并在全局工具配置java,在系統(tǒng)配置中配置maven,再安裝maven集成插件

自動化運維CICD

自動化運維CICD

?自動化運維CICD

持續(xù)集成需要一個自動構建過程,從檢出代碼、編譯構建、運行測試、結果記錄、測試統(tǒng)計等都是自動完成的,無需人工干預,如下幾種方式均可實現(xiàn)

使用shell腳本實現(xiàn)CICD

直接執(zhí)行腳本,在jenkins服務器進行編譯,在部署服務器進行發(fā)布,若批量部署,可以使用ansible

自動化運維CICD

#!/bin/bash
set -xe
function process() {
  if [ $1 -ne 0 ]; then
    echo "deploy fail"
    exit 1
  fi  
}
echo "構建開始"
git checkout $GIT_TAG
mvn clean package -D skipTests
process $?
sshpass -p '部署服務器密碼' scp target/*.jar root@10.0.0.7:/application
process $?
sshpass -p "部署服務器密碼" ssh -o StrictHostKeyChecking=no root@10.0.0.7 "cd /application;chmod 777 *.jar;kill -9  `ps -ef|grep java|grep 8081|awk '{print $2}'`;nohup java -jar *.jar --server.port=8081>deploy.log &"
process $?
echo "deploy success"
set +x
echo "構建結束"

?自動化運維CICD

使用pipeline實現(xiàn)CICD

創(chuàng)建一個流水線

自動化運維CICD

自動化運維CICD

編寫pipeline腳本

pipeline {
   agent any

   stages {
      stage('pull code') {
         steps {
            checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitee', url: 'https://gitee.com/chenqianqi/web_demo.git']])
         }
      }
      stage('code checking') {
         steps {

            script {
                 //引入SonarQubeScanner工具
                scannerHome = tool 'SonarQube-Scanner'
            }
            //引入SonarQube的服務器環(huán)境
            withSonarQubeEnv('sonarqube') {
                sh "${scannerHome}/bin/sonar-scanner"
            }
         }
      }
      stage('build project') {
         steps {
            sh 'mvn clean package'
         }
      }
      stage('publish project') {
         steps {
            deploy adapters: [tomcat8(credentialsId: 'c4512fa0-4a20-41ff-a86b-4f38092baeea', path: '', url: 'http://10.0.0.7:8084/')], contextPath: null, war: 'target/*.war'
         }
      }
   }
   post {
         always {
            emailext(
               subject: '構建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
               body: '${FILE,path="email.html"}',
               to: '291887741@qq.com'
            )
         }
   }
}

自動化運維CICD

使用Blue Ocean實現(xiàn)CICD

自動化運維CICD文章來源地址http://www.zghlxwxcb.cn/news/detail-452824.html

到了這里,關于自動化運維CICD的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于云計算的自動化部署與自動化運維:提高運維效率

    作者:禪與計算機程序設計藝術 隨著互聯(lián)網技術的飛速發(fā)展,網站流量日益增長,用戶對網站功能及其可用性的需求也越來越高,越來越多的人開始擔憂網站的安全和穩(wěn)定性。因此,如何快速、準確地處理網站故障、迅速恢復網站服務并保障網站高可用,成為企業(yè)必須重點關

    2024年02月11日
    瀏覽(23)
  • 【二、自動化測試】為什么要做自動化測試?哪種項目適合做自動化?

    【二、自動化測試】為什么要做自動化測試?哪種項目適合做自動化?

    自動化測試是一種軟件測試方法,通過編寫和使用自動化腳本和工具,以自動執(zhí)行測試用例并生成結果。 自動化旨在替代手動測試過程,提高測試效率和準確性。 自動化測試可以覆蓋多種測試類型,包括功能測試、性能測試、安全測試等,以確保軟件系統(tǒng)在各個方面的質量

    2024年02月02日
    瀏覽(28)
  • 【Golang 接口自動化00】為什么要用Golang做自動化?

    【Golang 接口自動化00】為什么要用Golang做自動化?

    目錄 為什么使用Golang做自動化 最終想實現(xiàn)的效果 怎么做? 寫在后面 ?資料獲取方法 順應公司的趨勢學習了Golang之后,因為沒有太多時間和項目來實踐,怕止步于此、步Java缺少練習遺忘殆盡的后塵,決定利用工作之余的時間把此前用Python的寫的自動化使用golang進行重構。

    2024年02月15日
    瀏覽(37)
  • 企業(yè)為什么要做自動化測試?我們該如何學習自動化測試?

    企業(yè)為什么要做自動化測試?我們該如何學習自動化測試?

    作為一名大廠測試開發(fā),編寫自動化腳本,儼然成為一種必備的技能。 為什么要做自動化測試? 那企業(yè)或者是我們測試人員為什么要做自動化測試呢? 如果在前兩年,可能10個測試員有6個都是做的功能測試,但隨著測試技術的發(fā)展以及測試工作的深入,傳統(tǒng)的手工測試已經

    2024年02月10日
    瀏覽(25)
  • 為什么UI自動化難做?—— 關于Selenium UI自動化的思考

    為什么UI自動化難做?—— 關于Selenium UI自動化的思考

    在快速迭代的產品、團隊中,UI自動化通常是一件看似美好,實際“雞肋”(甚至絕大部分連雞肋都算不上)的工具。原因不外乎以下幾點: 通常只是聽說過,就想去搞UI自動化的團隊,心里都認為「UI自動化」等于「減少人工 提高效率」,這固然沒什么大錯,但是他們也會

    2024年02月03日
    瀏覽(20)
  • DevOps?自動化運維!

    DevOps?自動化運維!

    by: 雪月三十 DevOps流程圖 DevOps是Dev和Ops的結合 Dev(developer開發(fā)) Ops(operation運維) 在企業(yè)中dev和ops是有一種天然的矛盾,dev要求的是快速迭代,給公司挖掘出商業(yè)的價值,而ops則是強調的穩(wěn)定,不讓你如此快的開發(fā),以穩(wěn)定為主,不希望動代碼(if no problem, don’t touch it),所

    2024年02月12日
    瀏覽(27)
  • Ansible自動化運維

    Ansible自動化運維

    目錄 前言 一、概述 常見的開源自動化運維工具比較 二、ansible環(huán)境搭建 三、ansible模塊 (一)、hostname模塊 (二)、file模塊 (三)、copy模塊 (四)、fetch模塊 (五)、user模塊 (六)、group模塊 (七)、cron模塊 (八)、yum_repository模塊 (九)、yum模塊 (十)、service模塊

    2024年02月09日
    瀏覽(30)
  • 為什么需要自動化測試

    為什么需要自動化測試

    自動化的優(yōu)勢: 1.自動化可以代替手工大量地重復的工作,測試可以把大量的時間放在用例設計和新功能上邊 2.自動化可以大量提升回歸測試效率,特別適合敏捷開發(fā) 3.自動化可以大量地利用無人值守的時間去執(zhí)行用例,特別適合非工作是愛你執(zhí)行測試,工作時間分析測試用

    2024年02月13日
    瀏覽(22)
  • 運維自動化bingo前端

    運維自動化bingo前端

    項目目錄結構介紹 項目創(chuàng)建完成之后,我們會看到bingo_web項目其實是一個文件夾,我們進入到文件夾內部就會發(fā)現(xiàn)一些目錄和文件,我們簡單回顧一下里面的部分核心目錄與文件。 2.3、項目執(zhí)行流程圖 要在Vue.js項目中指定域名和端口,你通常需要配置Vue CLI提供的 devServer ,

    2024年02月20日
    瀏覽(21)
  • 【自動化運維】playbook劇本

    【自動化運維】playbook劇本

    (1)Tasks:任務,即通過 task 調用 ansible 的模板將多個操作組織在一個 playbook 中運行 (2)Variables:變量 (3)Templates:模板 (4)Handlers:處理器,當changed狀態(tài)條件滿足時,(notify)觸發(fā)執(zhí)行的操作 (5)Roles:角色 運行playbook Ansible提供了很多種循環(huán)結構,一般都命名為wi

    2024年02月15日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包