【转自 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 系统。
通过执行下列命令安装 Java:
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
复制代码
安装完成后,检查 java 版本以确保您已准备好进入下载 Repo 的下一步。
2. 下载 Nexus Repository Manager 3
导航到 opt 目录
从官网复制最新的 Repo 的 URL,用 wget 下载它。
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
复制代码
解压 tar 文件
tar -xvzf latest-unix.tar.gz
复制代码
您应该看到两个目录,包括 nexus 文件和 nexus 数据目录
重命名文件夹
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
复制代码
保存并退出文件。
IV. 改 nexus 服务帐户的用户。
编辑“nexus.rc”文件。
vim /opt/nexus/bin/nexus.rc
复制代码
取消注释“run_as_user”参数并添加新值。
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
复制代码
将以下值添加到文件中。
保存并退出文件
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 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
复制代码
罗列存储库
安装 nginx
设置系统启动 nginx
检查 Nginx 状态,如果服务未运行启动服务
systemctl status nginx
systemctl start nginx
复制代码
6. 为服务器设置 DNS 记录。
然后转到您的 DNS 管理器并为您的服务器添加 A 记录。
在这里,我们使用 AWS 路由 53 来设置我们的 DNS。
7. 使用 certbot 配置 SSL
I. 先安装 certbot 包
yum install certbot python2-certbot-nginx
复制代码
II. 安装证书
它会问几个问题,然后输入电子邮件、域名和所需的输入,如下所示。
安装完成后,打开 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:
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
复制代码
重新加载防火墙。
9. 为 Nginx 设置 SELinux 代理
setsebool -P httpd_can_network_connect 1
复制代码
10. 用您的主名浏览网站
eg: https://nexusrepo.fosslinux.com/
复制代码
11. 登录服务器
使用默认用户名“admin”登录。在服务器中运行以下命令并获取密码。
cat /opt/nexusdata/nexus3/admin.password
复制代码
首次登录后,您应该会看到一个类似的窗口,如下所示。
单击下一步并为管理员用户设置新密码。
再次单击下一步,您应该会看到“配置匿名访问”窗口。不要启用匿名访问。
单击下一步按钮,您可以看到完整的设置。
点击完成。
这就是在 CentOS 7 上安装 Sonatype Nexus Repository OSS 的全部内容。
评论