ミラーウェアハウスNexus 3.18.1
13547 ワード
説明:NexusはSonatypeが提供する倉庫管理プラットフォームであり、Nuexus Repossitory OSS 3はMaven、npm、Docker、YUM、Helmなどのフォーマットデータの格納と配布をサポートすることができる.
1)JDKのインストール
2)環境の構成
3)重荷
サービスを起動に追加
ssl証明書を申請し、/etc/nginx/certディレクトリの下に保存
説明:
1)8081はnexus serverのポートであり、nexus自身のサービスプログラムである.
2)6001はdocker proxyのポートであり、中央倉庫の代理とする.
3)6000はdocker hostedのポートであり、プッシュプルミラー
4)6001と6000はバックグラウンドに登録して対応する構成生成ポートを行う必要があり、ここではnginxを事前に設定しておく.
githubアドレス:https://github.com/mlabouardy/nexus-cli
現在のディレクトリで生成されます.credentialsファイル.上記に入力した情報が記録されています.
転載先:https://www.cnblogs.com/weavepub/p/11419139.html
一、jdkのインストール
1)JDKのインストール
yum install -y java-1.8.0-openjdk*
2)環境の構成
vim /etc/profile
# set java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3)重荷
source /etc/profile
echo "source /etc/profile" >> /etc/bashrc
java -version
二、nexusのインストール
2.1ダウンロード
mkdir -p /opt/nexus && cd /opt/nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.18.1-01-unix.tar.gz
tar -zxvf nexus-3.18.1-01-unix.tar.gz
mv nexus-3.18.1-01 nexus3.18
2.2構成
2.2.1 jdkの修正
vim /opt/data/nexus/nexus3.18/bin/nexus
INSTALL4J_JAVA_PREFIX="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64"
2.2.2起動ユーザーの変更
vim /opt/data/nexus/nexus3.18/bin/nexus.rc
run_as_user="root"
2.2.3データとログ保管場所の変更
vim /opt/data/nexus/nexus3.18/bin/nexus.vmoptions
-XX:LogFile=/opt/data/blob-stores/others/sonatype-work/nexus3/log/jvm.log
-Dkaraf.data=/opt/data/blob-stores/others/sonatype-work/nexus3
-Djava.io.tmpdir=/opt/data/blob-stores/others/sonatype-work/nexus3/tmp
2.2.4デフォルトポートの表示
cat /opt/data/nexus/nexus3.18/etc/nexus-default.properties |grep application-port
2.3起動
2.3.1起動スクリプト
vim /usr/lib/systemd/system/nexus.service
[Unit]
Description=nexus service
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/nexus3.18/bin/nexus start
ExecReload=/opt/nexus/nexus3.18/bin/nexus restart
ExecStop=/opt/nexus/nexus3.18/bin/nexus stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
2.3.2自己起動
サービスを起動に追加
systemctl daemon-reload
systemctl enable nexus
systemctl start nexus
三、nginxを取り付ける
3.1インストール
yum install -y nginx
3.2証明書申請
ssl証明書を申請し、/etc/nginx/certディレクトリの下に保存
mkdir /etc/nginx/cert
3.3 nginxを構成する.conf
vim /etc/nginx/nginx.conf
# server, :
upstream nexusserver{
server 172.16.2.158:8081;
}
upstream mirrornexus{
server 172.16.2.158:6001;
}
upstream nexusdocker{
server 172.16.2.158:6000;
}
説明:
1)8081はnexus serverのポートであり、nexus自身のサービスプログラムである.
2)6001はdocker proxyのポートであり、中央倉庫の代理とする.
3)6000はdocker hostedのポートであり、プッシュプルミラー
4)6001と6000はバックグラウンドに登録して対応する構成生成ポートを行う必要があり、ここではnginxを事前に設定しておく.
3.4サービスの構成
3.4.1サービスプログラム
vim /etc/nginx/conf.d/nexusserver.conf
server {
listen 443;
server_name nexus.wmq.com;
ssl on;
ssl_certificate cert/1566822_nexus.wmq.com.pem;
ssl_certificate_key cert/1566822_nexus.wmq.com.key;
client_max_body_size 0;
index index.html;
location / {
proxy_pass http://nexusserver;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name nexus.wmq.com;
client_max_body_size 0;
index index.html;
location / {
return 301 https://$server_name$request_uri;
}
}
3.4.2代理倉庫
vim /etc/nginx/conf.d/mirrornexus.conf
server {
listen 443;
server_name mirror.nexus.wmq.com;
ssl on;
ssl_certificate cert/mirror.nexus.wmq.com.pem;
ssl_certificate_key cert/mirror.nexus.wmq.com.key;
client_max_body_size 0;
index index.html;
location / {
proxy_pass http://mirrornexus;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name mirror.nexus.wmq.com;
client_max_body_size 0;
index index.html;
location / {
return 301 https://$server_name$request_uri;
}
}
3.4.3ミラーウェアハウス
vim /etc/nginx/conf.d/nexusdocker.conf
server {
listen 443;
server_name reg.nexus.wmq.com;
ssl on;
ssl_certificate cert/reg.nexus.wmq.pem;
ssl_certificate_key cert/reg.nexus.wmq.key;
client_max_body_size 0;
index index.html;
location / {
proxy_pass http://nexusdocker;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name reg.nexus.wmq.com;
client_max_body_size 0;
index index.html;
location / {
return 301 https://$server_name$request_uri;
}
}
3.5 nginxの起動
nginx -t
systemctl enable nginx
systemctl start nginx
3.6ドメイン名の解析
nexus.wmq.com、mirror.nexus.wmq.com、reg.nexus.wmq.com nexus
四、タイミングクリーンアップミラー
4.1ダウンロードツール
githubアドレス:https://github.com/mlabouardy/nexus-cli
mkdir /opt/nexus/clean-docker-images && cd /opt/nexus/clean-docker-images
wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli
chmod +x nexus-cli
4.2構成
./nexus-cli configure
Enter Nexus Host: http://127.0.0.1:8081
Enter Nexus Repository Name: docker-wmqe
Enter Nexus Username: admin
Enter Nexus Password: *******
現在のディレクトリで生成されます.credentialsファイル.上記に入力した情報が記録されています.
4.3スクリプト
vim clean-docker-images.sh
#! /bin/sh
CLI_HOME=/opt/nexus/clean-docker-images
cd $CLI_HOME
KEEP_VERSION_NUM=10
IMAGES=$($CLI_HOME/nexus-cli image ls|grep -v Total)
clean_images() {
for imgs in $(echo $IMAGES);
do
echo " $imgs";
$CLI_HOME/nexus-cli image delete -name $imgs -keep $KEEP_VERSION_NUM
done
}
clean_images
4.4計画タスク
crontab -e
0 1 * * * sh /opt/nexus/clean-docker-images/clean-docker-images.sh > /opt/nexus/clean-docker-images/clean-docker-images.log 2>&1
転載先:https://www.cnblogs.com/weavepub/p/11419139.html