【转自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
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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
保存并退出文件。
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
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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 的全部内容。