1.Jfrog-Artifactory介绍
先贴出Jfrog-Artifactory官网地址
这玩意说白了就是一个还算比较好用的产物存储仓库,升级版FTP,带界面。
这次已开源阉割版作为案例,买不起企业版,一提这个企业版就流口水......
(柠檬精酸一下:有钱大佬买得起企业版的话,那这就是一个牛逼克拉斯的玩意,贼全,贼好用)
一般用来存储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
点进去后按照新手引导进行配置一下就好了。
3.配置Jfrog-Artifactory
3.1 配置上传大小限制
image.pngimage.png
这里自己根据项目情况按需添加,写0代表没得限制
3.2 配置上传账号
这个新建一个用户,新建一个组,将用户加入到这个组中,在组上配置权限就好可以
image.png
3.3 配置存储库
image.pngimage.png
看到这个界面我就觉得有钱真棒,好气啊,没钱得我只能选择第一个
把仓库的key输入一下点击完成就好了,其他的高级玩法就是点击每个值上面的小问号去研究了。
3.4 手动上传一个文件
image.png4. 配置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中就能看到带密码的命令了。
网友评论