【转自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版本以确保您已准备好进入下载Repo的下一步。
java -version
复制代码
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
复制代码
保存并退出文件。
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。
7. 使用 certbot 配置 SSL
I. 先安装certbot包
yum install certbot python2-certbot-nginx
复制代码
II. 安装证书
certbot --nginx
复制代码
它会问几个问题,然后输入电子邮件、域名和所需的输入,如下所示。
安装完成后,打开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/
复制代码
11. 登录服务器
使用默认用户名“admin”登录。在服务器中运行以下命令并获取密码。
cat /opt/nexusdata/nexus3/admin.password
复制代码
首次登录后,您应该会看到一个类似的窗口,如下所示。
单击下一步并为管理员用户设置新密码。
再次单击下一步,您应该会看到“配置匿名访问”窗口。不要启用匿名访问。
单击下一步按钮,您可以看到完整的设置。
点击完成。
这就是在 CentOS 7 上安装 Sonatype Nexus Repository OSS 的全部内容。