[转帖]Linux搭建Nexus仓库+高可用方案
https://www.cnblogs.com/yangjianan/p/9090348.html
Linux搭建nexus仓库
1.安装jdk
1.1 获取安装包,解压到指定目录:
1 tar xf jdk.tar.gz -C /opt/export
1.2 配置环境变量:

1 # vim /etc/profile
2 export JAVA_HOME=/opt/export/jdk
3 export PATH=$JAVA_HOME/bin:$PATH
4 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
5 export RUN_AS_USER=root # 后边启动nexus需要
6
7 # source /etc/profile

1.3 出现下面结果,说明部署成功
1 # java -version
2 java version "1.7.0_80"
3 Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
4 Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
2.安装nexus
2.1下载安装
下载地址:
https://www.sonatype.com/download-oss-sonatype
https://help.sonatype.com/repomanager2/download/download-archives---repository-manager-oss
1 cd /opt
2 tar xf nexus-2.4.0-09-bundle.tar.gz
解压后有两个目录:
1 $ ls /opt/
2 nexus-2.4.0-09 sonatype-work
更改目录名称:
1 mv nexus-2.4.0-09 nexus
2.2 更改nexus配置文件
默认端口为8081,可根据需要修改:

1 $ vim /opt/nexus/conf/nexus.properties
2 # Jetty section
3 application-port=8081 # 修改为10890
4 application-host=0.0.0.0
5 nexus-webapp=${bundleBasedir}/nexus
6 nexus-webapp-context-path=/nexus
7
8 # Nexus section
9 nexus-work=${bundleBasedir}/../sonatype-work/nexus
10 runtime=${bundleBasedir}/nexus/WEB-INF

2.3 关闭防火墙或打开10890端口
1 /etc/init.d/iptables stop
2 chkconfig iptables off
2.4 启动nexus
1 $ /opt/nexus/bin/jsw/linux-x86-64/nexus start
2 ****************************************
3 WARNING - NOT RECOMMENDED TO RUN AS ROOT
4 ****************************************
5 Starting Nexus OSS...
6 Started Nexus OSS.
如果没有配置环境变量RUN_AS_USER=root,会报错:
1 # /opt/nexus/bin/jsw/linux-x86-64/nexus start
2 ****************************************
3 WARNING - NOT RECOMMENDED TO RUN AS ROOT
4 ****************************************
5 If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
2.5 检查进程和端口

3.浏览器访问nexus
1 http://ip地址:8081/nexus
2 登录,默认用户名 admin 默认密码 admin123
访问登录:

4.迁移nexus
如果想要将nexus仓库迁移,只需要打包此目录,迁移到新nexus主机:
1 $ du -sh /opt/sonatype-work/nexus/storage
2 47G /opt/sonatype-work/nexus/storage/
由于文件过大,可采用rsync的方式。
本文参考:https://blog.csdn.net/sunyanxiong123/article/details/68926610
Nexus高可用方案
描述:由于nexus进程会因为某些原因挂掉,为了不影响使用,决定做nexus高可用。
准备:根据上一章,准备两台服务器搭建nexus,主:192.168.51.204 maven01,备:192.168.51.207 maven02:
1.搭建keepalived
主:

1 # cat /etc/keepalived/keepalived.conf
2 ! Configuration File for keepalived
3
4 global_defs {
5 router_id maven01
6 }
7 vrrp_script chk_http_port { #检测nexus端口是否存在,不存在进行vip漂移
8 script "</dev/tcp/127.0.0.1/10890"
9 interval 1
10 weight -30
11 fall 1
12 rise 1
13 }
14 vrrp_instance VI_1 {
15 state MASTER
16 interface eth0
17 virtual_router_id 88
18 priority 150
19 advert_int 1
20 authentication {
21 auth_type PASS
22 auth_pass 1111
23 }
24 virtual_ipaddress {
25 192.168.51.210
26 }
27 track_script {
28 chk_http_port
29 }
30 }

备:

1 # cat /etc/keepalived/keepalived.conf
2 ! Configuration File for keepalived
3
4 global_defs {
5 router_id maven01
6 }
7 vrrp_script chk_http_port {
8 script "</dev/tcp/127.0.0.1/10890"
9 interval 1
10 weight -30
11 fall 1
12 rise 1
13 }
14 vrrp_instance VI_1 {
15 state MASTER
16 interface eth0
17 virtual_router_id 88
18 priority 100
19 advert_int 1
20 authentication {
21 auth_type PASS
22 auth_pass 1111
23 }
24 virtual_ipaddress {
25 192.168.51.210
26 }
27 track_script {
28 chk_http_port
29 }
30 }

2.同步数据
描述:对比同步数据方式,️定时任务rsync同步:不及时,容易遗漏数据。️nfs共享:能够解决数据一致问题,但是主一旦宕机,备库起不到任何作用。️sersync或者inotify+rsync:可以实现实时同步,最后选用inotify方式。
2.1 部署rsync
2.1.1 备:部署rsync服务端
安装rsync软件
1 yum install -y rsync
编写配置文件

1 $ cat /etc/rsyncd.conf
2 #created by yjn at 2018
3
4 uid = rsync
5 gid = rsync
6 use chroot = no
7 max connections = 10
8 strict modes = yes
9 pid file = /var/run/rsyncd.pid
10 lock file = /var/run/rsync.lock
11 log file = /var/log/rsyncd.log
12
13 [nexus]
14 path = /opt/sonatype-work/nexus/storage
15 comment = "nexus backup dir"
16 ignore errors
17 read only = no
18 write only = no
19 hosts allow = 192.168.0.0/16
20 auth users = rsync_backup
21 secrets file = /etc/rsync.password

创建备份目录的管理用户
1 useradd -s /sbin/nologin -M rsync
创建安全认证文件
1 echo "rsync_backup:123" >/etc/rsync.password
2 chmod 600 /etc/rsync.password
修改备份目录属主
1 chown -R rsync.rsync /opt/sonatype-work/nexus/storage
启动rsync服务
1 rsync --daemon
2 说明:rsync服务的端口号为873端口(tcp)
2.1.2 主:部署rsync客户端
安装rsync软件
1 yum install -y rsync
创建安全认证文件
1 echo "123" >/etc/rsync.password
2 chmod 600 /etc/rsync.password
2.2 部署inotify-tools软件
inotify软件的参考资料链接:https://github.com/rvoicilas/inotify-tools/wiki

1 # yum install -y inotify-tools
2 Loaded plugins: fastestmirror, security
3 Setting up Install Process
4 Loading mirror speeds from cached hostfile
5 * base: mirrors.zju.edu.cn
6 * extras: mirror.bit.edu.cn
7 * updates: mirrors.tuna.tsinghua.edu.cn
8 No package inotify-tools available.
9 Error: Nothing to do

没有这个包,更新epel源:
1 yum install -y epel-release && yum update
2.3 inotify+rsync结合脚本同步nexus
2.3.1 写同步脚本

#!/bin/bash
########### inotifywait -mrq /opt/sonatype-work/nexus/storage --format '%w%f' -e create,delete,close_write,moved_to|\
while read line
do
rsync -az --delete /opt/sonatype-work/nexus/storage/* rsync_backup@192.168.51.207::nexus --password-file=/etc/rsync.password &>/dev/null
done

2.3.2 后台执行:
1 sh /yjn/scripts/backup.sh &
2.3.3 发现报错:
1 Failed to watch /opt/sonatype-work/nexus/storage; upper limit on inotify watches reached!
2 Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches'.
注意:inotify默认监控同步文件的个数是有限制的,8192,通过配置文件/proc/sys/fs/inotify/max_user_watches可以调整监控的个数。此问题明显就是文件太多,导致无法监控。
2.3.4 解决:
1 echo 8192000 > /proc/sys/fs/inotify/max_user_watches
此时再执行脚本,没有报错信息,验证可以同步。
[转帖]Linux搭建Nexus仓库+高可用方案的更多相关文章
- Linux搭建Nexus仓库+高可用方案
Linux搭建nexus仓库 1.安装jdk 1.1 获取安装包,解压到指定目录: tar xf jdk.tar.gz -C /opt/export 1.2 配置环境变量: # vim /etc/pr ...
- MySQL高可用方案-MySQL InnoDB Cluster
MySQL InnoDB Cluster简介 MySQL InnoDB Cluster 是最新GA的MySQL高可用方案,利用MySQL Group Replication和MySQL Shell.M ...
- Linux 搭建Nexus
Linux 安装Maven和nexus代理仓库 1 说明 环境:redhat Enterprise Linux Server5.3-x64. 版本:Maven 3.0.5 ,Nexus-2.5. ...
- 搭建 RabbitMQ Server 高可用集群
阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 ...
- 搭建 RabbitMQ Server 高可用集群【转】
阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 ...
- Kubernetes容器集群 - harbor仓库高可用集群部署说明
之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...
- 【转】harbor仓库高可用集群部署说明
之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...
- 基于keepalived搭建MySQL的高可用集群
MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...
- Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)
当下Linux运维技术越来越受到企业的关注和追捧, 在某些企业, 尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案.那么如何实施Llinux集群架构,才能既有效 ...
- (转)基于keepalived搭建MySQL的高可用集群
基于keepalived搭建MySQL的高可用集群 原文:http://www.cnblogs.com/ivictor/p/5522383.html MySQL的高可用方案一般有如下几种: keep ...
随机推荐
- 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子
大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...
- ChatGPT 沦为了我的打工仔
大家好,我是老章 最近在折腾之前搞的R-bookdown网站.Jekyll博客,还有刚上了Astro做的周刊.Astro Starlight做的文档站 R2ML:https://r2ml.zhangl ...
- Netty 组件介绍
BootStrap Netty 中的 BootStrap 分为两种:一种是客户端的 BootStrap:一种是服务端的 ServerBootStrap. 客户端的 BootStrap 初始化客户端,该 ...
- Golang实现JAVA虚拟机-指令集和解释器
原文链接:https://gaoyubo.cn/blogs/f57f32cf.html 前置 Golang实现JAVA虚拟机-解析class文件 Golang实现JAVA虚拟机-运行时数据区 一.字节 ...
- Text Intelligence - TextIn.com AI时代下的智能文档识别、处理、转换
一.智能文档处理介绍 在AI时代,智能文档处理技术正变得越来越重要.它包括了智能文字识别(OCR).智能文档信息抽取.文档图像处理以及文档转换等多个方面.这些技术共同构成了现代信息处理的核心,广泛应用 ...
- 基于lio-sam框架,教你如何进行回环检测及位姿计算
摘要:本篇主要解析lio-sam框架下,是如何进行回环检测及位姿计算的. 本文分享自华为云社区<lio-sam框架:回环检测及位姿计算>,作者:月照银海似蛟龙 . 前言 图优化本身有成形的 ...
- GaussDB(for Influx)与开源企业版性能对比
摘要:相比于企业版InfluxDB,GaussDB(for Influx)能为客户提供更高的写入能力.更稳定的查询能力.更高的数据压缩率,高效满足各大时序应用场景需求. 本文分享自华为云社区<华 ...
- 云小课 | 使用ROMA API,API管理从此不用愁!
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:ROMA API致 ...
- 基于分发与计算的GRTN全球实时传输网络
一张能同时满足「分发」与「计算」需求的网. 从直播趋势看「分发」与「计算」 阿里云直播产品架构图中,主要分为端和云两个部分:在端侧,主要包含推流端和播放端:在云侧,一是基于分布式节点构建的传输网,二是 ...
- #pragma的常用方法
概述 我们在写代码时,总会遇到头文件多次包含的情况,刚开始时我们使用宏定义进行控制,之后发现有#pragma once这样简单的东西,当时是很兴奋,以为#pragma就这一种用法.唉~,现在想想当时还 ...