DevOps

    [Ubuntu] screen 명령어 사용법

    설치 > apt update > apt install screen 확인 > screen --version 명령어 > screen --help Use: screen [-opts] [cmd [args]] or: screen -r [host.tty] Options: -4 Resolve hostnames only to IPv4 addresses. -6 Resolve hostnames only to IPv6 addresses. -a Force all capabilities into each window's termcap. -A -[r|R] Adapt all windows to the new display width & height. -c file Read configuration file instead of '...

    Ubuntu 20 MariaDB Conf Path

    Ubuntu 20.04 MariaDB 10.3.34 cnf 파일 위치 /etc/mysql/mariadb.conf.d/50-server.cnf vi /etc/mysql/mariadb.conf.d/50-server.cnf

    쿠버네티스 파드 강제 종료하기

    파드를 아무리 지우려고 시도를 해보아도, 종료되지 않는 문제가 생겼었습니다. > kubectl get pod NAME READY STATUS RESTARTS AGE ds-nginx-f5c4s 0/1 Terminating 0 44h > kubectl delete pod ds-nginx-f5c4s --grace-period 0 pod "ds-nginx-f5c4s" deleted ^C 아무리 시간이 지나도 삭제가 되지 않아 아래의 방법대로 해결하였습니다. > kubectl delete pod ds-nginx-f5c4s --grace-period 0 --force warning: Immediate deletion does not wait for confirmation that the running resourc..

    Apache2, Nginx SSL 인증서(with 체인키) 등록

    무료 인증서 (letsencrypt 와 같은) 만 이용을 하다가 처음으로 COMODO Sectigo 에서 60,000원 짜리 인증서를 구매하였습니다. 인증서가 발급이 되고, 파일을 받아서 보니 내용물 중 ChainCA 라는 폴더가 있고 체인 인증서 필수 라는 문서가 추가로 있었습니다. 무료 인증서를 이용할 때에는 체인같은건 못봤는데?!?! 하고 검색해보니 아주 잘 설명된 사이트를 발견하였습니다. https://xe1.xpressengine.com/tip/23021383 https://sir.kr/pg_tip/14429 http://archive.today/bGddI 설명과 간단한 보안 팁까지 친절하게 글쓰신 분이 설명을 잘 해놓으셨더라구요, 감사합니다 성공적!

    port binding error, An attempt was made to access a socket in a way forbidden by its access permissions

    artisan serve 를 실행하려 하니 다음과 같은 오류가 발생하였다. 뭐지? 싶어서 명령어를 하나 더 입력하여 확인해본 결과.. netsh int ipv4 show excludedportrange protocol=tcp 100개 단위로 포트들이 7926 부터 8595 까지 점유가 되어 있었다... 추측으로는 wslv2 때문이지 않을까 싶다. resolve!

    No package ‘oniguruma’ found (PHP configure error Package requirements (oniguruma) were not met)

    RUN docker-php-ext-install zip mysqli pdo pdo_mysql mbstring Docker Image 를 Build 하던 도중 발생한 에러였다. RUN apt-get install libonig-dev 를 추가해준 후 해결됨

    NET5.0 으로 작성한 App CI/CD 구현하기 [2] - Github Action 을 이용한 DockerHub Push 자동화 하기

    본인의 프로젝트가 Github 에 올라와 있어야 합니다. 1. 작업할 Github repository Settings 으로 진입하여 Secrets 로 탭을 눌러줍니다. 2. New repository secret 버튼을 눌러줍니다. 3. 2개의 secret 를 만들어야 합니다. 아래의 secret name을 참고하여 Name 을 기입하고, Value 에는 DockerHub ID와 비밀번호를 기입하여줍니다. 4. {GithubRepositoryName}/.github/workflows/docker-publish.yml 생성 name: Docker on: push: branches: - master tags: - v* # master 로 푸시된 모든 것을 대상으로 실행하며, Docker 에서는 latest ..

    NET5.0 으로 작성한 App CI/CD 구현하기 [1] - Dockerfile 생성하기

    root 위치에 Dockerfile 파일을 생성해주고 아래와 같이 내용을 넣어줍니다. # builds our image using dotnet's sdk FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /source # copy everything else and build app COPY . ./app/ WORKDIR /source/app RUN dotnet restore RUN dotnet publish -c release --runtime ubuntu.20.04-x64 -p:ImportByWildcardBeforeSolution=false -o /app -f net5.0 # runs it using aspnet runtime FROM mcr.micr..

    error during connect: Post .... LinuxEngine: The system cannot find the file specified. 에러 해결하기

    순간 에러를 보고 당황스러웠다. 처음 보는 에러였고, 검색을 해도 그다지 솔루션을 금방 찾을 수 없었다. 그리하여 생각을 하던 도중... Docker Desktop 이 실행되고 있지 않았다는 사실을 떠올렸다. 평소에 Docker 를 이용하지 않다보니 WSLv2 특성상 메모리를 과도하게 잡아먹어서 평소에는 Docker Desktop 을 꺼두고 있었다. Docker Desktop 실행 후 문제 해결.

    쿠버네티스(Kubernetes) 기초 다지기

    왜 쿠버네티스인가? 많은 서비스를 운영하는 대기업이나 대규모 서비스를 운영하는 대기업 에서 kubernetes 에서 적극적으로 활용할 수 있다. Auto-Scaling : 가상화 기술을 통해 트래픽이 많은 서버에 자연스럽게 더 많은 자원을 이용해 준다. Self-Healing : 서버 장애에 대비하여 가상화 백업 서버를 이용하여 한 서버에 장애가 발생할 경우 알아서 서비스에 자원을 이용한다. Deployment : 쿠버네티스 클러스터를 구동시키면, 컨테이너화된 애플리케이션을 배포하게 되는데, 그러기 위해 디플로이먼트를 만들고 이 디플로이먼트에 애플리케이션을 어떻게 배포하고 업데이트 하는지를 알려주면 이를 자동으로 수행해 준다. Automated Rollbacks : 디플로이먼트된 애플리케이션이 업데이트 ..