1.Jfrog-Artifactory介紹
先貼出Jfrog-Artifactory官網地址
這玩意說白了就是一個還算比較好用的產物存儲倉庫,升級版FTP,帶界面。
這次已開源閹割版作為案例,買不起企業(yè)版,一提這個企業(yè)版就流口水......
(檸檬精酸一下:有錢大佬買得起企業(yè)版的話,那這就是一個牛逼克拉斯的玩意,賊全,賊好用)
一般用來存儲Jenkins的構建包,且支持RestfulApi,反正就很好用就對了。
2.安裝Jfrog-Artifactory
官網文檔
使用Docker安裝省時,省事。
docker run --name \
artifactory --restart=unless-stopped \
-d \
-p 8081:8081 \
-p 8082:8082 \
-v /data/artifactory:/var/opt/jfrog/artifactory \
releases-docker.jfrog.io/jfrog/artifactory-oss:latest
開放對應端口
firewall-cmd --zone=public --add-port=8081-8082/tcp --permanent
firewall-cmd --reload
等待Docker跑起來就直接訪問界面 http://192.168.1.110:8082
默認密碼是admin:password

image.png
點進去后按照新手引導進行配置一下就好了。
3.配置Jfrog-Artifactory
3.1 配置上傳大小限制

image.png

image.png
這里自己根據項目情況按需添加,寫0代表沒得限制
3.2 配置上傳賬號
這個新建一個用戶,新建一個組,將用戶加入到這個組中,在組上配置權限就好可以

image.png
3.3 配置存儲庫

image.png

image.png
看到這個界面我就覺得有錢真棒,好氣啊,沒錢得我只能選擇第一個
把倉庫的key輸入一下點擊完成就好了,其他的高級玩法就是點擊每個值上面的小問號去研究了。
3.4 手動上傳一個文件

image.png
4. 配置NGINX代理
如果在上傳到最后會有一丟丟卡頓就需要加上proxy_request_buffering off;這一個配置。
4.1 Https
## add ssl entries when https has been set in config
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
ssl_session_cache shared:SSL:1m;
ssl_prefer_server_ciphers on;
## server configuration
server {
listen 443 ssl;
listen 80 ;
server_name yourdomain.com;
if ($http_x_forwarded_proto = '') {
set $http_x_forwarded_proto $scheme;
}
## Application specific logs
## access_log /var/log/nginx/yourdomain.com-access.log timing;
## error_log /var/log/nginx/yourdomain.com-error.log;
rewrite ^/$ /ui/ redirect;
rewrite ^/ui$ /ui/ redirect;
chunked_transfer_encoding on;
client_max_body_size 0;
location / {
proxy_read_timeout 2400s;
proxy_pass_header Server;
proxy_cookie_path ~*^/.* /;
proxy_pass http://<artifactory-ip>:8082;
proxy_next_upstream error timeout non_idempotent;
proxy_next_upstream_tries 1;
proxy_set_header X-JFrog-Override-Base-Url $http_x_forwarded_proto://$host:$server_port;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location ~ ^/artifactory/ {
proxy_pass http://<artifactory-ip>:8081;
}
}
}
4.2 Http
server {
listen 80;
server_name jfrog.ronds.top;
if ($http_x_forwarded_proto = '') {
set $http_x_forwarded_proto $scheme;
}
rewrite ^/$ /ui/ redirect;
rewrite ^/ui$ /ui/ redirect;
chunked_transfer_encoding on;
client_max_body_size 0;
proxy_request_buffering off; # 這個就是防止卡頓的
proxy_http_version 1.1;
location / {
proxy_read_timeout 2400s;
proxy_pass_header Server;
proxy_cookie_path ~*^/.* /;
proxy_pass http://<artifactory-ip>:8082;
proxy_next_upstream error timeout non_idempotent;
proxy_next_upstream_tries 1;
proxy_set_header X-JFrog-Override-Base-Url $http_x_forwarded_proto://$host:$server_port;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location ~ ^/artifactory/ {
proxy_pass http://<artifactory-ip>:8081;
}
}
}
4.3 K8S中使用Ingress
如果你是在K8S中使用,需要在yaml文件中加上這兩個配置

image.png
5.使用腳本上傳一個文件
在界面上獲取腳本

image.png
這里就是上傳腳本了,可以使用任意語言去上傳,但是作為產物倉庫,最長使用的還是curl.
這個密碼可以是明文的也可以是加密后的,在左邊一個Tab(Configure)那邊輸入密碼后這這一個Tab中就能看到帶密碼的命令了。