使用Nexus配置Linux Yum Repository代理
阿新 • • 發佈:2018-05-15
CentOS7 yum Linux 一、使用場景
在生產環境中,我們不可能所有的服務器都能連接外網更新RPM包,比較理想的環境是:有一臺Linux服務器可以連接外網,剩余的服務器通過這臺YUM服務器更新。以前比較傳統的做法是先把包下載到內網中的YUM服務器上,然後通過createrepo命令生成本地倉庫,其余服務器通過HTTP訪問這個鏈接,這種做法比較費時費事。有沒有一種比較好的方式,讓我們直接通過這臺服務器代理連接到公網的163、阿裏 YUM倉庫呢,這就是本次介紹的Nexus代理。無論你的客戶機是CentOS6還是CentOS7又或者是Ubuntu,不論你是想用YUM還是PIP又或者是NPM包管理器,Nexus都能滿足你的需求。
二、安裝Nexus
這裏我使用CentOS7作為YUM Repository代理服務器
# 確認已安裝JRE8 # java -version openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode) # 創建nexus用戶,並設置該用戶File Handle Limits # useradd nexus # echo "nexus - nofile 65536" >> /etc/security/limits.conf # 下載並解壓nexus到/opt目錄,並設置nexus用戶權限 # wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz # tar -xzvf latest-unix.tar.gz -C /opt # mv /opt/nexus* /opt/nexus # chown -R nexus:nexus /opt/nexus /opt/sonatype-work/ # 設置服務啟動用戶 # echo 'run_as_user="nexus"' > /opt/nexus/bin/nexus.rc # 這裏使用systemd管理服務 # cat <<EOF >/etc/systemd/system/nexus.service [Unit] Description=nexus service After=network.target [Service] Type=forking ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Restart=on-abort [Install] WantedBy=multi-user.target EOF # systemctl daemon-reload # systemctl enable nexus.service # systemctl start nexus.service # 最後,查看log了解服務運行狀態 # tail -f /opt/sonatype-work/nexus3/log/nexus.log
三、配置Nexus
使用瀏覽器打開http://IP:8081/,用戶名密碼是admin:admin123
點擊配置->Repositories->選擇類型(yum proxy)
自定義一個名字,例如:yum-proxy
輸入URL: http://mirrors.163.com/centos/
保存
四、客戶機配置yum repo文件
# cat nexus.repo [nexus] name=Nexus Repository baseurl=http://IP:8081/repository/yum-proxy/$releasever/os/$basearch/ enabled=1 gpgcheck=0
五、附上163服務器CentOS7 repo文件內容
[base] name=CentOS-$releasever - Base - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
至此,客戶端就可以連接自己的repo服務器下載rpm了,如果所須要的包是第一次下載,那麽proxy會連接指定的外網YUM倉庫下載,但如果是proxy已經存在的,那麽直接從proxy代理服務器上拉下來,速度會比外網下載快很很多!
使用Nexus配置Linux Yum Repository代理