当前位置: 首页 > news >正文

研发效能DevOps: Ubuntu 部署 JFrog 制品库

目录

一、实验

1.环境

2.Ubuntu 部署 JFrog 制品库 

3.Ubuntu 部署 postgresql数据库

4.Ubuntu 部署 Xray

5. 使用JFrog 增删项目

二、问题

1.Ubuntu 如何通过apt方式部署 JFrog 制品库

2.Ubuntu 如何通过docker方式部署 JFrog 制品库

3.安装jdk报错

4.安装JFrog Artifactory报错

5.JFrog Artifactory 启动报错

6.启动artifactory镜像报错

7.HELM 方式如何安装JFrog

8.安装JFrog报错

9.dpkg如何删除已有项目

10.JFrog有哪些服务命令


一、实验

1.环境

(1)主机

表1 主机

主机架构版本IP备注
master1K8S master节点1.23.1192.168.204.102

需求部署JFrog Artifactory - 对二进制文件、制品和依赖项进行通用管理

node1K8S node节点1.23.1 192.168.204.104需求部署XRAY- 进行开源漏洞扫描,包括策略和监视

(2) Termius连接主机

(3)查看系统版本

cat /etc/os-release 

master1

node1

(4) 查看K8S集群

kubectl get node
kubectl get node -o wide

(5)查看docker版本

docker -v

master1

node1

2.Ubuntu 部署 JFrog 制品库 

(1)查阅

https://jfrog.com/download-legacy/https://jfrog.com/open-source/

最新版为7.84.12

(2)关闭防火墙或者开放服务端口

#关闭防火墙
sudo ufw disable #查看防火墙状态
sudo ufw status#开启防火墙
sudo ufw enable#开放8081、8082端口
sudo ufw allow 8081/tcp
sudo ufw allow 8082/tcp#重启防火墙
sudo ufw reload

(3)检查服务器配置

nproc #检查处理器 cores
free -m #检查内存大小
df -h # 确认文件系统挂载,数据盘默认挂载/var/opt
ulimit -a # 确认 ulimit 是否满足要求
date # 确认时间同步
hostname # 确认主机名(artifactory 自动获取为 node name) 
hostname -i # 确认主机名对应 ip(artifactory 自动获取为 node ip)

(4)下载

选择一个稳定版的Debian安装

弹出界面

点击下载


(5)安装

dpkg -i jfrog-artifactory-pro-7.41.4

(6)修改Artifactory配置文件

vim /opt/jfrog/artifactory/var/etc/system.yaml
……id: "master1"ip: "192.168.204.102"
……

(7)修改systemd文件

vim /etc/systemd/system/artifactory.service

通过Environment=START_TMO=120定义中添加更长的超时时间

修改PIDFile路径为指定路径:/run/artifactory.pid

(8) 重新加载配置文件

systemctl daemon-reload

(9) 生成随机数并写入master.key中

cd /opt/jfrog/artifactory/var/etc/security
touch master.key
openssl rand -hex 16 > master.key #以下部署集群时需要
touch join.key
openssl rand -hex 16 > join.key 

  (10)授权:

chown -R artifactory:artifactory /opt/jfrog/artifactory/var/log

(11)启动服务和查看日志

1)启动服务
systemctl start artifactory.service && systemctl enable artifactory.service2)查看日志,如下图启动成功 
tail -f /var/opt/jfrog/artifactory/log/console.log3)查看服务状态
systemctl status artifactory.service

启动

查看日志

查看服务状态

查看端口

lsof -i:8081

(12)访问

http://ip:8081初始用户名:admin
初始密码:password

进入系统

http://192.168.204.102:8082/ui/login/

(13)初始化设置

输入账号密码

开始设置

重设密码

需要输入授权文件

申请授权

https://www.jfrogchina.com/platform/free-trial/

选择私有部署(登录账号需要企业邮箱)

设置访问地址

http://192.168.204.102:8082

跳过代理设置

选择类型

根据自身需求选择

完成

(14)查看界面

(15)获取xray相关验证信息

在User Management->setting->输入password->点击unlock

解锁

显示Artifactory的Join Key和JFrog URL

3.Ubuntu部署 postgresql数据库

(1)创建文件存储库配置

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

(2)导入存储库签名密钥

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

(3)更新软件包列表

sudo apt-get update

(4)安装

sudo apt-get -y install postgresql-13

(5)启动并查看服务

1)配置开机自启动
systemctl enable postgresql2)启动postgresql
systemctl start postgresql3)查看postgresql状态
systemctl status postgresql

(6)创建用户与数据库,授予用户权限

1)进入数据库:
sudo -u postgres psql2)创建xray用户
CREATE USER xray WITH PASSWORD 'password';3)创建xraydb库
CREATE DATABASE xraydb WITH OWNER=xray ENCODING='UTF8'; 4)授权库给用户 
GRANT ALL PRIVILEGES ON DATABASE xraydb TO xray;

(7)修改数据库配置与访问IP,允许远程访问

vim  /etc/postgresql/13/main/postgresql.conf

vim /etc/postgresql/13/main/pg_hba.conf

(8)重启postgresql

sudo systemctl restart postgresql

4.Ubuntu 部署 Xray

(1)node节点修改配置文件

永久修改同一时间打开文件数上限

1)修改/etc/security/limits.conf文件
vim /etc/security/limits.conf2)在limits.conf文件中插入如下两行设置 (CentOS 开头设置为*,Ubuntu需要设置为用户)
root soft nofile 100000
root hard nofile 100000
root hard nproc 100000
root hard nproc 100000
//* - nofile 100000 也可以用这一行代替上面的两行3)处理非图像登录
在下面的两文件中加入:DefaultLimitNOFILE=100000vim /etc/systemd/user.conf 
vim /etc/systemd/system.conf 4)重启
reboot5)确认
输入 ulimit -n ,查看系统级是否修改成功
输入 su - root -c 'ulimit -aHS' -s '/bin/bash'  查看用户级是否修改成功
输入 cat /proc/[PID]/limits   查看进程级是否修改成功

重启

确认

(2)查阅

https://jfrog.com/download-legacy/?product=xray&installer=rpm

最新版为3.96.1

(3)下载

选择一个稳定版,类型为debian

点击下载

(4)解压

tar -xvf jfrog-xray-3.33.3-deb.tar.gz

(5)安装

cd jfrog-xray-3.33.3-deb
./install.sh

默认安装路径

输入Artifactory的JFrog URL

输入Artifactory的Join Key

输入本机IP

单节点输入n

连接外部数据库输入n

依次输入pg数据库地址、用户、密码

安装成功

完整安装记录:

root@node1:~/jfrog-xray-3.33.3-deb# ./install.shBeginning JFrog Xray setupThis script will install Xray and its dependencies.
After installation, logs can be found at /root/jfrog-xray-3.33.3-deb/install.log
[WARN] Running with 3GB Total RAM. Recommended value: 4GB
Running system diagnostics checks, logs can be found at [/root/jfrog-xray-3.33.3-deb/systemDiagnostics.log]Installation Directory (Default: /var/opt/jfrog/xray): The JFrog URL allows Xray to connect to a JFrog Platform Instance.
(You can copy the JFrog URL from Admin > Security > Settings)
JFrog URL: http://192.168.204.102:8082
Attempt to connect JFrogURL succeededThe Join key is the secret key used to establish trust between services in the JFrog Platform.
(You can copy the Join Key from Admin > Security > Settings)
Join Key: For IPv6 address, enclose value within square brackets as follows : [<ipv6_address>]
Please specify the IP address of this machine (Default: 192.168.204.104): 192.168.204.104Are you adding an additional node to an existing product cluster? [y/N]: nThe installer can install a PostgreSQL database, or you can connect to an existing compatible PostgreSQL database
(https://service.jfrog.org/installer/System+Requirements#SystemRequirements-RequirementsMatrix)
If you are upgrading from an existing installation, select N if you have externalized PostgreSQL, select Y if not.
Do you want to install PostgreSQL? [Y/n]: nProvide the database connection details
PostgreSQL url. Example: [postgres://<IP_ADDRESS>:<PORT>/xraydb?sslmode=disable]: postgres://192.168.204.102:5432/xraydb?sslmode=disableDatabase username (If your existing connection URL already includes the username, leave this empty): xrayDatabase password (If your existing connection URL already includes the password, leave this empty): Database connection successfulInstalling/Verifying RabbitMQ dependencies (this may take several minutes)...
Installing missing esl-erlang dependencies requires internet access, proceeding with installation...Xray InstallationInstalling/Verifying Xray (/root/jfrog-xray-3.33.3-deb/xray/xray.deb) (this may take several minutes)...PostgreSQL InstallationInstallation complete. Installation log can be found at [/root/jfrog-xray-3.33.3-deb/install.log]Start Xray with:
> systemctl start xray.serviceCheck Xray status with:
> systemctl status xray.serviceInstallation directory was set to /opt/jfrog/xray
You can find more information in the log directory /opt/jfrog/xray/var/logSystem configuration templates can be found under /opt/jfrog/xray/var/etc
Copy any configuration you want to modify from the template to /opt/jfrog/xray/var/etc/system.yaml

(6)启动服务

systemctl start xray.service
systemctl status xray.service

(7)查看日志

tail -f /var/opt/jfrog/xray/log/console.log

(8)JFrog查看服务

目前只有1个

(9)刷新Arifactory,会弹出一个Getting Started页面

(10)输入Xray的license

这里可以选第一个,把之前的授权复制过来

下一步,这里会卡主

原因如下

也可以自行申请

https://www.jfrogchina.com/xray/

5. 使用JFrog 增删项目

(1)新建项目

(2)新建

(3)完成

(4)分配到本地

显示已分配

(5)分配成员

查看已分配成员

(6)项目概览


 

(7)修改上传大小

选择左下角Artifactory

选择Settings

默认大小为100M

修改

(8) 上传制品

大小为1.98GB

已上传

(9) 删除项目

无法删除

先删除资源

确认

删除成功

继续删除已有仓库

删除

删除成功

此时完整项目可以删除成功

二、问题

1.Ubuntu 如何通过apt方式部署 JFrog 制品库

 查看java版本

java -version

(3)安装java

sudo apt update
sudo apt install -y default-jdk

再次查看版本

java -version

(4)将 MariaDB 数据库服务器存储库添加到系统中

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s --

(5)安装 MariaDB 服务器和客户端软件包

sudo apt update
sudo apt install mariadb-server mariadb-client -y

(6)启动数据库服务

sudo systemctl enable --now mariadb

(7)添加JFrog Artifactory存储库

echo "deb https://releases.jfrog.io/artifactory/artifactory-debs xenial main" | sudo tee -a /etc/apt/sources.list.d/artifactory.list;

查看

(8)导入存储库 GGP 秘钥

curl -fsSL  https://releases.jfrog.io/artifactory/api/gpg/key/public|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifactory.gpg

(9)更新

sudo apt update

(10)安装JFrog Artifactory

sudo apt install jfrog-artifactory-oss

完整记录:

root@master1:~# sudo apt install jfrog-artifactory-oss
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:gir1.2-goa-1.0
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:jfrog-artifactory-oss
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 116 个软件包未被升级。
需要下载 1,117 MB 的归档。
解压缩后会消耗 2,087 MB 的额外空间。
获取:1 https://releases.jfrog.io/artifactory/artifactory-debs xenial/main amd64 jfrog-artifactory-oss amd64 7.84.12 [1,117 MB]
已下载 1,117 MB,耗时 29分 23秒 (634 kB/s)                                                                                                          
正在选中未选择的软件包 jfrog-artifactory-oss。
(正在读取数据库 ... 系统当前共安装有 158907 个文件和目录。)
准备解压 .../jfrog-artifactory-oss_7.84.12_amd64.deb  ...
dpkg-query: 没有找到与 artifactory 相匹配的软件包
Checking if group artifactory exists...
Group artifactory doesn't exist. Creating ...
Checking if user artifactory exists...
User artifactory doesn't exist. Creating ...
Checking if artifactory data directory exists
Removing tomcat work directory
正在解压 jfrog-artifactory-oss (7.84.12) ...
正在设置 jfrog-artifactory-oss (7.84.12) ...
Adding the artifactory service to auto-start... DONE************ SUCCESS ****************
The Installation of Artifactory has completed successfully.Note: We recommend that you use Artifactory with an external PostgreSQL database.For details about how to configure the database, refer tohttps://jfrog.com/help/r/jfrog-installation-setup-documentation/postgresql-for-artifactoryTo run Artifactory with any database other than PostgreSQL (embedded Derby,MySQL, Oracle, Microsoft SQL Server and MariaDB),before running Artifactory,you are required to set the allowNonPostgresql parameter as true.For more information, refer tohttps://jfrog.com/help/r/jfrog-installation-setup-documentation/choose-the-right-databaseStart Artifactory with:
> systemctl start artifactory.serviceCheck Artifactory status with:
> systemctl status artifactory.serviceInstallation directory was set to /opt/jfrog/artifactory
You can find more information in the log directory /opt/jfrog/artifactory/var/log
System configuration templates can be found under /opt/jfrog/artifactory/var/etc
Copy any configuration you want to modify from the template to /opt/jfrog/artifactory/var/etc/system.yamlTriggering migration script, this will migrate if needed ...
正在处理用于 systemd (245.4-4ubuntu3.23) 的触发器 ...

(11)启动服务(如报错,请参考问题集)

sudo systemctl start artifactory.service && sudo systemctl enable artifactory.service

(12)检查服务状态

systemctl status artifactory.service

(13)查看数据库

root@master1:~# cd /opt/jfrog/artifactory/app/misc/dbroot@master1:/opt/jfrog/artifactory/app/misc/db# ls
createdb_mariadb.sql  createdb_mssqlBlob.sql  createdb_mssqlRecreateBlob.sql  createdb_mssql.sql  createdb_mysql.sql  createdb_postgres.sql

(14)为 JFrog Artifactory 创建 MariaDB 数据库

sudo mariadb -u rootsource /opt/jfrog/artifactory/app/misc/db/createdb_mariadb.sql;
exit

(14)测试

curl 127.0.0.1:8081

 2.Ubuntu 如何通过docker方式部署 JFrog 制品库

(1) 查看端口

lsof -i:8081

8081已被占用

(2)拉取镜像

oss社区社区版

docker pull docker.bintray.io/jfrog/artifactory-oss

查看镜像

docker images | grep artifactory-oss

(3)挂载卷

持久化容器数据

docker volume create data_artifactory

(4)查看卷详情

宿主机文件位置

docker volume inspect data_artifactory

(5)创建容器

docker run --name jfrog-artifactory -d -v data_artifactory:/var/opt/jfrog/artifactory -p 8011:8081 -p 8012:8082 docker.bintray.io/jfrog/artifactory-oss

查看进程

 docker ps | grep jfrog

(6)测试

curl 127.0.0.1:8011

3.安装jdk报错

(1)报错

等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 29960(unattended-upgr)

(2)原因分析

这个错误通常是由于其他进程正在使用APT包管理器而导致的。在你的情况下,进程29960(unattended-upgr)正在持有APT的锁。这是因为系统正在进行软件更新或升级。在进行这些操作时,APT会锁定相关文件以防止多个进程同时修改它们,以确保系统的稳定性和一致性。

(3)解决方法

杀掉进程

sudo kill 29960

清除锁文件:手动清除,手动清除APT的锁文件

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/cache/apt/archives/lock

成功:

4.安装JFrog Artifactory报错

(1)报错

 暂时不能解析域名“jfrog-prod-use1-shared-virginia-main.s3.amazonaws.com”
E: 无法下载 https://releases.jfrog.io/artifactory/artifactory-debs/pool/jfrog-artifactory-oss/jfrog-artifactory-oss-7.84.12.deb  暂时不能解析域名“jfrog-prod-use1-shared-virginia-main.s3.amazonaws.com”

(2)原因分析

未添加hosts,通过设置host,强制把访问节点重定向。

(3)解决方法

添加hosts:

vim /etc/hosts

219.76.4.4 s3.amazonaws.com
219.76.4.4 github-cloud.s3.amazonaws.com

5.JFrog Artifactory 启动报错

(1)报错

(2)查阅

https://stackoverflow.com/questions/45297704/problems-with-catalina-pid-and-artifactory-pid-while-upgrading-artifactory-to-th

查看日志

查看异常

journalctl -xe

(3)解决方法

vim /etc/systemd/system/artifactory.service

修改前:

修改后:

systemctl daemon-reload

执行判断

root@master1:~# /opt/jfrog/artifactory/app/bin/artifactoryManage.sh start
/usr/bin/netstat
2024-05-31T05:21:04.973Z [shell] [INFO ] [] [artifactoryManage.sh:87       ] [main] - Starting Artifactory tomcat as user artifactory...
2024-05-31T05:21:05.008Z [shell] [INFO ] [] [installerCommon.sh:1617       ] [main] - Checking open files and processes limits
2024-05-31T05:21:05.048Z [shell] [INFO ] [] [installerCommon.sh:1620       ] [main] - Current max open files is 1024
2024-05-31T05:21:05.089Z [shell] [INFO ] [] [installerCommon.sh:1631       ] [main] - Current max open processes is 15362
yaml validation succeeded
2024-05-31T05:21:05.157Z [shell] [INFO ] [] [installerCommon.sh:2991       ] [main] - System.yaml validation succeededDatabase connection check failed Could not determine database type
2024-05-31T05:21:05.399Z [shell] [INFO ] [] [installerCommon.sh:3493       ] [main] - Setting JF_SHARED_NODE_ID to master1
2024-05-31T05:21:05.521Z [shell] [INFO ] [] [installerCommon.sh:3493       ] [main] - Setting JF_SHARED_NODE_IP to 192.168.204.102
2024-05-31T05:21:05.631Z [shell] [INFO ] [] [installerCommon.sh:3493       ] [main] - Setting JF_SHARED_NODE_NAME to master1
2024-05-31T05:21:05.998Z [shell] [INFO ] [] [artifactoryCommon.sh:221      ] [main] - Using Tomcat template to generate : /opt/jfrog/artifactory/app/artifactory/tomcat/conf/server.xml
2024-05-31T05:21:06.195Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.port||8081} to default value : 8081
2024-05-31T05:21:06.312Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.connector.sendReasonPhrase||false} to default value : false
2024-05-31T05:21:06.430Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.connector.relaxedPathChars||_SQUARE_BRACKETS_} to default value : _SQUARE_BRACKETS_
2024-05-31T05:21:06.552Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.connector.relaxedQueryChars||_SQUARE_BRACKETS_} to default value : _SQUARE_BRACKETS_
2024-05-31T05:21:06.673Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.connector.maxThreads||200} to default value : 200
2024-05-31T05:21:06.876Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.maintenanceConnector.port||8091} to default value : 8091
2024-05-31T05:21:06.998Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.maintenanceConnector.maxThreads||5} to default value : 5
2024-05-31T05:21:07.114Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${artifactory.tomcat.maintenanceConnector.acceptCount||5} to default value : 5
2024-05-31T05:21:07.304Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${access.http.port||8040} to default value : 8040
2024-05-31T05:21:07.423Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${access.tomcat.connector.sendReasonPhrase||false} to default value : false
2024-05-31T05:21:07.544Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${access.tomcat.connector.maxThreads||50} to default value : 50
2024-05-31T05:21:07.782Z [shell] [INFO ] [] [systemYamlHelper.sh:621       ] [main] - Resolved JF_PRODUCT_HOME (/opt/jfrog/artifactory) from environment variable
2024-05-31T05:21:08.046Z [shell] [INFO ] [] [systemYamlHelper.sh:981       ] [main] - Resolved ${shared.tomcat.workDir||/opt/jfrog/artifactory/var/work/artifactory/tomcat} to default value : /opt/jfrog/artifactory/var/work/artifactory/tomcat========================
JF Environment variables
========================JF_SHARED_NODE_ID                   : master1
JF_SHARED_NODE_IP                   : 192.168.204.102
JF_ARTIFACTORY_PID                  : /var/run/artifactory.pid
JF_SYSTEM_YAML                      : /opt/jfrog/artifactory/var/etc/system.yaml
JF_PRODUCT_HOME                     : /opt/jfrog/artifactory
JF_ROUTER_TOPOLOGY_LOCAL_REQUIREDSERVICETYPES : jfrt,jfac,jfmd,jffe,jfob,jfevt
JF_SHARED_NODE_NAME                 : master1
2024-05-31T05:21:10.096Z [shell] [ERROR] [] [installerCommon.sh:3379       ] [main] - ##############################################################################
2024-05-31T05:21:10.134Z [shell] [ERROR] [] [installerCommon.sh:3380       ] [main] - Ownership mismatch. You can try executing following instruction and do a restart
2024-05-31T05:21:10.178Z [shell] [ERROR] [] [installerCommon.sh:3381       ] [main] - Command : chown -R artifactory:artifactory /opt/jfrog/artifactory/var/log
2024-05-31T05:21:10.216Z [shell] [ERROR] [] [installerCommon.sh:3382       ] [main] - ##############################################################################

出现关键信息:

授权:

chown -R artifactory:artifactory /opt/jfrog/artifactory/var/log

成功重新启动:

再次查看日志

cd /opt/jfrog/artifactory/var/log
ls

6.启动artifactory镜像报错

(1)报错

缺少master.key

(2)原因分析

未声明变量。

(3)解决方法

export MASTER_KEY=$(openssl rand -hex 32)echo ${MASTER_KEY}

 7.HELM 方式如何安装JFrog

(1)查阅

https://github.com/helm/helm/releases/tag/v3.15.1

目前最新版为v3.15.1

(2) 部署HELM

1)安装 helm 
//下载二进制 Helm client 安装包
helm-v3.15.1-linux-amd64.tar.gztar -zxvf helm-v3.15.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm version//命令补全
source <(helm completion bash)

(3)添加JFrog HELM仓库

helm repo add jfrog https://charts.jfrog.io

(4)更新

 helm repo update

(5)查看可用的 JFrog Helm 图表

helm search repo jfrog

(6)下载 Helm 图表

helm pull  jfrog/artifactory-oss

(7) K8S创建命名空间

kubectl create ns devops-artifactory-dev

(8) 创建项目

helm install artifactory-oss \--set artifactory.nginx.enabled=false \--set artifactory.postgresql.enabled=false \--set postgresql.enabled=false \--set artifactory.artifactory.service.type=NodePort \--set artifactory.artifactory.resources.requests.cpu="500m" \--set artifactory.artifactory.resources.limits.cpu="2" \--set artifactory.artifactory.resources.requests.memory="1Gi" \--set artifactory.artifactory.resources.limits.memory="4Gi" \--set artifactory.artifactory.javaOpts.xms="1g" \--set artifactory.artifactory.javaOpts.xmx="3g" \jfrog/artifactory-oss -n devops-artifactory-dev

删除项目

helm unstall artifactory-oss -n devops-artifactory-dev

8.安装JFrog报错

(1)报错

(2)原因分析

无相关用户。

(3)解决方法

创建相关用户

useradd artifactory
chown artifactory:artifactory /opt/jfrog/artifactory/var/etc

成功:

9.dpkg如何删除已有项目

(1)  dpkg 查看已安装软件包

dpkg -l

dpkg -l | grep jfrog

systemctl stop artifactory.service
netstat -antlp | grep 8081

(2)删除已有项目

dpkg -r  jfrog-artifactory-pro 

10.JFrog有哪些服务命令

(1)命令

1)停止服务
systemctl stop artifactory.service                         2)检查服务状态
systemctl status artifactory.service                   3)重启服务
systemctl restart artifactory.service

相关文章:

研发效能DevOps: Ubuntu 部署 JFrog 制品库

目录 一、实验 1.环境 2.Ubuntu 部署 JFrog 制品库 3.Ubuntu 部署 postgresql数据库 4.Ubuntu 部署 Xray 5. 使用JFrog 增删项目 二、问题 1.Ubuntu 如何通过apt方式部署 JFrog 制品库 2.Ubuntu 如何通过docker方式部署 JFrog 制品库 3.安装jdk报错 4.安装JFrog Ar…...

hadoop学习笔记

hadoop集群搭建 hadoop摘要 Hadoop 是一个开源的分布式存储和计算框架&#xff0c;旨在处理大规模数据集并提供高可靠性、高性能的数据处理能力。它主要包括以下几个核心组件&#xff1a; Hadoop 分布式文件系统&#xff08;HDFS&#xff09;&#xff1a;HDFS 是 Hadoop 的分布…...

使用dockerfile快速构建一个带ssh的docker镜像

不多说先给代码 FROM ubuntu:22.04 # 基础镜像 可替换为其他镜像 USER root RUN echo root:root |chpasswd RUN apt-get update -y \&& apt-get install -y git wget curl RUN apt-get install -y openssh-server vim && apt clean \&& rm -rf /tmp/…...

linux部署运维1——centos7.9离线安装部署涛思taos2.6时序数据库TDengine

在实际项目开发过程中&#xff0c;并非一直都使用关系型数据库&#xff0c;对于工业互联网类型的项目来说&#xff0c;时序型数据库也是很重要的一种&#xff0c;因此掌握时序数据库的安装配置也是必要的技能&#xff0c;不过对于有关系型数据库使用的开发工作者来说&#xff0…...

Linux shell编程学习笔记51: cat /proc/cpuinfo:查看CPU详细信息

0 前言 2024年的网络安全检查又开始了&#xff0c;对于使用基于Linux的国产电脑&#xff0c;我们可以编写一个脚本来收集系统的有关信息。对于中央处理器CPU比如&#xff0c;我们可以使用cat /proc/cpuinfo命令来收集中央处理器CPU的信息。 1. /proc/cpuinfo 保存了系统的cpu…...

Ps:调整画笔工具

调整画笔工具 Adjustment Brush Tool可以将选区、创建蒙版和应用调整的传统工作流程合并为一个步骤&#xff0c;简化了对图像进行非破坏性局部调整的操作。 快捷键&#xff1a;B 调整画笔工具是 Photoshop 2024 年 5 月版&#xff08;25.9 版&#xff09;新增的工具。 ◆ ◆ …...

香橙派 AIpro上手体验并验证车道线识别算法

香橙派 AIpro上手体验并验证车道线识别算法 1.前言 最近入手了一块香橙派AIpro&#xff0c;体验了一下&#xff0c;感觉还不错&#xff0c;在这里分享给大家&#xff0c;大家可以做个参考。 2.开箱 整套产品包含一块主板、一个电源插头和一条双端Type-C的数据线&#xff0c;…...

为啥装了erlang,还报错erl: command not found?

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 问题背景&#xff1a; 在一台不通外网的服务器上装rabbitmq&#xff0c;然后在启动的时候&#xff0c;遇到了报错 “/usr/lib/…...

容器技术基础理论与常用命令:必知必会,效率翻倍!

如何利用容器技术提升你的工作效率&#xff1f;掌握基础理论和常用命令是必不可少的&#xff0c;本文将为你全面介绍容器技术&#xff0c;并教你必知必会的技能&#xff0c;让你工作、学习效率翻倍&#xff0c;对于网络安全工作者也是必不可少的技能&#xff01; 0. 引言 学习…...

ChatGPT Edu版本来啦:支持GPT-4o、自定义GPT、数据分析等

5月31日&#xff0c;OpenAI在官网宣布&#xff0c;推出ChatGPT Edu版本。 据悉&#xff0c;这是一个专门为大学校园提供的ChatGTP&#xff0c;支持GPT-4o、网络搜索、自定义GPT、数据分析、代码生成等功能&#xff0c;可以极大提升学生、老师的学习质量和教学效率。 目前&…...

Spark RDD案例

Apache Spark中的RDD&#xff08;Resilient Distributed Dataset&#xff09;是一个不可变、分布式对象集合&#xff0c;它允许用户在大型集群上执行并行操作。虽然RDD在Spark的早期版本中非常核心&#xff0c;但随着DataFrame和Dataset的引入&#xff0c;RDD的使用在某些场景下…...

【线性表 - 数组和矩阵】

数组是一种连续存储线性结构&#xff0c;元素类型相同&#xff0c;大小相等&#xff0c;数组是多维的&#xff0c;通过使用整型索引值来访问他们的元素&#xff0c;数组尺寸不能改变。 知识点数组与矩阵相关题目 # 知识点 数组的优点: 存取速度快 数组的缺点: 事先必须知道…...

Springboot 开发 -- 跨域问题技术详解

一、跨域的概念 跨域访问问题指的是在客户端浏览器中&#xff0c;由于安全策略的限制&#xff0c;不允许从一个源&#xff08;域名、协议、端口&#xff09;直接访问另一个源的资源。当浏览器发起一个跨域请求时&#xff0c;会被浏览器拦截&#xff0c;并阻止数据的传输。 这…...

【Qt】之【项目】整理可参考学习的git项目链接(持续更新)

Tcp 通信相关 IM即时通讯设计 高并发聊天服务&#xff1a;服务器 qt客户端&#xff08;附源码&#xff09; - DeRoy - 博客园 未使用protobuf通讯协议格式 github&#xff1a;GitHub - ADeRoy/chat_room: IM即时通讯设计 高并发聊天服务&#xff1a;服务器 qt客户端 QT编…...

2024年5月个人工作生活总结

本文为 2024年5月工作生活总结。 研发编码 golang 多个defer函数执行顺序 golang 函数中如有多个defer&#xff0c;倒序执行。示例代码&#xff1a; func foo() {defer func() {fmt.Println("111")}()defer func() {fmt.Println("2222")}()defer func()…...

Kafka Java API

1、增加依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>1.0.0</version> </dependency>2、三个案例 案例1&#xff1a;生产数据 import org.apache.kafka.clients.p…...

pushd: not found

解决方法&#xff1a; pushd 比 cd 命令更高效的切换命令&#xff0c;非默认&#xff0c;可在脚本开头添加&#xff1a; #! /bin/bash ubuntu 编译时出现/bin/sh: 1: pushd: not found的问题-CSDN博客...

【第十三节】C++控制台版本坦克大战小游戏

目录 一、游戏简介 1.1 游戏概述 1.2 知识点应用 1.3 实现功能 1.4 开发环境 二、项目设计 2.1 类的设计 2.2 各类功能 三、程序运行截图 3.1 游戏主菜单 3.2 游戏进行中 3.3 双人作战 3.4 编辑地图 一、游戏简介 1.1 游戏概述 本项目是一款基于C语言开发的控制台…...

酷得单片机方案 2.4G儿童遥控漂移车

电子方案开发定制&#xff0c;我们是专业的 东莞酷得智能单片机方案之2.4G遥控玩具童车具有以下比较有特色的特点&#xff1a; 1、内置充电电池&#xff1a;这款小车配备了可充电的电池&#xff0c;无需频繁更换电池&#xff0c;既环保又方便。充电方式可能为USB充电或者专用…...

【为什么 Google Chrome 打开网页有时极慢?尤其是国内网站,如知网等】

要通过知网搜一点资料&#xff0c;发现怎么都打不开。而且B站&#xff0c;知乎这些速度也变慢了&#xff01;已经检查过确定不是网络的问题。 清空了记录&#xff0c;清空了已接受Cookie&#xff0c;清空了缓存内容……没用&#xff01;&#xff01;&#xff01; 不断搜索&am…...

FastAPI - 数据库操作5

先安装mysql驱动程序 pipenv install pymysql安装数据库ORM库SQLAlchemy pipenv install SQLAlchemy修改文件main.py文件内容 设置数据库连接 # -*- coding:utf-8 –*- from fastapi import FastAPIfrom sqlalchemy import create_engineHOST 192.168.123.228 PORT 3306 …...

HTML静态网页成品作业(HTML+CSS)—— 冶金工程专业展望与介绍介绍网页(2个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有2个页面。 二、作品演示 三、代…...

Flutter基础 -- Dart 语言 -- 注释函数表达式

目录 1. 注释 1.1 单行注释 1.2 多行注释 1.3 文档注释 2. 函数 2.1 定义 2.2 可选参数 2.3 可选参数 默认值 2.4 命名参数 默认值 2.5 函数内定义 2.6 Funcation 返回函数对象 2.7 匿名函数 2.8 作用域 3. 操作符 3.1 操作符表 3.2 算术操作符 3.3 相等相关的…...

“仿RabbitMQ实现消息队列”---整体架构与模块说明

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、概念性框架理解 我们主要实现的内容&#xff1a; 1.Broker服务器&#xff1a;消息队列服务器&#xff08;服务端&…...

springboot如何快速接入minio对象存储

1.在项目中添加 Minio 的依赖&#xff0c;在使用 Minio 之前&#xff0c;需要在项目中添加 Minio 的依赖。可以在 Maven 的 pom.xml 文件中添加以下依赖&#xff1a; <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId>&l…...

第六届“智能设计+运维”国产工业软件研讨会暨2024年天洑软件用户大会圆满召开

2024年5月23-24日&#xff0c;第六届“智能设计运维”国产工业软件研讨会暨2024年天洑软件用户大会在南京举办。来自国产工业软件研发企业、制造业企业、高校、科研院所的业内大咖&#xff0c;能源动力、船舶海事、车辆运载、航空航天、新能源汽车、动力电池、消费电子、石油石…...

05.k8s弹性伸缩

5.k8s弹性伸缩 k8s弹性伸缩,需要附加插件heapster监控 弹性伸缩&#xff1a;随着业务访问量的大小&#xff0c;k8s系统中的pod比较弹性&#xff0c;会自动增加或者减少pod数量&#xff1b; 5.1 安装heapster监控 1:上传并导入镜像,打标签 ls *.tar.gz for n in ls *.tar.gz…...

【数据结构】详解二叉树

文章目录 1.树的结构及概念1.1树的概念1.2树的相关结构概念1.3树的表示1.4树在实际中的应用 2.二叉树的结构及概念2.1二叉树的概念2.2特殊的二叉树2.2.1满二叉树2.2.2完全二叉树 2.3 二叉树的性质2.4二叉树的存储结构2.4.1顺序结构2.4.2链表结构 1.树的结构及概念 1.1树的概念…...

MapDB:轻量级、高性能的Java嵌入式数据库引擎

MapDB&#xff1a;轻量级、高性能的Java嵌入式数据库引擎 在今天的软件开发中&#xff0c;嵌入式数据库因其轻便、高效和易于集成而备受欢迎。对于Java开发者来说&#xff0c;MapDB无疑是一个值得关注的选项。MapDB是一个纯Java编写的嵌入式数据库引擎&#xff0c;它提供了高性…...

Rye: 一个革新的Python包管理工具

文章目录 Rye: 一个革新的Python包管理工具Rye的诞生背景Rye的核心特性Rye的安装与使用Rye的优势与挑战Rye的未来展望结语 Rye: 一个革新的Python包管理工具 在Python生态系统中&#xff0c;包管理一直是一个复杂且令人头疼的问题。随着Python社区的不断发展&#xff0c;出现了…...

如何在C#代码中判断当前C#的版本和dotnet版本

代码如下&#xff1a; using System.Reflection; using System.Runtime.InteropServices;var csharpVersion typeof(string).Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).OfType<AssemblyFileVersionAttribute>().FirstOrDefault()?.…...

Linux 36.3@Jetson Orin Nano之系统安装

Linux 36.3Jetson Orin Nano之系统安装 1. 源由2. 命令行烧录Step 1&#xff1a;下载Linux 36.3安装程序Step 2&#xff1a;下载Linux 36.3根文件系统Step 3&#xff1a;解压Linux 36.3安装程序Step 4&#xff1a;解压Linux 36.3根文件系统Step 5&#xff1a;安装应用程序Step …...

案例实践 | 基于长安链的首钢供应链金融科技服务平台

案例名称-首钢供应链金融科技服务平台 ■ 建设单位 首惠产业金融服务集团有限公司 ■ 用户群体 核心企业、资金方&#xff08;多为银行&#xff09;等合作方 ■ 应用成效 三大业务场景&#xff0c;共计关联29个业务节点&#xff0c;覆盖京票项目全部关键业务 案例背景…...

Vue3实战笔记(55)—Vue3.4新特性揭秘:defineModel重塑v-model,拥抱高效双向数据流!

文章目录 前言defineModel() 基本用法总结 前言 v-model 可以在组件上使用以实现双向绑定。 从 Vue 3.4 开始&#xff0c;推荐的实现方式是使用 defineModel() 宏 defineModel() 基本用法 定义defineModel()&#xff1a; <!-- Child.vue --> <script setup> con…...

C++ | Leetcode C++题解之第123题买卖股票的最佳时机III

题目&#xff1a; 题解&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();int buy1 -prices[0], sell1 0;int buy2 -prices[0], sell2 0;for (int i 1; i < n; i) {buy1 max(buy1, -prices[i]);sell1 max(…...

微信小程序中Button组件的属性值和用法详解

在微信小程序开发中&#xff0c;Button组件是非常常用的UI组件之一&#xff0c;它可以让用户进行交互操作&#xff0c;比如提交表单、跳转页面等。了解Button组件的属性值和用法对于开发者来说至关重要。 1. Button组件简介 简要介绍Button组件在小程序中的作用和重要性&…...

等保测评 | 等保测评简介及流程具体是什么?

等保测评是指对信息系统进行安全性评估和测试&#xff0c;以确保其符合国家相关等级保护要求。在当前信息时代&#xff0c;各类机构和企业面临着日益严峻的网络安全风险&#xff0c;等保测评成为了保障信息系统安全的重要手段之一。本文将介绍等保测评的基本概念、流程和重要性…...

CompassArena 司南大模型测评--代码编写

测试角度 要说测试模型&#xff0c;对咱们程序员来说&#xff0c;那自然是写代码的能力强不强比较重要了。那么下面我们以 leetcode 中的一道表面上是困难题的题目来考考各家大模型&#xff0c;看看哪个才应该是咱们日常写程序的帮手。 部分模型回答 问题部分如下截图&#…...

叉积和法向量学习笔记

目录 叉积用的内积 相似点 给定平面上的两个向量 A 和 B&#xff0c;叉积和法向量相等吗 理解这点的关键&#xff1a; 结论&#xff1a; 叉积判断平面内两个向量是否相交 叉积&#xff08;Cross Product&#xff09;和法向量&#xff08;Normal Vector&#xff09;确实有…...

YZW900规格书

title: “深圳市沃进科技有限公司” 深圳市沃进科技有限公司 TOP视图 特性 异地组网&#xff0c;远程访问有线/无线备份单模双卡备份5G转有线&#xff0c;5G转WIFI2.4G5.8G双频WIFI三网口&#xff0c;WAN/LAN可切换软硬件看门狗智能防掉线云平台、客户端远程管理安装支架安装铝…...

9岁学生学什么编程好一些:探索编程启蒙的奥秘

9岁学生学什么编程好一些&#xff1a;探索编程启蒙的奥秘 在数字时代&#xff0c;编程已逐渐成为一项基本技能。对于9岁的学生来说&#xff0c;选择适合的编程课程或平台&#xff0c;对于培养逻辑思维、创新思维以及解决问题的能力至关重要。那么&#xff0c;9岁学生学什么编程…...

Java反射实战指南:反射机制的终极指南

1. 反射机制简介 在Java中&#xff0c;反射机制提供了一种强大的工具&#xff0c;用于在运行时检查类、接口、字段和方法。但它的重要性不止于此&#xff0c;它允许程序动态加载、探索和使用编译时完全未知的代码。这种能力是Java语言支持的一种“动态”特性&#xff0c;使得J…...

高效训练超越LoRA,北航发布MoRA

什么&#xff01;LoRA我都没有学懂&#xff0c;又出现了MoRA&#xff1f;&#xff1f;&#xff1f; LoRA作为当下最火热的大语言模型参数高效微调技术&#xff0c;正在以前所未有的速度迭代更新。从最初的LoRA到陆续推出的LoRA、DoRA、AsyLoRA等变体&#xff0c;LoRA家族可谓是…...

【Spring】Spring之依赖注入源码解析(上)

目录 Spring中到底有几种依赖注入的方式&#xff1f; 手动注入 自动注入 XML的autowire自动注入 Autowired注解的自动注入 寻找注入点 桥接方法 注入点进行注入 字段注入 Set方法注入 Spring中到底有几种依赖注入的方式&#xff1f; 首先分两种&#xff1a; 手动注…...

HBase 常用 shell 操作

下面给大家介绍一些HBase 常用 shell 操作&#xff0c;各位看官看好了啦&#xff0c;我要献丑了。 进入 HBase 客户端命令操作界面 $ bin/hbase shell查看帮助命令 > help查看当前数据库中有哪些表 > list创建一张表 创建 user 表&#xff0c;包含 info、data 两个列…...

【区分vue2和vue3下的element UI InputNumber 计数器组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中&#xff0c;Element UI 提供了 el-input-number 组件作为计数器组件&#xff0c;用于处理数字输入。而在 Vue 3 中&#xff0c;Element Plus 同样提供了类似的组件&#xff0c;但可能有一些属性、事件或方法的细微差异。下面我将分别介绍 Vue 2 的 Element UI 和 V…...

科普健康短视频:成都鼎茂宏升文化传媒公司

科普健康短视频&#xff1a;引领健康知识新潮流 在数字化时代的浪潮中&#xff0c;短视频以其短小精悍、直观易懂的特点&#xff0c;迅速成为大众获取信息的重要渠道。其中&#xff0c;科普健康短视频更是凭借其科学、权威、实用的内容&#xff0c;吸引了大量关注健康的观众。…...

Amis源码构建 sdk版本

建议在linux环境下构建&#xff08;mac环境下也可以&#xff09;&#xff0c;需要用到sh脚本&#xff08;amis/build.sh&#xff09;。 Js sdk打包是基于fis进行编译打包的&#xff0c;具体可见fis-conf.js&#xff1a; amis-master源码下载:https://github.com/baidu/amis g…...

【MySQL数据库】:MySQL复合查询

目录 基本查询回顾 多表查询 自连接 子查询 单行子查询 多行子查询 多列子查询 在from子句中使用子查询 合并查询 前面我们讲解的mysql表的查询都是对一张表进行查询&#xff0c;在实际开发中这远远不够。 基本查询回顾 【MySQL数据库】&#xff1a;MySQL基本查…...

PS Mac Photoshop 2024 for Mac[破]图像处理软件[解]PS 2024安装教程[版]

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、Anticc简化版安装1.1双击运行软件&#xff0c;安装1.2 解决来源身份不明的开发者问题**此代码为打开&#xff1a;系统偏好设置 – 隐私与安全性&#xff0c;中的【任何来源】&#xff0c;如下图&#xff1a;**1.3 再次运行…...