Infra As Code11 CI/CD 기초 CI/CD CI (Continuous Integration) 코드 변경사항을 주기적으로 번번하게 merge -> 다른 코드 integration 어려움 -> segments 별로 나눠서 개발 + 통합 중요함 주기적으로 merge 된 코드들이, build 가 제대로 잘 됏는지, 그리고 기존 시스템에 잘 adapted 되어있는지 check이 되어야함 개발자들, 하루에 몇번씩 코드리뷰 해서 merge를 함, merged 가 되면, 자동으로 CI script를 통해 추가된 코드와 함께 build화 되고, unitest/integration test script 통해서 됨 -> green 되면, 나중에 배포할때 반영가능 Build가 실패하거나 Test 실패하면, Red sign 나옴 -> 개발자에게 자동으로 알려.. 2025. 6. 17. Python venv 가상환경을 써야하는 이유 프로젝트를 진행하다 보면 여러 모듈을 설치하게됨, 그리고 이 모듈들이 서로 dependency가 많아서, 글로벌하게 모듈 설치하면 관리가 어려워짐 그래서 각각의 필요한 모듈을 별도의 로컬 환경에 설치하여 사용하게됨 -> 모듈의 가상화 python 을 이용하다보면 프로젝트마다 다른 패키지와 패키지의 버전을 이용하게 된다.이럴 때 pip install 무지성으로 때리면 패키지 깔고, 패키지 버전 바꿔서 사용할 수 있는데 왜 가상환경을 쓸까? 가상환경 없이 패키지를 설치하게되면 패키지들끼리 충돌이 일어나는 경우가 있는데(버전 문제 등 여러가지 이유로...) 매번 패키지 충돌 이슈를 겪게 되면 개발환경 세팅하는데 시간이 많이 걸리게 된다. 그렇기 때문에 불필요한 이슈를 피하기 위해서 가.. 2025. 4. 2. Git, Version management tool IDE Download 받고 Git 다운 받기git 설치할때이 옵션 두개 하기Vscode를 default editor로 지정초기 default branch 이름 설정 1. Let Git decideGit에서는 초기 branch 이름을 "master"로 설정하는데, 이 규칙을 그대로 따라가겠다는 의미입니다.2. Override the default branch name for new repositories초기 branch 이름을 "master"가 아니라, 사용자가 원하는 초기 branch 이름으로 변경하는 기능입니다. 폴더 만들어서, git config 에 누구 유저인지 설정 해주기 (주의할점, git이랑 github는 다름, github 는 cloud, 즉 인터넷 베이스-> 실제로 가서 account .. 2025. 4. 2. 인프런 - Docker 6 docker stop $(docker ps -a -q) docker rm $(docker ps -a -q)docker rmi $(docker image -q) 모든 도커 컨테이너 삭제하기. $사인 써서 지우기이미지는 -f option 넣어서, 강제로 삭제 하게 하는경우가 많음 (linux의 kill -9 이랑 같은 기능인듯) -v 옵션을 쓰면, (볼륨)을 한번 선언하면(호스트의 어떤 파일 쉐어하는거, 그 볼륨 자체를 생성하는 스크립트가 세이브 된다는 뜻인듯), 이 볼륨을 도커에서 따로 관리를 한다. 그래서 이 저장된 볼륨도 삭제 해야함. 특정 컨테이너에 특정 폴더를 호스트 PC에 연결 시켜서, 볼륨삭제도 진행해야함. 이미지, 컨테이너 삭제해도 삭제가 안되기때문. 네트워크 같은 경우, 볼륨으로 어디 포트,.. 2023. 10. 21. 인프런 - Docker 5 아파치 공식 이미지 이름 httpd원래같으면, 이미지 다운받아서, 컨테이너 만들고, start해야한다 (pull,create,start) 이 세가지 프로세스를 run command가 한번에 해준다는 것간단히 docker run httpd 하면 됨 백그라운드로 돌리는 웹서버 접속위해, 포트포워딩 해야함( 내부 호스트 포트를 컨테이너 포트와 연결 해서, transmitting 해주는 룰 걸어줘야함)9999:80 하면 컨테이너의 80번 포트를 호스트 9999포트와 연결 시킨다고 이해하면됨, 요청을 포워딩 해주겠다. Localhost:9999 를 접속하면 내부 웹 서버가 동작함을 확인 할수있음AWS일 경우, 시큐리티 그룹에 9999포트 처리에 관한 인바운드 rule을 걸어야 한다는 것 docker run -d(.. 2023. 10. 21. 인프런 - Docker 4 컨테이너 == 프로그램여러개의 컨태이너를 한꺼번에 실행시키고 한꺼번에 중지시키는 명령어가 존재하는데 이걸 docker compose 라고한다요즘은 docker compose 가 들어가있음 그런데, 요즘 기술 쓰는애들은, 따로 docker compose 프로그램을 깔아서 standalone으로 관리하는 경우가 많음. 그래서 우리도 따로 깐 다음 매니지해보자, 즉 따로 compose 프로그램 깔아서 관리 == docker-compose, 내장된 compose 프로그램 쓰는거 == docker compose Sudo chmod +x /usr/bin/docker-compose è docker compose 에 실행권한 주는거 안주면 command not found 남, 그리고 그냥 실행하면 permission .. 2023. 10. 21. 인프런 - Docker 3 여담 : Daemon Process의 vocab의 어원은 Maxwell's daemon 에서 옴, MIT team Unix 개발 팀이름이 MAC이였는데 얘네가 Daemon 이라고 정의 해서 그거 그냥 계속 쓰는거 이렇게 프로세스 찾아서 (PID확인) kill 명령어 사용해서 프로세스 지우면 됨Kill -9 라는 명령어랑 자주 같이 쓰임 왜? 작업 강제 종료 옵션임.-9 안쓰는경우, 프로세스가 중지 안되는 경도 있음 하드링크와 소프트링크CP A.txt B.txt 하면 A파일이 B이름을 가진 파일로 복사됨 Cp -rf * 폴더명, 폴더 전체 복사할때 -rf 씀 하드링크 ln a.txt b.txt , 링크 == 서로 연결되어있음 (ln 코맨드, ln a.txt b.txt)a파일이랑 b파일이랑 연동해서, a파일.. 2023. 10. 21. 인프런 - Docker 2 Docker 에 대한 기본 이해 sudo usermod -aG docker $User Docker가 어떤 기술에 근거한 기술인가?LXC 리눅스 컨테이너 부터 시작된 기술이다 (LinuX Contatiners)chroot = 아에 별도에 분리된 하나의 컴퓨터가 생김 Dokcer는 리눅스 커널에 LXC기술을 사용해서 리눅스 컨테이너를 만들고 (분리된 공간), 리눅스 컨테이너상에 별도로 구성된 파일 시스템에 시스템 설정 및 응용프로그램 실행 할수있도록 하는 기술 다운받은 응용 프로그램 == 서버Docker Command 가 일종의 클라이언트로 이해 가능, 명령을 내리는 인터페이스 Rest API를 사용해서 docker daemon process에 접근해서, 명령어를 전달함Rest API 가 http주소가있으니.. 2023. 10. 4. 인프런 - Docker1 이렇게 여러가지 서버를 관리하다보니, 서버 배포 및 이런게 힘들어짐. 따라서 일반적으로, 서버를 docker로 말아서 서비스함 그렇게 고도화 시킬때 필요한 기술 stack이 chmod 700으로 해야함 -> 읽기 쓰기 실행 다 가능 리눅스 사용법에 대한 이해 파일 전역으로 함 루트 디렉토리 == / 2023. 9. 29. 젠킨스 컨셉 이해 자바로 만들어짐, 계속해서 업데이트중이라서 아직도 많이 사용 하는중 플러그인 설치해서 사용 가능 작업한 모든 내용은 파일로 저장이된다. 데이터 베이스를 사용하지 않음 Task를 만들면 jobs folder에 저장이됨 xml포맷으로 config 파일을 저장함 마스터 젠킨스 서버는 클러스터 서버를 관리를 한다. 젠킨스 웹서버에 노드관리 들어가면 클러스터 서버 관리 하는 탭이 있음 어떤 에이전트를 추가할지를 이 마스터 젠킨스서버가 하게됨 그리고 젠킨스 마스터 서버에서 클러스터에서 생성된 task들을 관리를 한다 소규모에서는 master가 controller 이면서 agent 역할을 함 queue에 있는 작업을 가져와서 작업을 하게 됨 쿠버네티스랑 비슷한 구조임 2022. 9. 7. 처음부터 앤서블 - 인프런 데브옵스라는 건 뭔가요? 이렇게 Devops가 나오게 된 개요임 다른 툴도 많은데 왜 앤서블을 배울까? -> 에이전트가 필요 없는게 엄청난 지지를 받음 앤서블 이왜에 puppet, salt, chef가 있음YAML 이 쉽다요즘은 앤서블이 대세임 실습 환경 구성하기 윈도우는 앤서블을 설치하여 다른 노드들을 관리할수 없다근본적으로 앤서블은 윈도우 위에 동작 하지 않음 브리지 어뎁터 쓰는 이유는, 생성되는 가상 머신 간의 통신을 위해서 임 일반적으로 앤서블을 설치한다는 것은, 앤서블 코어를 설치 한다는 것과 동일한 의미(동작에 필요한 최소한의 패키지를 포함) 1. 주소에대해 해석하는 DNS Server가 없어서, yum 쓰면 안됨.일반적으로 DNS로 쓰지만, DNS 설정 안되있을때 안된다는 말임 -> DNS .. 2022. 1. 12. 이전 1 다음