在 CentOS 7上安装Sonatype Nexus Repository OSS

2023-11-10

【转自FossLinux的Darshana《Installing Sonatype Nexus Repository OSS on CentOS 7》翻译】

Sonatype Nexus是一个流行的存储库管理器,在全球范围内用于大多数组件、二进制文件和构建工件。它支持 Java 虚拟机 (JVM) 生态系统,包括 Gradle、Ant、Maven 和 Ivy。

兼容的标准工具包括Eclipse,IntelliJ,Hudson,Jenkins,Puppet,Chef, Docker等。Sonatype Nexus repo可以通过交付二进制容器、组件和成品来管理开发组件。

在本教程中,我们将为您提供在CentOS 7上设置Sonatype Nexus Repository OSS 版本的综合指南。

在 CentOS 7 上安装 Sonatype Nexus Repository OSS

在开始本教程之前,让我们看看运行 Sonatype Nexus Repo 的最低系统要求。

系统要求

  • 最低 CPU:4,推荐 CPU:8+
  • 主机上的最小物理/RAM 8GB

1.预安装

开始设置主机名。

hostnamectl set-hostname nexus

更新您的CentOS系统。

yum update -y

通过执行下列命令安装Java:

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

安装 JAVA

安装完成后,检查java版本以确保您已准备好进入下载Repo的下一步。

java -version

JAVA 版本

2. 下载 Nexus Repository Manager 3

导航到opt目录

cd /opt

官网复制最新的Repo的URL,用wget下载它。

wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz

解压tar文件

tar -xvzf latest-unix.tar.gz

您应该看到两个目录,包括nexus文件和nexus数据目录

ls -lh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xiRUzVEL-1631600730185)(https://cdn.fosslinux.com/wp-content/uploads/2020/02/04052743/Etracted_Files.png)]

重命名文件夹

mv nexus-3.20.1-01 nexus

mv sonatype-work nexusdata

重命名目录

3. 设置用户/权限和配置

I. 为一个nexus服务添加一个用户

useradd --system --no-create-home nexus

II. 设置Nexus文件和Nexus数据的所有者

chown -R nexus:nexus /opt/nexus

hown -R nexus:nexus /opt/nexusdata

III. 更改 Nexus 配置并设置自定义数据目录

编辑“nexus.vmoptions”。

vim /opt/nexus/bin/nexus.vmoptions

更改数据目录。

-Xms2703m 
-Xmx2703m 
-XX:MaxDirectMemorySize=2703m 
-XX:+UnlockDiagnosticVMOptions 
-XX:+LogVMOutput 
-XX:LogFile=../nexusdata/nexus3/log/jvm.log 
-XX:-OmitStackTraceInFastThrow 
-DIPv4Stack. 
-Dkaraf.home=. 
-Dkaraf.base=. 
-Dkaraf.etc=etc/karaf 
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties 
-Dkaraf.data=../nexusdata/nexus3 
-Dkaraf.log=../nexusdata /nexus3/log 
-Djava.io.tmpdir=../nexusdata/nexus3/tmp 
-Dkaraf.startLocalConsole=false

保存并退出文件。

更改 Nexus 数据目录

IV. 改 nexus 服务帐户的用户。

编辑“nexus.rc”文件。

vim /opt/nexus/bin/nexus.rc

取消注释“run_as_user”参数并添加新值。

run_as_user="nexus"

V. 停止监听远程连接。

我们需要修改“nexus-default.properties”文件。

vim /opt/nexus/etc/nexus-default.properties

将 application-host=0.0.0.0 更改为 application-host=127.0.0.1。

更改应用程序主机

VI. 配置nexus用户的打开文件限制。

vim /etc/security/limits.conf

将以下值添加到文件中。

nexus - nofile 65536

保存并退出文件

4. 设置Nexus为系统服务

在“/etc/systemd/system/”中创建Systemd服务文件。

vim /etc/systemd/system/nexus.service

在文件中添加如下:

[Unit]
Description=Nexus Service
After=syslog.target network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Group=nexus
Restart=on-failure

[Install]
WantedBy=multi-user.target

重载systemctl。

systemctl daemon-reload

使服务在系统启动时可用。

systemctl enable nexus.service

启动服务。

systemctl start nexus.service

监控日志文件

tail -f /opt/nexusdata/nexus3/log/nexus.log

日志文件

检查服务端口

netstat -tunlp | grep 8081

检查端口

5. 设置Nginx

设置epel存储库

yum install -y epel-release

罗列存储库

yum repolist

安装nginx

yum install nginx

设置系统启动nginx

systemctl enable nginx

检查Nginx状态,如果服务未运行启动服务

systemctl status nginx

systemctl start nginx

6. 为服务器设置 DNS 记录。

然后转到您的 DNS 管理器并为您的服务器添加 A 记录。

A Domain Name Server IP

在这里,我们使用 AWS 路由 53 来设置我们的 DNS。

DNS记录

7. 使用 certbot 配置 SSL

I. 先安装certbot包

yum install certbot python2-certbot-nginx

II. 安装证书

certbot --nginx

它会问几个问题,然后输入电子邮件、域名和所需的输入,如下所示。

生成 SSL

安装完成后,打开nginx.conf。

vim /etc/nginx/nginx.conf

您可以看到 certbot SSL 配置。

III. 添加代理通行证

将以下内容添加到位置块。

location / {

    proxy_pass "http://127.0.0.1:8081";
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_set_header        X-Forwarded-Ssl on;
    proxy_read_timeout      300;
    proxy_connect_timeout   300;

}

代理通行证

保存并退出文件。

检查 nginx 语法:

nginx -t

重启 Nginx:

systemctl restart nginx

8. 设置防火墙规则

现在启用对特定公共 IP 的 https 访问。运行以下命令。

firewall-cmd --permanent --zone=public --add-rich-rule=' 
rule family="ipv4" 
source address="123.44.8.180/32" 
port protocol="tcp" port="443" accept'

如果您需要打开 https 以公开运行以下命令:

firewall-cmd --zone=public --permanent --add-service=https

重新加载防火墙。

firewall-cmd --reload

9. 为Nginx设置SELinux代理

setsebool -P httpd_can_network_connect 1

10. 用您的主名浏览网站

eg: https://nexusrepo.fosslinux.com/

浏览URL

11. 登录服务器

使用默认用户名“admin”登录。在服务器中运行以下命令并获取密码。

cat /opt/nexusdata/nexus3/admin.password

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eEwwPmgP-1631600730213)(https://cdn.fosslinux.com/wp-content/uploads/2020/02/04094607/Sign_IN.png)]

首次登录后,您应该会看到一个类似的窗口,如下所示。

单击下一步并为管理员用户设置新密码。

新管理员密码

再次单击下一步,您应该会看到“配置匿名访问”窗口。不要启用匿名访问。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HT8mlkwl-1631600730219)(https://cdn.fosslinux.com/wp-content/uploads/2020/02/04095447/Anonymous_Access.png)]

单击下一步按钮,您可以看到完整的设置。

完成设置

点击完成。

这就是在 CentOS 7 上安装 Sonatype Nexus Repository OSS 的全部内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 CentOS 7上安装Sonatype Nexus Repository OSS 的相关文章

  • 未找到 jmap 命令

    我正在尝试使用jmap对我的命令CentOS服务器 但它一直告诉我 即使我安装了 JDK 也找不到该命令 这是命令的输出java version java version 1 7 0 25 OpenJDK Runtime Environme
  • 我的 docker 容器没有互联网

    我本来可以正常工作 但现在停止了 我尝试了以下命令但没有效果 docker run dns 8 8 8 8 base ping google com docker run base ping google com sysctl w net
  • f1-micro 中的 GCLOUD Kubernetes 结果为(由于内存不足,不支持 f1-micro 机器的节点池)

    我尝试使用 Google 的 UI 在集群中启动一个新的 f1 micro 节点 但它默默地失败了 所以我决定使用 gcloud 运行它 看看是否提供了更多详细信息 所以我运行了以下命令 gcloud container node pool
  • 在 Chef 中使用属性

    刚刚开始使用chef最近 我发现属性存储在一个名为的大型整体哈希中node可在您的食谱和模板中使用 似乎有多种定义属性的方法 直接在食谱本身中 在属性文件下 例如attributes default rb 在传递给的 JSON 对象中che
  • “幽灵”kubernetes pod 陷入终止状态

    情况 我有一个 kubernetes pod 处于 终止 状态 无法删除 pod NAME READY STATUS RESTARTS AGE funny turtle myservice xxx yyy 1 1 Terminating 1
  • 在 VSTS 中执行运行功能测试任务时出错

    在 VSTS 2015 中 我们在使用 NUnit 测试框架的项目中构建和发布管道设置 我们正在尝试使用 运行功能任务 配置集成测试用例执行 任务配置如下面的屏幕截图所示 可视化测试代理部署任务用于在目标计算机中部署 NUnit 测试代理
  • Docker 守护进程未运行

    这方面的新手 我已经在我的 Windows PC 上安装了新版本的 Docker 我使用的是 Windows 10 专业版 我已经尝试了非常基本的 docker 命令 但它不起作用 我还以管理员身份运行 docker 总是出现以下错误 do
  • 如何在 CentOs 中安装 php-xml

    我正在尝试在 CentOs 6 5 上安装 php xml 我输入命令yum install php xml 我收到此错误 Loaded plugins fastestmirror Loading mirror speeds from ca
  • 如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

    GitLab CI 允许向项目添加自定义变量 它允许使用类型的秘密变量file我指定的键是变量名称 值是文件的内容 例如证书的内容 然后在管道执行期间 内容将被保存为临时文件 调用变量名称将返回创建文件的路径 最终我需要将此文件复制到构建项
  • 在哪里可以找到 PHP 的错误日志文件?

    在哪里可以找到错误日志文件 我需要检查它们以解决安装后显示的内部服务器错误suPHP https wiki archlinux org title SuPHP 您可以使用lsof https en wikipedia org wiki Ls
  • MariaDB 10 CentOS 7 移动数据目录的问题

    CentOS 7 和 MariaDB 10 的全新 最小 安装 我有一个额外安装的镜像卷 我想将其用于数据目录 当 my cnf mysqld 被注释掉时 启动顺序正常并正常完成 我已经复制了数据 sudo cp R p var lib m
  • Terraform 规划自动化中人类可读的输出

    我已经通过 github jenkins 设置了自动化 以通过 jenkins 发布 repo 的 terraform plan 的输出 作为对 github 中拉取请求的评论 整个编排工作得很好 除了 terraform plan 的输出
  • 在 systemd 服务文件内/内联添加 shell 命令

    我正在运行gunicorn通过 systemd 将服务器作为服务 这是示例service file Unit Description Gunicorn NGINX After network target Service User root
  • EC2 增加大小后无法调整卷大小

    我已按照调整 EC2 卷大小的步骤进行操作 停止实例 拍摄当前卷的快照 在同一区域中从上一个快照创建了一个更大大小的新卷 从实例中分离旧卷 将新卷附加到同一安装点的实例 旧卷是 5GB 我创建的卷是 100GB 现在 当我重新启动实例并运行
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • proc_open() 失败并显示“权限被拒绝”

    我正在尝试使用proc open 执行程序并打印结果 但是 我不断收到 许可被拒绝 的消息 已将脚本和可执行文件的 chmod 设置为 0777 但无济于事 ini get safe mode 是假的 可能出什么问题了 我正在使用 Cent
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • 套接字错误 10054

    我有一个C S程序 客户端使用socket向服务器发送文件 发送后大约超过700k数据 客户端 在win7上 将收到套接字10054错误 这意味着连接被对等方重置 服务器运行在CentOS 5 4上 客户端是在virtual box中运行的
  • 如何配置 nginx 重写规则以使 CakePHP 在 CentOS 上运行?

    大家好 请帮帮我 我正在尝试在运行 Nginx 和 Fact CGI 的 Centos 服务器上设置 cakephp 环境 我已经在服务器上运行了一个 WordPress 站点和一个 phpmyadmin 站点 因此我已经正确配置了 PHP

随机推荐