首页 > 编程语言 >python私有仓库搭建(Nexus)

python私有仓库搭建(Nexus)

时间:2024-09-24 15:38:25浏览次数:9  
标签:nexus nginx python backup Nexus dateLog 私有 docker data

架构图

Nexus安装
1.安装docker

sudo dnf update -y
sudo dnf install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io

2.docker拉取镜像

mkdir /data/nexus-data -p #映射到/data/nexus-data 目录下
 
docker run -d -p 8081:8081 --name nexus -v /data/nexus-data:/nexus-data sonatype/nexus3 
 
docker exec nexus cat /nexus-data/admin.password #查看密码

3.Nexus仓库设置(主)


4.Nexus仓库设置(备)
跟主的配置是一样的。
5.同步仓库
1.设置主仓库的备份时间为每天的0点

#我这里的nexus3是使用docker安装的,我从挂载目录里面装数据拿出来打包
cd  /data/nexus-data
dateLog=$(date +%y%m%d)
  
#echo${dateLog}
  
mkdir "nexus_backup_"$dateLog""
  
chmod -R 777 "nexus_backup_"$dateLog""
  
cp -r  /opt/nexus3/nexus-data/nexus-data/backups  "/opt/nexus3/nexus-data/nexus-data/nexus_backup_"$dateLog""
  
#想要完整恢复需要如下两个文件
cp -r /data/nexus-data/blobs  "/data/nexus-data/nexus_backup_"$dateLog""
  
cp -r /data/nexus-data/keystores  "/data/nexus-dataexus-data/nexus_backup_"$dateLog""
  
sleep 2
  
tar -czvf "nexus_backup_"$dateLog".tar.gz"  "nexus_backup_"$dateLog""
  
#传输到备份服务器上
sshpass -p xxxxx密码 scp  "/opt/nexus3/nexus-data/nexus-data/nexus_backup_"$dateLog".tar.gz"  [email protected]:"/opt/backup/nexus/nexus_backup_"$dateLog".tar.gz"
  
sleep 4
  
rm -rf nexus_backup_"$dateLog"*
  
#进入到定时任务生成的备份文件夹,删除备份文件
cd /data/nexus-data/nexus-data/backups
  
#删除主机生成的备份文件
rm -rf *

3.我这里设置高可用出现了 机器宕机的情况还是可以访问VIP的IP(一样也是可以拉取镜像)需要手动同步一下。
6.更新日志查看&&删除包操作

7.高可用
使用keepalived跟nginx 进行设置高可用

nginx配置主要配置
 
# Load modular configuration files from the /etc/nginx/conf.d directory.
    include /etc/nginx/conf.d/*.conf;
 
    upstream nexus_backend {
        server 192.168.60.56:8081 max_fails=3 fail_timeout=10s;
        server 192.168.61.44:8081 backup;
    }
 
    server {
        listen 80;
        server_name 192.168.61.8;  # Use the virtual IP address provided by Keepalived
 
        location / {
            proxy_pass http://nexus_backend;
            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_redirect off;
            proxy_http_version 1.1;
        }
 
global_defs {
    notification_email {
        [email protected]  #设置报警收件人邮件地址,可以设置多个,每行一个。需要开启sendmail服务。
    }
    notification_email_from [email protected]#发件人
    smtp_server smtp.qq.com   #设置SMTP Server地址
    smtp_connection_timeout 30   #设置SMTP Server的超时时间
    router_id nginx_master       #表示运行Keepalived服务器的一个标识,唯一的
}
#检测脚本
vrrp_script chk_http_port {
#    script "killall -0 nginx" # 这个脚本只做信号检查,功能弱了一些,一般都自定义脚本
    script "/opt/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight -2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state MASTER            # 指定keepalived的角色,MASTER为主,BACKUP为备 说明:可以都设置为BACKUP,先启动为主,然后nopreempt才能有效
    interface ens18         # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
    virtual_router_id 66    # 虚拟路由编号,主从要一致
    priority 100            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    nopreempt               # 设置为不抢占,说明:这个配置只能在BACKUP主机上面设置 
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 1111
    }
    track_script {
        chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.61.200            # 定义虚拟ip(VIP),可多设,每行一个
    }
}```


```检测nginx存活脚本
 
# vim /opt/chk_ngx.sh    # 监测nginx负载均衡服务的脚本,可根据nginx进程状态来切换keepalived的状态。
#!/bin/bash
status=$(ps -C nginx --no-headers | wc -l)
if [ $status -eq 0 ]; then    # nginx服务停止后,再次启动nginx。
    /usr/local/nginx/sbin/nginx
    sleep 2
    counter=$(ps -C nginx --no-headers | wc -l)
    if [ "${counter}" -eq 0 ]; then    # nginx再次启动失败后,停止master节点的keepalived,切换并启用backup节点。
        systemctl stop keepalived
    fi  
fi

访问测试

标签:nexus,nginx,python,backup,Nexus,dateLog,私有,docker,data
From: https://www.cnblogs.com/Rohing/p/18429246

相关文章

  • 基于python+flask框架的开放实验室网上预约系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育体系的不断发展和教育资源的日益丰富,实验室作为培养学生实践能力和创新精神的重要场所,其高效管理与利用成为高校亟需解决的问......
  • 基于python+flask框架的具有动漫特色的分享网站的设计与实现(开题+程序+论文) 计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,数字娱乐产业迎来了前所未有的繁荣,尤其是动漫文化在全球范围内的影响力日益增强。动漫爱好者群体庞大且活跃,他们......
  • 基于python+flask框架的旧物公益捐赠系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会的快速发展和消费水平的不断提升,物品更新换代的速度日益加快,导致大量尚具使用价值的旧物被闲置或丢弃,这不仅造成了资源的极大浪费......
  • 车辆合格证识别接口-汽车管理智能化-python示例
    随着汽车行业的蓬勃发展和数字化进程的加快,如何高效、准确地管理车辆信息成为众多企业面临的重要挑战。新车合格证作为新车上牌、车辆注册和管理的重要凭证,其识别与录入的准确性直接关系到业务流程的顺畅。新车合格证识别接口应运而生,为汽车行业的各类企业提供了一种高效、智......
  • kl散度,K近邻估计法(K-Nearest Neighbors, KNN)是一种基本的分类与回归方法,通常用于分类
     K近邻估计法(K-NearestNeighbors,KNN)是一种基本的分类与回归方法,通常用于分类任务。在Python中,你可以使用scikit-learn库来实现KNN算法。下面是一个简单的示例,展示如何使用scikit-learn来实现KNN分类器。首先,确保你已经安装了scikit-learn库。如果没有安装,可以通过运行pipinsta......
  • Python中,你可以使用`scipy.stats`库中的`entropy`函数来计算两个连续变量之间的KL散度
    在Python中,你可以使用`scipy.stats`库中的`entropy`函数来计算两个连续变量之间的KL散度。这个函数计算的是两个概率分布之间的熵,即KL散度。以下是一个使用`scipy`计算KL散度的示例:首先,你需要安装`scipy`库(如果还未安装的话):```bashpipinstallscipy```然后,你可以使用以下代码......
  • Python字典进阶:setdefault技巧让你的代码更优雅,用setdefault优化你的Python数据处理流
    推荐阅读:数据科学的秘密武器:defaultdict——Python字典的自动化填充神器,让数据结构更灵活一、什么是setdefaultPython中的setdefault方法是字典(dict)类型的一个非常实用的方法,它允许开发者在尝试访问字典中不存在的键时,自动为该键设置一个默认值,并返回这个默认值。 二、s......
  • 华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
    一、引言在当今数字化办公的时代,在线办公套件的需求日益增长。华为Flexus云服务器凭借其强大的性能和稳定性,为搭建OnlyOffice私有化在线办公套件提供了理想的平台。在2024年9月14日这个充满探索精神的日子里,我们开启利用华为Flexus云服务器搭建OnlyOffice的旅程。二、华为Flexus云......
  • Python写入文件内容:从入门到精通
    在日常编程工作中,我们常常会遇到需要将数据保存至磁盘的需求。无论是日志记录、配置文件管理还是数据持久化,掌握如何有效地使用Python来写入文件内容都是必不可少的一项技能。本文将从基础语法开始,逐步深入探讨Python中写入文件内容的各种技巧,并通过具体的实例帮助你快速上手,直至能......
  • 基于SqlAlchemy+Pydantic+FastApi的Python开发框架
    随着大环境的跨平台需求越来越多,对与开发环境和实际运行环境都有跨平台的需求,Python开发和部署上都是跨平台的,本篇随笔介绍基于SqlAlchemy+Pydantic+FastApi的Python开发框架的技术细节,以及一些技术总结。最近这几个月一直忙于Python开发框架的整合处理,将之前开发框架中很多重要......