목록네트워크 캠퍼스/1차 프로젝트 (11)
Information Security Study

https://gayeon-l.tistory.com/337 240227 각 컨테이너의 메모리 상태, cpu 사용량을 로그 수집 서버로 전송하기 worker1 부터 #!/bin/bash # 현재 시간을 포맷팅하여 파일 이름에 사용 CURRENT_TIME=$(date +"%Y%m%d_%H%M%S") # 로그 파일 이름에 현재 시간과 송신 서버 이름을 포함 LOG_FILE="${CURRENT_TIME}_system_usage_${HOSTNAME}.log" # gayeon-l.tistory.com 컨테이너별로 로그 수집 디렉토리 분리하기 어떤 컨테이너에서 보낸 로그인지 구별하기 쉽게 컨테이너별로 디렉토리를 생성해서 각 디렉토리에 한 컨테이너의 로그만 저장되도록 수정했다. 로그로테이트 로그로테이트를 하기 위해 l..

worker1 부터 #!/bin/bash # 현재 시간을 포맷팅하여 파일 이름에 사용 CURRENT_TIME=$(date +"%Y%m%d_%H%M%S") # 로그 파일 이름에 현재 시간과 송신 서버 이름을 포함 LOG_FILE="${CURRENT_TIME}_system_usage_${HOSTNAME}.log" # sar 명령어를 사용하여 시스템 사용량 수집 (메모리 및 CPU) sar -u -r 1 5 > $LOG_FILE # 전송할 스토리지 서버의 SSH 계정 정보 STORAGE_SERVER_USERNAME="your_username" STORAGE_SERVER_IP="storage_server_ip" STORAGE_SERVER_PATH="/path/to/save/logs" # SCP를 사용하여 로그 ..

데이터베이스용 컨테이너를 생성한다. mysql:latest 이미지를 사용했다. -e 옵션은 패스워드를 지정한다. = 뒤에 mysql 로그인 시 사용할 패스워드를 입력하면 된다. bash에 진입한다. 그리고나서 mysql -u root -p 명령어로 로그인을 한다. 컨테이너를 생성할 때 지정했던 비밀번호를 입력하면 mysql에 들어오게 된다. 프로젝트용 db를 생성한 뒤 use 했다. blog 테이블을 생성하고 데이터를 입력했다. reply 테이블을 생성했다. 외래키 지정을 했다. reply 테이블에 값을 넣어줬다. 데이터가 잘 들어간 것을 볼 수 있다. worker 1, 2, 3에서 데이터베이스를 접근할 수 있도록 동일한 네트워크에 연결한다. inspect 명령으로 jenkins-net 네트워크에 추가되..

worker 1, 2, 3의 exec command에 git clone 주소와 경로 이동 파일명을 변경한다. 빌드 후 localhost:9999/board/list에 접속하면 502 bad gateway가 뜬다.. console output에서는 ./build/libs/에 .jar 가 존재하지 않는다고 떴다. 문제가 무엇인지 알아보기 위해 우선 젠킨스 브라우저말고 터미널에서 git clone을 진행해 보았다. 그리고나서 ./build/libs 에 들어가니 .jar여야 할 파일이 .war로 되어있는 것을 확인했다. .jar로 변환하기 위해 swu_blog_deploy 폴더 밑에 있는 build.gradle 파일을 수정했다. jar 블록을 생성하고 .jar 파일이 생성되도록 지시했다. 또 이렇게 떠서 다시 ..

nginx-proxy 컨테이너에서 빠져나와 docker network create 명령어로 명시적으로 사용자가 접근할 수 있는 public-net network를 생성한다. (사용자가 워커 1,2,3에 접근할 필요 없이 접속 가능 현재도 접속 가능하지만 명시적으로 네트워크분리를 하는 것이 좋음) 그리고나서 docker network connect 명령어로 nginx-proxy 컨테이너에 네트워크를 설정해 준다.

project_db 데이터베이스 생성 및 테이블 생성, 데이터 삽입 # 블로그 테이블 생성 구문 CREATE TABLE blog( blog_id int auto_increment primary key, writer varchar(16) not null, blog_title varchar(200) not null, blog_content varchar(4000) not null, published_at datetime default now(), updated_at datetime default now(), blog_count int default 0 )DEFAULT CHARSET=utf8mb4; # 더미데이터 입력용 구문(테스트 DB에서만 사용합니다.) INSERT INTO blog VALUES (null..

워커2 컨테이너를 생성하고 bash에 접속했다. worker2 계정도 만들었다. jenkins-host의 공개키 저장을 위해 worker2에 .ssh 디렉터리를 만들고 authorized_keys 파일을 만들었다. 디렉터리 권한도 변경한다. 공개키 저장 후 authorized_keys의 권한도 변경한다. worker2의 ip를 확인한 뒤 젠킨스 서버 세팅을 해준다. 테스트 접속을 해보니 위와 같이 떠서 ssh 설정을 변경했다. openssh-server를 설치하고 위 파일을 수정해 Port 22 PubKeyAuthentication yes PasswordAuthentication yes 세 항목의 주석을 제거했다. 성공! 다음으로 배포 스크립트 작성을 위해 item을 만들어 위 옵션을 send build..

이전 게시글 https://gayeon-l.tistory.com/323?category=1165056 240222 도커-스프링부트 연결 1) 인텔리제이에 간단한 hello world 코드 구현 package kr.swu.networkcampus; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.R gayeon-l.tistory.com 이전에 5000번으로 포트 포워딩을 했는데 localhost:5000으로 접속이 되질 않는 문제가 발생했다. 5000번을 이미..