使用Nexus配置Linux Yum Repository代理

1、使用場景
java

    在生產環境中,咱們不可能全部的服務器都能鏈接外網更新RPM包,比較理想的環境是:有一臺Linux服務器能夠鏈接外網,剩餘的服務器經過這臺YUM服務器更新。之前比較傳統的作法是先把包下載到內網中的YUM服務器上,而後經過createrepo命令生成本地倉庫,其他服務器經過HTTP訪問這個連接,這種作法比較費時費事。有沒有一種比較好的方式,讓咱們直接經過這臺服務器代理鏈接到公網的16三、阿里 YUM倉庫呢,這就是本次介紹的Nexus代理。不管你的客戶機是CentOS6仍是CentOS7又或者是Ubuntu,不論你是想用YUM仍是PIP又或者是NPM包管理器,Nexus都能知足你的需求。
centos


2、安裝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


3、配置Nexuside

    1. 使用瀏覽器打開http://IP:8081/,用戶名密碼是admin:admin123ui

    2. 點擊配置->Repositories->選擇類型(yum proxy)url

    3. 自定義一個名字,例如:yum-proxy
      代理

    4. 輸入URL: http://mirrors.163.com/centos/unix

    5. 保存ip


4、客戶機配置yum repo文件

# cat nexus.repo
[nexus]
name=Nexus Repository
baseurl=http://IP:8081/repository/yum-proxy/$releasever/os/$basearch/
enabled=1
gpgcheck=0


5、附上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代理服務器上拉下來,速度會比外網下載快很不少!

相關文章
相關標籤/搜索