CentOS7.9 部署本地私有倉庫 (Harbor)
CentOS7.9 部署本地私有倉庫 (Harbor)
主機環境
pw 4核8G 系統盤600GB*1 管理網絡卡:ens33 192.168.1.15
浮動IP網路:ens34 dhcp
2. 系統版本
CentOS-7-x86_64-Minimal-2009.iso
3. 選擇
最小化->英文->標準安裝
4. 分割槽
/boot 1000M 其餘/
5. 設定主機名
hostnamectl set-hostname pw
6. 安裝常用軟體包
yum install vim wget net-tools yum-utils
-y
7. 關閉防火牆
systemctl stop firewalld.service
systemctl
disable firewalld.service
firewall-cmd --state
8. 關閉selinux
sed -i '/^SELINUX=.*/c SELINUX=disabled'
/etc/selinux/config
sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g'
/etc/selinux/config
grep --color=auto '^SELINUX'
/etc/selinux/config
setenforce 0
9. 主機名:
echo "
192.168.1.15
pw.zixuanyun.com
">>/etc/hosts
10. 配置ssh
sed -i 's/#ClientAliveInterval
0/ClientAliveInterval 60/g' /etc/ssh/sshd_config
sed -i
's/#ClientAliveCountMax 3/ClientAliveCountMax 60/g' /etc/ssh/sshd_config
sed
-i '/^#UseDNS/s/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
systemctl
restart sshd && systemctl status sshd
11. 配置yum映象倉庫
yum-config-manager --add-repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
12. 安裝epel
yum install epel-release -y
yum clean all
&& yum makecache fast
13. 安裝基礎軟體包
yum install device-mapper-persistent-data lvm2
-y
14. 安裝docker
yum list docker-ce --showduplicates|sort -r
#查詢docker的版本
yum install docker-ce-19.03.8 -y #安裝指定版本
15. 配置加速
mkdir -p /etc/docker
tee
/etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://3wk75oh9.mirror.aliyuncs.com"]
}
EOF
16. 啟動docker服務
systemctl daemon-reload &&
systemctl enable docker && systemctl restart docker && systemctl
status docker
17. 安裝docker-compose服務
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #下載指定的安裝包
18. 將下載後的檔案放到 /usr/local/bin 目錄下,並新增執行許可權
chmod +x
/usr/local/bin/docker-compose
19. 檢視版本
docker-compose -version
20. 下載harbor軟體包
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
21. 解壓到指定的目錄
tar xvf
harbor-offline-installer-v2.4.1.tgz -C /home/ && cd
/home/harbor/
22. 修改harbor.yml配置檔案
mv harbor.yml.tmpl harbor.yml
#修改檔名
#檢視修改
cat harbor.yml
.....
.....
# DO NOT use
localhost or 127.0.0.1, because Harbor needs to be accessed by external
clients.
hostname: 盤位,zixuanyun.com ##########修改域名
########### 關閉http訪問方式
#http: ##########該行註釋掉
#
port for http, default is 80. If https enabled, this port will redirect to https
port
#port: 80 ##########改行註釋掉
########### 開啟https訪問方式
# https related
config
https:#########取消註釋
# # https port for harbor, default is
443
port: 443 #########取消註釋
# # The path of cert and key files for
nginx
certificate: /home/harbor/certs/harbor.crt
#########取消註釋,填寫實際路徑
private_key: /home/harbor/certs/harbor.key
#########取消註釋,填寫實際路徑
.....
.....
# Remember Change the admin password from UI
after launching Harbor.
harbor_admin_password: admin123 #########
admin使用者登入密碼
# Harbor DB configuration
database:
# The password for
the root user of Harbor DB. Change this before any production use.
password: root123 ######### 資料庫密碼
# The default data volume
data_volume: /home/harbor/data
#########目錄自己建立,根據實際情況填寫
如下圖:
23. 建立存放資料目錄
mkdir /home/harbor/data
mkdir -p
/home/harbor/certs /home/harbor/data
24. 使用openssl建立自簽證書並生成證書,並儲存到 /home/harbor/certs
目錄下
mkdir /home/harbor/certs
openssl req -newkey rsa:4096 -nodes -sha256
-keyout /home/harbor/certs/harbor.key -x509 -out /home/harbor/certs/harbor.crt
-subj /C=CN/ST=BJ/L=BJ/O=DEVOPS/CN=pw.zixuanyun.com -days 3650
# 表達意思
req 產生證書籤發申請命令
-newkey 生成新私鑰
rsa:4096
生成祕鑰位數
-nodes 表示私鑰不加密
-sha256 使用SHA-2雜湊演算法
-keyout
將新建立的私鑰寫入的檔名
-x509 簽發X.509格式證書命令。X.509是最通用的一種簽名證書格式。
-out
指定要寫入的輸出檔名
-subj 指定使用者資訊
-days 有效期(3650表示十年)
25. 檢視證書
ls /home/harbor/certs
如下:
harbor.crt harbor.key
26. 啟動harbor服務
./install.sh #執行啟動指令碼
27. 新增本地域名解析訪問 #目錄位置C:\Windows\System32\drivers\etc\hosts 記事本開啟 新增 192.168.1.15 pw.zixuanyun.com 的解析記錄
28. 訪問 #https://pw.zixuanyun.com/ 或者 https://192.168.1.15:80 使用者名稱 admin 密碼 admin123
29. 建立使用者
30. 建立專案 專案名 kolla
31. 新增訪客
31. 新增倉庫地址
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://3wk75oh9.mirror.aliyuncs.com"],
"insecure-registries": ["https://pw.zixuanyun.com"]
}
32. 重啟docker服務
systemctl daemon-reload && systemctl
restart docker && systemctl status docker
# 其他伺服器登入映象倉庫,預設管理員使用者名稱:admin 密碼:admin123
# 登入地址
# 詳細登入方式:docker login -u 使用者 -p 密碼 伺服器IP:埠
docker login https://pw.zixuanyun.com
輸出如下:
# 預設管理員使用者名稱:admin 密碼:admin123
Username:
admin
Password:
WARNING! Your password will be stored unencrypted in
/root/.docker/config.json.
Configure a credential helper to remove this
warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
如圖:
33. 重啟harbor服務
cd /home/harbor/
docker-compose
stop
systemctl stop docker
systemctl daemon-reload
systemctl start
docker
docker-compose start
如圖
#方法1:
下載映象到本地
docker pull kolla/centos-source-almanach-api:train
給映象打tag標籤
docker tag kolla/centos-source-almanach-api:train pw.zixuanyun.com/kolla/centos-source-almanach-api:train
推送映象到harbor下的kolla專案目錄下
docker login https://pw.zixuanyun.com admin admin123
docker push pw.zixuanyun.com/kolla/centos-source-almanach-api:train