devops/CICD

GitLab + ArgoCD를 활용한 CI/CD (공유폴더의 index.html 자동 배포)<3>

Hoony.Song 2023. 6. 2. 20:03
반응형

NFS를 이용하여 공유 폴더의 index.html 적용하기 

NFS 서버

 

  • nfs를 설치 합니다
apt-get install -y nfs-kernel-server

 

  • mount 할 폴더를 생성 합니다
mkdir -p mnt/shared

 

  • /etc/exports 에서 ip를 등록 합니다
vim /etc/exports 

/home/user/mnt/shared 192.168.42.0/24(rw,sync,no_subtree_check) # 0/24는 0~255 까지 등록

 

  • 폴더 권한을 변경 합니다
chmod 777 /home/user/mnt/shared

 

  • test용 파일을 생성 합니다
touch /home/user/mnt/shared/test

 

Client서버

 

  • nfs를 설치 합니다
apt-get install -y nfs-common cifs-utils

 

  • 재부팅 되도 자동 연결 되도록 fstab에 마운트를 등록 합니다
vim /etc/fstab

192.168.42.200:/home/user/mnt/shared /home/user/mnt/shared   nfs     rw      0       0

 

  • mount 할 폴더를 생성 합니다
mkdir -p mnt/shared

 

  • NFS 서버와 Client 서버의 폴더를 마운트 합니다
mount 192.168.42.200:/home/user/mnt/shared  /home/user/mnt/shared

 

  • 연결 후 test 파일 확인
ls

 

  • Git repository에 리소스 폴더 리눅스로 가져옵니다
git clone --branch master http://192.168.42.100:8888/dev/test.git

 

  • nginx html폴더를 외부의 호스트 폴더와 연결합니다
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: shared
          mountPath: /usr/share/nginx/html
      volumes:
      - name: shared
        hostPath:
          path: /home/user/mnt/shared/test
          type: Directory

 

  • git push
git add .
fatal: detected dubious ownership in repository at
'/home/user/mnt/shared/test'
To add an exception for this directory, call:

git config --global --add safe.directory /home/user/mnt/shared/test

이런 에러가 발생 하는데 폴더가 안전하지 않다는 경고가 뜹니다
맨 밑줄에 커맨드를 입력 하면 됩니다
git config --global --add safe.directory /home/user/mnt/shared/test

 

root@master:/home/user/mnt/shared/test# git commit -m "nginx 디렉토리 yaml 수정6"
***Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit--global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@master.(none)')

#이런 에러가 발생 하는데 email과 name을 설정 하면 됩니다
root@master:/home/user/mnt/shared/test# git config --global user.email " XX@naver.com"
root@master:/home/user/mnt/shared/test# git config --global user.name "SRE"

 

git push origin master
#gitlab에 로그인 하라고 나옵니다
Username for 'http://192.168.42.100:8888': <gitlab ID > root
Password for 'http://root@192.168.42.100:8888': root의 password 입력

 

  • gitlab repository에 정상적으로 올라 왔는지 확인 합니다

 

  • index.html 을 수정 하고 Git push 했을 때 argcd를 통해 정상적으로 배포가 되었는지 확인 합니다
    • comment를 통해 확인 할 수 있습니다
    • 전부 파란색이 뜨고 홈페이지가 바뀐걸 확인 합니다

 

 

반응형