研发效能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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/20078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript DOM 属性详解:读取、修改、移除

No.内容链接1Openlayers 【入门教程】 - 【源代码示例300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3Cesium 【入门教程】 - 【源代码图文示例200】 4MapboxGL【入门教程】 - 【源代码图文示例150】 5前端就业宝典 【面试题详细答案 1000】 文章目录 一、读取…

动态路由协议实验——RIP

动态路由协议实验——RIP 什么是RIP ​ RIP(Routing Information Protocol,路由信息协议&#xff09;是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;是一种动态路由选择协议&#xff0c;用于自治系统&#xff08;AS&#xff09;内的路由信息的传递。RIP协议基于…

实时数据传输:Django 与 MQTT 的完美结合

文章目录 准备工作创建 Django 项目与应用设置 MQTT 服务器编写 Django 视图编写前端模板发布 MQTT 消息运行 Django 项目 在当今互联网应用中&#xff0c;实时数据传输已经成为许多项目的核心需求。无论是社交媒体平台、在线游戏、金融交易还是物联网设备&#xff0c;都需要及…

Python—面向对象小解(3)

一、多态 多态指的是一类事物的多中形态 相同的方法&#xff0c;产生不同的执行结果 运算符 * 的多态 int int 加法计算 str str 字符串拼接 list list 列表的数据合并 在python中可以使用类实现一个多态效果 在python中使用重写的方式实现多态 &#xff08;1&#xff09;定…

飞腾D2000+FPGA云终端,实现从硬件、操作系统到应用的完全国产、自主、可控

飞腾云终端基于国产化飞腾高性能8核D2000处理器平台的国产自主可控解决方案&#xff0c;搭载昆仑国产化固件,支持UOS、银河麒麟等国产操作系统&#xff0c;满足国产化信息安全运算的需求&#xff0c;实现从硬件、操作系统到应用的完全国产、自主、可控&#xff0c;是国产信息安…

WireShark抓包软件的使用 上海商学院 计算机网络 实验作业3

实验目的 &#xff08;1&#xff09;熟悉wireShark软件操作界面和操作步骤&#xff1b; &#xff08;2&#xff09;学会捕获过滤器的设置方法&#xff1b; &#xff08;3&#xff09;学会显示过滤器的设置方法&#xff1b; &#xff08;4&#xff09;学会使用捕获报文的统计…

20231911 2023-2024-2 《网络攻防实践》实践十一报告

实践内容 &#xff08;1&#xff09;web浏览器渗透攻击 任务&#xff1a;使用攻击机和Windows靶机进行浏览器渗透攻击实验&#xff0c;体验网页木马构造及实施浏览器攻击的实际过程。 实验步骤&#xff1a; ①选择使用Metasploit中的MS06-014渗透攻击模块②选择PAYLOAD为任意…

Linux基本命令的使用(mkdir)

一、Linux必备命令之mkdir • mkdir命令主要用于创建目录 • 语法: mkdir [选项] 目录名称 若指定目录不存在则创建目录&#xff1b; 选项&#xff1a; -p&#xff0c;--parents 需要时创建目录的上层目录&#xff0c;若这些 目录已存在也不当作错误处理 二、Linux必备命令之…

java基础-chapter15(io流)

io流&#xff1a;存储和读取数据的解决方案 I:input O:output io流的作用&#xff1a;用于读写数据&#xff08;本地文件,网络&#xff09; io流按照流向可以分为&#xff1a; 输出流&#xff1a;程序->文件 输入流&#xff1a;文件->程序 io流按照操作文件…

nginx的安装002

之前001讲述了nginxyum安装现在讲一下nginx如何本地离线安装 操作系统&#xff1a; CentOS Stream 9 操作步骤&#xff1a; 首先访问nginx官网&#xff0c;下载。 用wget命令下载&#xff0c; [rootlocalhost ~]# wget -c https://nginx.org/download/nginx-1.26.0.tar.gz …

python基础(习题、资料)

免费提取资料&#xff1a; 练习、资料免费提取。持续更新迅雷云盘https://pan.xunlei.com/s/VNz6kH1EXQtK8j-wwwz_c0k8A1?pwdrj2x# 本文为Python的进阶知识合辑&#xff0c;包括列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、字典&#xff08;Dic…

四川景源畅信:抖音开店怎么做好运营?

在数字化时代的浪潮中&#xff0c;抖音作为一个流量巨大的社交平台&#xff0c;为许多商家提供了展示和销售产品的新舞台。但在这个充满竞争的平台上&#xff0c;如何做好店铺运营&#xff0c;吸引并留住顾客&#xff0c;成为了许多商家面临的挑战。接下来的内容将围绕如何在抖…

程序启动端口占用问题 cause: Address already in use: bind

1、winr打开cmd窗口 2、找到占用端口的进程号 netstat -aon|findstr "20792" 3、终止进程 taskkill /T /F /PID 18208

实验---DC-AC逆变器(1)---EG8010+NSI6602驱动IGBT实验

一、设计电路 1.LCC 主回路模块原理图 1.1 电源部分 这个电源部分电路图是一个简单而有效的DC-DC转换器设计&#xff0c;包含输入保护和滤波、电源模块、以及输出滤波和稳定。 a. 输入电源部分 输入电源 (E12V): 电路从E12V端子接收12V的直流电源。这是整个电路的输入电源。…

活动选择问题(贪心法)

目录 问题概述 实例分析 代码实现 问题概述 实例分析 求解蓄栏保留问题。农场有n头牛,每头牛会有一个特定的时间区间[b,e]在蓄栏里挤牛奶,并且一个蓄栏里任何时刻只能有一头牛挤奶。现在农场主希望知道最少蓄栏能够满足上述要求,并给出每头牛被安排的方案。对于多种可行方案…

36个JavaScript特效教程,学完即精通

课程目录 &#x1f9d1;‍&#x1f4bb;36个JavaScript特效教程&#xff0c;学完即精通 &#x1f381;【更多好课】资源仓库&#xff0c;海量资源&#xff0c;无偿分享√ 本站所有素材均来自于互联网&#xff0c;版权属原著所有&#xff0c;如有需要请购买正版。如有侵权&…

【康耐视国产案例】智能AI相机联合OSARO为Zenni眼镜实现订单履约自动化

在电商潮流下&#xff0c;Zenni眼镜作为全球领先的在线眼镜零售商&#xff0c;每年销售超过600万副眼镜&#xff0c;却面临着一个独特而复杂的问题——需要通过扫描眼镜盒内的条形码来处理订单。传统手动处理已经到达流程瓶颈&#xff0c;急需一种更加自动化、可扩展的方法。为…

Hive-因精度丢失导致的 join 数据异常

一、问题复现 不知你是否遇到过 join 结果明显不匹配的情况&#xff0c;例如on t1.join_key t2.join_key中两个join_key明显不相等&#xff0c;但 join 的结果却将其匹配在一起。今日博主在通过用户 id 关联获取用户信息时发现一个用户 id 可以在用户维表中匹配出若干条&…

学生如何获取SOLIDWORKS产品技术支持

在当今日益复杂的学习环境中&#xff0c;技术软件如SOLIDWORKS已成为工程设计和制造类专业学生的重要工具。然而&#xff0c;面对这款功能强大的软件&#xff0c;学生们在使用过程中难免会遇到各种技术难题。那么&#xff0c;作为学生&#xff0c;我们该如何获取SOLIDWORKS产品…

imx6ull - 制作烧录SD卡

1、参考NXP官方的手册《i.MX_Linux_Users_Guide.pdf》的这一章节&#xff1a; 1、SD卡分区 提示&#xff1a;我们常用的SD卡一个扇区的大小是512字节。 先说一下i.MX6ULL使用SD卡启动时的分区情况&#xff0c;NXP官方给的镜像布局结构如下所示&#xff1a; 可以看到&#xff0c…