在 CentOS 7上安装Sonatype Nexus Repository OSS

【转自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
复制代码

解压后的文件夹

重命名文件夹

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
复制代码

登录

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

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

新管理员密码

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

匿名访问

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

完成设置

点击完成。

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享