溫馨提示×

溫馨提示×

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

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

Harbor安裝配置全過程

發(fā)布時間:2020-07-04 10:50:24 來源:網(wǎng)絡 閱讀:3777 作者:lzlutao 欄目:云計算

一、準備一臺Linux主機

我用了一臺VMware虛擬機,配置如下:

IP:192.168.1.79

安裝時注意一定要將最大的空間分給/data,因為Harbor默認會使用這個分區(qū)

官網(wǎng)硬件要求

Harbor安裝配置全過程

1、開SSH

systemctl enable sshd

2、關閉SELINUX

vi /etc/sysconfig/selinux

修改下邊紅字部分

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three two values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

3、安裝rz

yum -y install lrzsz

之后上傳文件一定要用-be參數(shù)(其中-b是--binary用二進制的方式上傳,-e是--escape強制escape所有控制字符),否則上傳的文件不完整

rz –be

4、安裝wget

yum -y install wget

5、更換yum源,用于提速yum

(1)備份yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

(2)下載新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清理緩存

yum clean all

重新生成緩存

yum makecache

6、關閉防火墻

systemctl stop firewalld

systemctl disable firewalld

?

二、安裝Harbor

官網(wǎng)教程:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

1、安裝必須的組件

官網(wǎng)軟件要求見下,實際安裝最新版本即可

Harbor安裝配置全過程

安裝python

CentOS7默認自帶已安裝好

安裝docker

由于Docker已分為社區(qū)版和企業(yè)版,要裝最新版本只能選擇社區(qū)版,所以不要直接用yum install docker –y安裝,否則安裝的是舊版的Docker

(1)安裝所需的軟件包 yum-utils、device-mapper-persistent-data和 lvm2

yum remove docker-latest-logrotate docker-logrotate docker-selinux dockdocker-engine

yum install -y yum-utils device-mapper-persistent-data lvm2

(2)國內(nèi)部分用戶可能無法連接docker官網(wǎng)提供的源,這里提供阿里云的鏡像節(jié)點供測試使用

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

rpm --import http://mirrors.aliyun.com/docker-ce/linux/centos/gpg

yum makecache fast

yum -y install docker-ce

啟動docker和檢查運行狀態(tài)

systemctl start docker

systemctl status docker

將服務加入到啟動項

systemctl enable docker

查看版本

Harbor安裝配置全過程

安裝docker-compose

編譯安裝pip

https://pypi.org/project/setuptools/

yum install unzip -y

unzip setuptools-40.4.3.zip

cd setuptools-40.4.3

python setup.py install

https://pypi.org/project/pip/

tar -xf pip-18.1.tar.gz

cd pip-18.1

python setup.py install

加速pip

cd ~

mkdir .pip

ls ~/.pip

vi ~/.pip/pip.conf

寫入

[global]

index-url = http://mirrors.aliyun.com/pypi/simple/

?

[install]

trusted-host=mirrors.aliyun.com

pip安裝docker-compose

pip install docker-compose

pip install --upgrade docker-compose

查看版本

docker-compose -v

Harbor安裝配置全過程

2、安裝Harbor

(1)從這里下載:https://github.com/goharbor/harbor/releases。PS:不×××無法下載

Harbor安裝配置全過程

一定要下載offline離線安裝包:https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz

(2)解壓

tar xvf harbor-offline-installer-v1.6.1.tgz

移動解壓后的harbor目錄到/data/app/,因為/data分區(qū)是劃分出來的

mv harbor /data/app/

(3)編輯vi harbor.cfg文件

cd /data/app/harbor

cp harbor.cfg harbor.cfg.bak

vi harbor.cfg

內(nèi)容:

hostname = 192.168.1.79

ui_url_protocol = http

max_job_workers = 10

customize_crt = off

ssl_cert = /data/cert/server.crt

ssl_cert_key = /data/cert/server.key

secretkey_path = /data

admiral_url = NA

log_rotate_count = 50

log_rotate_size = 200M

http_proxy =

https_proxy =

no_proxy = 127.0.0.1,localhost,ui,registry

email_identity =

email_server = smtp.mydomain.com

email_server_port = 25

email_username = sample_admin@mydomain.com

email_password = abc

email_from = admin <sample_admin@mydomain.com>

email_ssl = false

email_insecure = false

harbor_admin_password = *******

auth_mode = ldap_auth

self_registration = off

token_expiration = 60

project_creation_restriction = everyone

db_host = postgresql

db_password = root123

db_port = 5432

db_user = postgres

redis_host = redis

redis_port = 6379

redis_password =

redis_db_index = 1,2,3

clair_db_host = postgresql

clair_db_password = root123

clair_db_port = 5432

clair_db_username = postgres

clair_db = postgres

clair_updaters_interval = 12

uaa_endpoint = uaa.mydomain.org

uaa_clientid = id

uaa_clientsecret = secret

uaa_verify_cert = true

uaa_ca_cert = /path/to/ca.pem

registry_storage_provider_name = filesystem

registry_storage_provider_config =

registry_custom_ca_bundle =

解釋:

原來沒注釋的參數(shù)不要注釋掉,否則下邊一步不通過。留默認即可

hostname:配置主機名稱,不可以設置127.0.0.1,localhost這樣的主機名,可以是IP或者域名

ui_url_protocol:指定使用HTTP協(xié)議還是HTTPS協(xié)議

Email settings:郵箱設置,option配置,只在首次啟動生效,可以登陸UI后修改

harbor_admin_password:設置管理員的初始密碼,只在第一次登錄時使用

auth_mode:用戶認證模式,默認是db_auth,也可以使用ldap_auth驗證。

db_password:使用db需要指定連接數(shù)據(jù)庫的密碼

self_registration:是否允許自行注冊用戶,默認是on,新版本可以在圖形界面中修改。

max_job_workers:最大工作數(shù),默認是10個

customize_crt:是否為token生成證書,默認為on

ssl_cert:nginx cert與key文件的路徑, 只有采用https協(xié)議是才有意義

ssl_cert:nginx cert與key文件的路徑, 只有采用https協(xié)議是才有意義

secretkey_path:The path of secretkey storage

admiral_url:Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone

clair_db_password:未啟用calir服務,但解壓目錄下的"./prepare"文件中要檢查以下相關參數(shù)配置,不能注釋,否則環(huán)境準備檢查不能通過,報"ConfigParser.NoOptionError: No option u'clair_db_password' in section: u'configuration' "相關錯誤;或者在"./prepare"中注釋相關檢查與定義,但需要注意,文件中的關聯(lián)太多,推薦修改"harbor.cfg"文件即可

ldap_url:ladp相關設置,如未采用ldap認證,但解壓目錄下的"./prepare"文件中要檢查以下相關參數(shù)配置,不能注釋,否則環(huán)境準備檢查不能通過,報"ConfigParser.NoOptionError: No option u'ldap_timeout' in section: u'configuration' "相關錯誤;或者在"./prepare"中注釋相關檢查與定義,但需要注意,文件中的關聯(lián)太多,推薦修改"harbor.cfg"文件即可

ldap_scope:

Harbor安裝配置全過程

self_registration:默認開啟自注冊,off為關閉

token_expiration:token有效時間,默認30minutes

project_creation_restriction:創(chuàng)建項目權限控制,默認是"everyone"(所有人),可設置為"adminonly"(管理員)

verify_remote_cert:與遠程registry通信時是否采用驗證ssl

其他使用默認值

(4)確認無誤后,使用./install.sh命令開始安裝

Harbor安裝配置全過程

Harbor安裝配置全過程

4、啟動和停止(必須在docker-compose.yml目錄下運行命令,如/data/app/Harbor目錄)

停止Harbor

docker-compose stop

Harbor安裝配置全過程

啟動Harbor

docker-compose start

Harbor安裝配置全過程

5、登錄測試

http://192.168.1.79

初始密碼:admin/Harbor12345

Harbor安裝配置全過程

登錄后的頁面

Harbor安裝配置全過程

使用普通用戶登錄后創(chuàng)建一個新項目

Harbor安裝配置全過程

項目名稱:sonarqube-xywg

Harbor安裝配置全過程

創(chuàng)建完畢

Harbor安裝配置全過程

6、上傳鏡像

在需要上傳鏡像的服務器上修改docker倉庫連接方式為http,否則默認https無法連接。這里以192.168.1.155上我修改的sonarqube鏡像為例

vi /etc/docker/daemon.json

加入

{

"insecure-registries" : ["192.168.1.79"]

}

Harbor安裝配置全過程

重啟Docker生效

systemctl restart docker

重啟Docker之前記得先停止所有容器,如果忘了停止容器,則在重啟完Docker后使用docker restart <CONTAINER ID>命令啟動容器,不要docker rm <CONTAINER ID>,否則容器修改的內(nèi)容都被刪除了

再次登錄試試

docker login 192.168.1.79

Harbor安裝配置全過程

開始上傳操作

docker commit -m 'xywg' 4da3dcf3c046 sonarqube-xywg

docker tag sonarqube-xywg 192.168.1.79/operation/sonarqube-xywg

docker push 192.168.1.79/operation/sonarqube-xywg

特別舉例:將Python官方dokcer鏡像上傳到本地倉庫

docker tag docker.io/python:3.7.2 192.168.1.79/public/python:3.7.2

docker push 192.168.1.79/public/python:3.7.2

解釋:

docker commit -m 鏡像信息 <CONTAINER ID> 新鏡像名[:版本號等tag標簽]

#從現(xiàn)有容器中生成新鏡像

docker tag 源鏡像名[:版本號等tag標簽] Docker倉庫Host/項目名/目標鏡像名[:版本號等tag標簽]

#改變鏡像標簽,標記本地鏡像是已經(jīng)被歸入Docker倉庫的鏡像??梢栽赿ocker commi的時候直接標記為Docker倉庫的鏡像

docker push 鏡像名[:版本號等tag標簽] #將本地的鏡像上傳到鏡像倉庫,注意每次push前需docker login 192.168.1.79確認是否已經(jīng)登錄了私有倉庫,push后需docker logout 192.168.1.79登出私有倉庫。如果push到公共項目必須登錄admin賬號才可以,如果用了非admin賬戶push到公共項目會出如下錯誤:denied: requested access to the resource is denied

Harbor安裝配置全過程

不指定版本號等tag標簽時,Docker會自動幫我們補上latest的tag。這個latest其實在使用中不是最新的意思,而是默認值(defalut)的意思。

執(zhí)行結果:

Harbor安裝配置全過程

進入Harbor的項目中查看

Harbor安裝配置全過程

查看已上傳的sonarqube鏡像

Harbor安裝配置全過程

PS:Harbor有分級概念:

(1)最上邊是項目(項目名):實際操作中按照每個不同的項目名稱來建項目,交由不同項目的負責人維護

Harbor安裝配置全過程

(2)接下來是項目中的鏡像倉庫(鏡像名):鏡像倉庫中的鏡像名按照項目名或者jar包war名來命名,但要求命名一次不能隨意更改

Harbor安裝配置全過程

(3)最后是倉庫中不同版本的鏡像(tag版本標簽):必須標明版本號,不能空或者用lastest(下圖lastest是演示)

Harbor安裝配置全過程

向AI問一下細節(jié)

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

AI