2022年11月21日 星期一

ubuntu 20.04.5安裝harbor

安裝ubuntu 20.04.5後

設定固定IP

sudo vi /etc/netplan/00-installer-config.yaml

例如:

# This is the network config written by 'subiquity'

network:

  version: 2

  ethernets:

    eth0:

      dhcp4: false

      addresses: [192.168.0.50/24]

      routes:

      - to: default

        via: 192.168.0.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]


重啟網路設定

sudo netplan apply


進入ubuntu

sudo apt-get update && sudo apt-get upgrade -y


更改系統的時區

看目前時區

timedatectl


修改時區

sudo timedatectl set-timezone Asia/Taipei


安裝docker

更新軟件存儲庫

sudo apt update


下載依賴項:允許您的 Ubuntu 20.04 系統通過 HTTPS 訪問 Docker 存儲庫

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common


添加 Docker 的 GPG 密鑰

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


安裝 Docker 存儲庫

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


安裝最新的 Docker

先再次更新存儲庫

sudo apt update


安裝最新的 Docker 版本

sudo apt-get install docker-ce


驗證 Docker 安裝

docker --version


啟用 Docker 服務

sudo systemctl start docker

sudo systemctl enable docker


檢查服務的狀態

sudo systemctl status docker


在沒有 Sudo 的情況下運行 Docker 命令

創建docker組

sudo groupadd docker


鍵入以下命令(確保將[user]替換 為您的用戶名,但別保留[])

sudo usermod -aG docker [user]

例如

sudo usermod -aG docker sct


啟用新設置

su - [user]

例如

su - sct


檢查以確認用戶現在是 docker 組的一部分

id -nG


測試

docker run hello-world


-----------------------------------------------------------------

安裝Docker Compose

sudo curl -L https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose


設定執行權限

sudo chmod +x /usr/local/bin/docker-compose


看版本

docker-compose --version


----------------------------------------------------------------

安裝Harbor

要先安裝 Docker 與 Docker Compose

獲得的安裝包位置

wget https://github.com/goharbor/harbor/releases/download/v2.6.2/harbor-offline-installer-v2.6.2.tgz


解壓縮

tar xvf harbor-offline-installer-v2.6.2.tgz


修改harbor.yml

cd harbor

sudo cp harbor.yml.tmpl harbor.yml

sudo vi harbor.yml

修改hostname、先將happs拿掉、登入admin密碼及資料庫密碼

hostname: 192.168.137.200

#https:

  # https port for harbor, default is 443

  #  port: 443

  # The path of cert and key files for nginx

  #  certificate: /your/certificate/path

  #  private_key: /your/private/key/path

harbor_admin_password: Windows1

database:

  password: Windows1


修改完成後執行 sudo ./install.sh


完成後開啟瀏覽器http://192.168.137.200登入

也可以docker login 192.168.137.200

重開機後要輸入sudo docker-compose up -d 


-------------------------------------------------------------

使用HTTPS

建置放證書的目錄

sudo mkdir -p /data/certs

cd /data/certs


產生CA證書

創建key文件:

sudo openssl genrsa -out ca.key 4096

產生證書

sudo openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/CN=192.168.137.200" -key ca.key -out ca.crt


產生服務器證書

創建私鑰

sudo openssl genrsa -out server.key 4096

產生證書簽名請求

sudo openssl req -new -sha512 -subj "/CN=192.168.137.200" -key server.key -out server.csr


產生harbor倉庫主機的證書

產生一個x509 v3擴展文件

sudo vim v3.ext


authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

extendedKeyUsage = serverAuth

subjectAltName = IP:192.168.137.200



使用此v3.ext文件為您的Harbor主機產生證書

sudo openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt


配置和安裝證書

將server.crt文件和server.key文件拷貝到此目錄/data/cert下

因為我前面一直是在這個路徑操作的就省略了該步驟

修改harbor的配置文件 修改以下配置項

root@eb7023:/data/certs>sudo vim ~/harbor/harbor.yml

hostname: 192.168.137.200

https:

port:443

certificate: /data/certs/server.crt

private_key: /data/certs/server.key


可以重啟一下harbor倉庫了,注意這里要CD到harbor解壓目錄

cd /home/sct/harbor/

sudo ./prepare


停止當前運行的harbor

sudo docker-compose down -v


後台運行的harbor

sudo docker-compose up -d


為docker配置harbor認證

將server證書cp到docker所在的機器固定目錄中

sudo mkdir -p /etc/docker/certs.d/192.168.137.200

cd /data/certs/

sudo cp server.crt /etc/docker/certs.d/192.168.137.200/server.crt


然后docker直接login即可

docker login 192.168.137.200


將 Harbor 設置為系統服務

編輯文件 sudo vim /lib/systemd/system/harbor.service


[Unit]

Description=Harbor

After=docker.service systemd-networkd.service systemd-resolved.service

Requires=docker.service

Documentation=http://github.com/vmware/harbor


[Service]

Type=simple

Restart=on-failure

RestartSec=5

ExecStart=/usr/local/bin/docker-compose -f /home/sct/harbor/docker-compose.yml up

ExecStop =/usr/local/bin/docker-compose -f /home/sct/harbor/docker-compose.yml down


[Install]

WantedBy=multi-user.target


sudo systemctl start harbor

sudo systemctl enable harbor



------------------------------------------------------------------------------------

測試建置Harbor倉庫主機是否可行

以瀏覽器登入

https://192.168.137.200

在左邊點選項目-->選新建項目-->填入項目名稱(例如ithome),確定即可


透過 Docker login 到 https://192.168.137.200

下載我本來放在 Docker hub 上的 Image,並透過 docker tag 將其重新命名

docker pull hwchiu/netutils

docker tag hwchiu/netutils 192.168.137.200/ithome/netutils:latest


將新命名的 docker image 推向我們建置的 Harbor container registry

docker push 192.168.137.200/ithome/netutils:latest


瀏覽器登入192.168.137.200 看netutils是否在ithome項目目錄中


-------------------------------------------------------------------------

安裝掃描器(掃漏洞)

先停止服務

sudo systemctl stop harbor


安裝掃描器

cd /home/sct/harbor

sudo ./install.sh --with-notary --with-trivy --with-chartmuseum


啟動服務

sudo systemctl start harbor


登入瀏覽器,進入項目,點選項目名稱,再點選鏡像倉庫名稱,選工作,選掃描即可


沒有留言:

張貼留言