中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

工欲善其事,必先利其器 ——DevOps中如何管理工具包

發布時間:2020-08-19 06:12:38 來源:ITPUB博客 閱讀:335 作者:JFrog杰蛙科技 欄目:開發技術
一、背景
作為DevOps交付流水線的開發者,為支持CI/CD中各項任務的自動化,都需要依賴多種包管理工具來下載各種相關的工具,比如針對產生最終交付件的構建過程,就需要在構建流程的第一步,自動地把相關工具,如Curl、wget、Maven、Gradle、npm等等,下載到CI服務器。這些工具的下載,通常都需要依靠對應的公網服務器和包管理工具來支持。而這樣通過公網來下載工具,有時會遇到穩定性的問題,也就是所謂的環境問題,導致工具下載失敗,進而導致構建任務的失敗。因此,我們需要引入新的技術來克服這些問題,保證工具包下載的穩定和可靠。

二、工具包管理的痛點——缺乏穩定性

通常,我們會使用各種各樣的包管理工具來幫助我們下載和管理這些工具包,如Windows上的Chocolatey,Mac/Linux上的Homebrew,還有npm、Yum、Debian、Docker等等。可是,有時我們通過這些包管理工具來下載工具包時,會碰到意外的5xx服務器錯誤。而更多的時候,通過這些包管理工具來下載會非常的慢。這些問題在我們使用自動化構建工具(如Travis CI、Jenkins、Gitlab CI,等等)來實現持續集成CI的時候,會被成千上百倍地放大。一種解決辦法就是在碰到這些環境問題時,通過手動運行構建的方式進行補救,當然,這只是指標不治本。同時,在網絡訪問有限制的時候,如很多金融企業都會采用的網絡隔離,根本不可能去下載這些公網服務器上的工具包。

三、解決方案——使用JFrog Artifactory的遠程倉庫

JFrog Artifactory作為全語言制品倉庫,其遠程倉庫可以作為公網服務器的本地代理和緩存。當我們通過其遠程倉庫來下載所需的工具包時,Artifactory首先檢查在本地的緩存中是否已經存在。如果有,直接返回該工具包;如果沒有,Artifactory將會代理到公網服務器去下載相應的工具包,并緩存到本地,以供后續的下載使用。
利用Artifactory的遠程倉庫作為下載前述工具包的代理和緩存,能夠使得DevOps流程中的各個環節,如前面描述的持續集成流程,更加的迅速和穩定。在有網絡隔離要求的環境中,如金融企業的研發/生產環境,Artifactory可以幫助技術人員建立自己的企業級單一可信源。
下面,我們將通過示例為大家一一展示,Artifactory的遠程倉庫是如何為不同種類的工具包提供服務的。

四、示例一——Chocolatey

當使用Choco為Windows系統下載Gradle的時候,我們經常會碰到類似下面這樣的503錯誤,從而導致構建失敗:

解決的方法:我們在Artifactory里定義一個Nuget類型的遠程倉庫,利用它作為通過Choco包管理工具下載的來源。
第一步:配置Artifactory遠程倉庫
在Artifactory里創建一個Nuget類型的遠程倉庫,其主要參數如下:
· 倉庫名:choco
· Url: https://chocolatey.org
第二步:安裝Choco包
· 用匿名安裝的命令
choco install <package-name> -s <artifactory-url>/api/nuget/choco
· 使用帶用戶認證的方式
choco install <package-name> -s <artifactory-url>/api/nuget/choco
-u <artifactory-user> -p <artifactory-password>

五、示例二——Homebrew

和Chocolatey類似,也可以用Artifactory來支持Brew的下載:
第一步:配置Artifactory遠程倉庫
在Artifactory里創建通用(Generic)類型的遠程倉庫:
· 倉庫名:homebrew
· Url: https://homebrew.bintray.com
第二步:設置“HOMEBREW_ARTIFACT_DOMAIN”環境變量
· 匿名訪問:
set HOMEBREW_ARTIFACT_DOMAIN=<artifactory-url>/homebrew
· 帶用戶認證的訪問:
set HOMEBREW_ARTIFACT_DOMAIN=<artifactory-user>:<artifactory-password>@<artifactory-url>/homebrew
第三步:安裝
之后再通過  brew install命令安裝,就會訪問Artifactory的本地緩存了。

六、示例三——Yum

本節將介紹如何利用Artifactory的遠程倉庫來使用Yum下載RPM包。
第一步:配置Artifactory遠程倉庫
在Artifactory里創建一個RPM類型的遠程倉庫:
· 倉庫名:yum
· Url:http://mirror.centos.org/centos/<version>/os/<architecture>
o 例如:http://mirror.centos.org/centos/7.6.1810/os/x86_64
第二步:創建yum的配置
創建下述文件:/etc/yum.repos.d/artifactory
· 匿名訪問時,文件內容為:
[artifactory]HERE name=artifactory
baseurl=https://<artifactory-url>/yum
enabled=1 gpgcheck=0
· 帶用戶認證時,文件內容為:
[artifactory] name=artifactory
baseurl=https://<artifactory-user:<artifactory-password>@<artifactory-url>/yum
enabled=1 gpgcheck=0
之后正常使用yum命令就可以從Artifactory的本地緩存下載RPM包了。

七、示例四——Docker

本節將介紹如何利用Docker命令從Artifactory的遠程倉庫來下載Docker鏡像。
第一步:配置Artifactory遠程倉庫
在Artifactory里創建Docker類型的遠程倉庫:
· 倉庫名:docker
· Url: https://registry-1.docker.io/
第二步:登錄
用下述命令登錄Artifactory的Docker倉庫:
Docker login <your docker domain>
其中<your docker domain>的寫法可以參考Artifactory中docker倉庫對應的”Set Me Up”顯示的設置。
第三步,拉取鏡像
執行下述命令,從Artifactory的緩存拉取Docker鏡像:
docker pull <your docker domain>/<docker image>:<docker tag>
當然,針對Docker應用,你可以使用JFrog提供的免費版鏡像中心——JCR(JFrog Container Registry,https://jfrog.com/container-registry/),來管理自己的Docker鏡像。

八、總結

在DevOps流程當中,我們需要下載很多工具包,來支持整個流程的自動化運轉。然而。直接從外網下載這些工具包,經常會碰到環境問題,進而影響整個DevOps流程的效率和可靠性。
Artifactory通過其遠程倉庫的設置和全語言制品支持的能力,能夠幫助我們建立各種工具包的本地源,從而使得DevOps的流程更加迅速和穩定。本文還列出了幾種典型類型工具包的配置方法。
更多精彩內容可以專注我們的在線課堂
微信搜索公眾號:jfrogchina 獲取課程通知
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南投县| 合阳县| 凉城县| 营山县| 三穗县| 开阳县| 台山市| 浦城县| 海淀区| 衡阳市| 卢龙县| 炎陵县| 合水县| 五莲县| 玉林市| 务川| 兴城市| 江津市| 司法| 五寨县| 揭西县| 双桥区| 蒲城县| 永德县| 兰州市| 定兴县| 深水埗区| 怀仁县| 禄劝| 崇文区| 临沭县| 乌拉特后旗| 静安区| 五寨县| 雅安市| 瓦房店市| 玛多县| 海阳市| 军事| 龙口市| 金阳县|