강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

happymydog님의 프로필 이미지
happymydog

작성한 질문수

[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기

1.1. .gitlab-ci.yml과 CI/CD 파이프라인

gitlab-ci.yml과 CI/CD 파이프라인 까지 수강중입니다.

해결된 질문

작성

·

16

0

1. 무엇을 하고 싶으신가요?

현재 ocp 로 구축된 서버가 있는데 , 이 서버에 gitlab을 컨테이너로 올려서 구축후에 테스트해보고 싶습니다.

 

2. 언제, 어떤 오류가 발생하시나요?

 

3. 어떤 시도를 해보셨나요?

 

4. 작성한 코드를 공유해주세요.

답변 2

0

천강민님의 프로필 이미지
천강민
지식공유자

안녕하세요. 구축 환경 상태를 제가 알 수가 없어서 매우 간단하게 쉘스크립만 제공해드려 봅니다.

GITLAB_PORT="80"
GITLAB_VERSION="latest"
GITLAB_HOME="/srv/gitlab"

# Update system and install Docker
echo "Installing Docker..."
yum update -y
yum install -y docker

# Start Docker service
echo "Starting Docker service..."
systemctl start docker
systemctl enable docker

# Add ec2-user to docker group
usermod -aG docker ec2-user

# Create GitLab directories
echo "Creating GitLab directories..."
mkdir -p $GITLAB_HOME/{config,logs,data}

docker run --detach \
  --hostname "$INSTANCE_IP" \
  --publish $GITLAB_PORT:80 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:$GITLAB_VERSION

echo "===================================="
echo "GitLab Docker Setup Completed: $(date)"
echo "===================================="
echo "GitLab will be available at: http://$INSTANCE_IP:$GITLAB_PORT"
echo "Initial setup may take 3-5 minutes..."
echo ""
echo "To get the initial root password:"
echo "  docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password"
echo ""
echo "To check GitLab logs: docker logs -f gitlab"

서버에서 위와 같이 입력하면 gitlab을 띄울 수 있습니다.

https, 운영 레벨 설정 등은 환경마다 그리고 정책마다 다를 수 있어서 이 정도로만 제공드리는 점 양해 부탁드립니다.

감사합니다.

천강민 드림.

천강민님의 프로필 이미지
천강민
지식공유자

참고로 기본 ID는 root입니다.

0

안녕하세요, 인프런 AI 인턴입니다. happymydog님.

OCP(OpenShift Container Platform) 환경에서 GitLab을 컨테이너로 배포하고 싶으시군요. OpenShift를 사용하여 GitLab을 배포하는 것은 가능하지만, 일부 설정이 필요할 수 있습니다.

OpenShift에서 GitLab 배포하기

  1. GitLab 컨테이너 이미지 준비: GitLab은 공식 Docker 이미지를 제공합니다. OpenShift에서 사용할 수 있도록 필요한 이미지를 dockerhub에서 가져와야 합니다.

  2. Persistent Storage 설정: GitLab은 데이터를 지속적으로 저장해야 하기 때문에 Persistent Volume Claim(PVC)을 사용하여 데이터를 보존합니다. OpenShift에서 PVC를 설정하여 데이터를 유지하세요.

  3. GitLab 컨테이너 배포:
    ”`yaml
    apiVersion: apps.openshift.io/v1
    kind: DeploymentConfig
    metadata:
    name: gitlab
    spec:
    replicas: 1
    selector:
    app: gitlab
    template:
    metadata:
    labels:
    app: gitlab
    spec:
    containers:
    - name: gitlab
    image: gitlab/gitlab-ce:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: gitlab-storage
    mountPath: /var/opt/gitlab
    volumeClaimTemplates:

    • metadata:
      name: gitlab-storage
      spec:
      accessModes: [ “ReadWriteOnce” ]
      resources:
      requests:
      storage: 10Gi

    ”`
    위와 같은 설정 예시는 GitLab을 OpenShift에 배포하기 위한 기본적인 템플릿 구성입니다. 환경에 맞게 변경해야 합니다.

  4. 외부 접속 설정: OpenShift의 Route 기능을 사용하여 외부에서 GitLab에 접속할 수 있도록 합니다.

  5. Security Context 설정: OpenShift는 보안 정책으로 인해 컨테이너 내부의 root 권한 사용을 제한할 수 있습니다. 필요에 따라 SecurityContextConstraints(SCC)를 설정하세요.

이러한 설정을 통해 OCP에서 GitLab을 성공적으로 실행할 수 있을 것입니다. 각 환경에 맞는 구체적인 설정이 필요할 수 있으니 공식 문서나 관련 자료를 참고하여 세부 조정을 하세요.

저는 질문자님의 이해를 돕고자 유사한 설명과 구조를 제공해드리고 있습니다. 아직 개선 중인 기능으로, 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

happymydog님의 프로필 이미지
happymydog

작성한 질문수

질문하기