Minio 맞춤형 S3 Bucket을 사용하여 Gitlab 컨테이너 레지스트리를 사용하려면 어떻게 해야 합니까?제1부
기본적으로 gitlab Omnibus에는 사용할 수 있거나 사용하지 않을 수 있는 gitlab 레지스트리 설정이 있습니다.이 문서에서는 Minio S3 bucket과 통합하는 방법을 학습합니다.1부에서는 Minio 서버를 설치하고 구성합니다.
예비 지식
이 설정의 경우 다음이 필요합니다.
미니 설치
소스 코드를 컴파일하거나 바이너리 파일을 사용하여 Minio 서버를 설치할 수 있습니다.소스 코드에서 설치하려면 시스템에 적어도 Go 1.12를 설치해야 합니다.
먼저 서버에 로그인하여 efe를 사용자 이름으로 바꾸고, 서버의 ip를 Ubuntu 20.04 서버의 ip 주소로 바꾸십시오.
ssh efe@your_server_ip
그런 다음 패키지 데이터베이스를 업데이트해야 합니다.sudo apt update
그런 다음 홈페이지에서 Minio 서버의 바이너리 파일을 다운로드합니다.wget https://dl.min.io/server/minio/release/linux-amd64/minio
출력은 다음과 같습니다.Output
--2020-07-31 15:08:49-- https://dl.min.io/server/minio/release/linux-amd64/minio
Resolving dl.min.io (dl.min.io)... 178.128.69.202
Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 44511616 (42M) [application/octet-stream]
Saving to: ‘minio’
minio 100%[===================>] 42.45M 21.9MB/s in 1.9s
2020-07-31 15:08:51 (21.9 MB/s) - ‘minio’ saved [44511616/44511616]
다운로드가 완료되면 미니오라는 파일이 작업 디렉토리에 나타납니다.다음 명령을 사용하여 수행할 수 있습니다.sudo chmod +x minio
그런 다음 Minio의 systemd 시작 스크립트에서 찾고자 하는/usr/local/bin 디렉토리로 파일을 이동합니다.sudo mv minio /usr/local/bin
보안상의 이유로 Minio 서버가 루트 사용자로 실행되는 것을 피하는 것이 좋습니다.그래서 우리는 미니오 사용자와 그룹을 만들어야 한다.sudo useradd -r minio-user -s /sbin/nologin
그런 다음 Minio 바이너리 파일의 소유권을 Minio 사용자로 변경합니다.sudo chown minio-user:minio-user /usr/local/bin/minio
Minio, 다음 파일을 저장할 디렉터리가 필요합니다.sudo mkdir /usr/local/share/minio
이제 미니오 사용자의 소유권을 이 디렉토리에 부여해야 합니다.sudo chown minio-user:minio-user /usr/local/share/minio
이제 Minio 구성 파일을 저장하려면/etc에 디렉토리를 생성해야 합니다.sudo mkdir /etc/minio
그런 다음 미니 사용자에게 소유권을 다시 부여합니다.sudo chown minio-user:minio-user /etc/minio
이제 미니오 기본 프로파일을 추가하고 수정해야 합니다.vim /etc/default/minio
파일을 연 후 다음 행을 추가하여 몇 가지 중요한 환경 변수를 설정합니다.MINIO_ACCESS_KEY="minio"
MINIO_VOLUMES="/usr/local/share/minio/"
MINIO_OPTS="-C /etc/minio --address your_server_ip:9000"
MINIO_SECRET_KEY="miniostorage"
너는 스스로 변수를 바꾸어야 한다.Minio Systemd 부팅 스크립트를 설치할 때입니다.
curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
출력은 다음과 유사합니다.Output
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 835 100 835 0 0 6139 0 --:--:-- --:--:-- --:--:-- 6139
미니오의 내용을 심사하기 위해서.서비스를 적용하기 전에 텍스트 편집기에서 서비스를 엽니다.vim minio.service
다음과 같이 표시됩니다.[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local/
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
그런 다음 단위 파일 디렉토리를 변경해야 합니다.Systemd 는 유닛 파일을 Systemd 구성 디렉토리에 저장해야 합니다.sudo mv minio.service /etc/systemd/system
그런 다음 다음 다음 명령을 실행하여 모든 systemd 유닛을 다시 로드하고 Minio가 부트할 때 Minio를 시작하고 시작하도록 설정해야 합니다.sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
Minio 서버에서 기본 9000 포트를 사용합니다.따라서 방화벽을 통해 구성된 포트에 액세스할 수 있도록 설정해야 합니다.sudo ufw allow 9000
sudo ufw enable
다음과 같은 프롬프트가 표시됩니다.Output
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
이 점을 확인하려면 y 키를 누르고 을 입력합니다.출력은 다음과 같습니다.Output
Firewall is active and enabled on system startup
현재 Minio 서버는 트래픽을 수용할 준비가 되어 있지만 보안을 위해 Let's Encrypt(무료로 사용 가능) ssl을 Minio 서버에 구성하는 다른 절차가 필요합니다.먼저 방화벽을 통해 HTTP 및 HTTPS에 액세스할 수 있습니다.
sudo ufw allow 80
sudo ufw allow 443
완료되면 상태를 확인할 수 있습니다.sudo ufw status verbose
출력은 다음과 같습니다.Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
9000 ALLOW IN Anywhere
443 ALLOW IN Anywhere
80 ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
9000 (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
그런 다음 Certbot을 설치합니다.무료 어댑터 인증서를 생성하기 전에,certbot이 설치되어 실행 중인지 확인해야 합니다. 설치하려면 다음 명령을 실행하십시오.sudo apt update
sudo apt-get install letsencrypt
이제 인증서를 획득할 수 있습니다.sudo certbot certonly --standalone -d minio-server.your_domain
출력은 다음과 같습니다.Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):
전자 메일 메시지를 추가하고 Enter 키를 누릅니다.그런 다음 Let's Encrypt에 등록해야 합니다.
Output
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel:
A를 입력하고 Enter 키를 눌러 동의를 나타냅니다.다음 출력이 표시됩니다.
Output
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
Y나 N에 직접 대답할 수 있으며, 공개 키와 개인 키는/etc/letsencrypt/live/minio 서버에 생성되어 저장됩니다.도메인 이름 목록입니다.다음에 Minio 서버 설정 폴더에 있는certs 디렉터리에 두 개의 파일 (privkey.pem과fullchain.pem) 을 복사해서private로 이름을 바꿔야 합니다.중요:
sudo cp /etc/letsencrypt/live/minio-server.your_domain_name/privkey.pem /etc/minio/certs/private.key
그리고fullchain에 대해 같은 조작을 실행합니다.pem, 공용으로 명명됩니다.crt:sudo cp /etc/letsencrypt/live/minio-server.your_domain_name/fullchain.pem /etc/minio/certs/public.crt
지금 우리는 사유재산의 소유권을 바꾸어야 한다.키와 공공 키.crt - 미니 사용자:sudo chown minio-user:minio-user /etc/minio/certs/private.key
sudo chown minio-user:minio-user /etc/minio/certs/public.crt
Minio 서버 웹 인터페이스를 연결하기 전에 다시 시작해야 합니다.sudo systemctl restart minio
마지막으로 우리는 지향https://minio-server.your_domain:9000을 통해 웹 인터페이스에 접근할 수 있다.다음과 같은 로그인 화면이 표시됩니다.
이제 자격 증명을 입력하여 주 인터페이스에 로그인합니다.(소형 액세스 키, 소형 기밀 키)
그런 다음 다음과 같은 방법으로 Bucket을 만들 수 있습니다.
지금 이대로...다음은 두 번째 부분입니다.Gitlab 컨테이너 레지스트리를 Minio bucket에 연결하는 방법을 공유합니다.
Reference
이 문제에 관하여(Minio 맞춤형 S3 Bucket을 사용하여 Gitlab 컨테이너 레지스트리를 사용하려면 어떻게 해야 합니까?제1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/efe136/how-to-enable-gitlab-container-registry-with-minio-custom-s3-bucket-part1-3d3o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)