전체 글

    글로벌 변수와 세션 변수

    RealMySQL 8.0을 읽고 정리했습니다. DBMS Variables 비교 페이지를 만들 때 글로벌인지 세션인지 대해서 구분할 일도 있고 했는데,, 이번 기회에 정리해보고자 한다. MySQL의 시스템 변수는 적용 범위에 따라 글로벌 변수와 세션 변수로 나뉜다. 글로벌 변수 MySQL 서버 인스턴스에서 전체적으로 영향을 미치는 시스템 변수 MySQL 서버 자체에 관련된 설정일 때가 많음 MySQL 서버에서 단 하나만 존재 innodb_buffer_pool_size : InnoDB 버퍼 풀 크기 key_buffer_size : MyISAM의 키 캐시 크기 세션 변수 MySQL 클라이언트가 MySQL 서버에 접속할 때 기본으로 부여하는 옵션의 기본값을 제어하는 데 사용 클라이언트의 필요에 따라 개별 커넥션..

    VRRP란? - 게이트웨이 이중화

    VRRP가 궁금해진 계기는 아래와 같습니다. MySQL MMM 구성을 공부하면서 MMM VIP에 대해 알게 되었는데요. MMM VIP란, MySQL MMM 구성에서 유동적으로 writer 및 마스터 역할을 변경할 수 있도록 writer에 구성하는 Virtual IP입니다. 즉, MMM에서 롤 체인지를 할 때 이동하게 되는 VIP인데요. 🤔 그렇다면 VIP는 어떻게 상황을 판단하고 이동하는 걸까? 라는 궁금증이 생겨 찾아보니 VIP를 누가 소유하는지 판별하기 위해서 VRRP라는 프로토콜을 사용한다는 것을 알게 되어 정리해보고자 합니다. 네트워크 이중화 작업을 하는 이유는 크게 두 가지입니다. 1. Load balancing: 똑같은 기능을 수행하는 장비를 여러 개 구성하여 네트워크 부하를 분산 2. Fai..

    Percona Toolkit이란?

    MySQLDBA 운영교육에서 퍼코나 툴킷에 대해 접하게 되었다. 어떤 기능을 하는 툴인지 알아보자! Percona Toolkit Percona 사에서 제작한 Toolkit 으로서 DB의 성능 추이, Disk 사용량, DB 내 통계정보를 정리하여 쉽게 보여주는 tool 기능 별로 스크립트가 구성되어 있음 (위치: /db/mysql/util/ptkit/bin) 아래 공식 사이트를 보면 다른 DBMS에 대해서도 지원하는 것 같은데 우리 팀에서는 내가 아는 한에서는 일단 MySQL 운영에서 사용하고 있다. https://percona.com/ Open Source Database Software Support & Services | Percona Percona delivers enterprise-class su..

    alias 설정하기

    사내 게이트웨이에 접속할 때마다 명령어 전체를 입력해야 되는 것을 alias 설정을 통해 간단하게 할 수 있도록 변경해보자! ASIS 아래의 명령어를 전체 입력해야 했다. ssh [ID]@hcon.nhnent.com TOBE 단어 하나 입력으로 접속할 수 있도록 한다. hcon 1. /Users/nhn 위치로 이동 cd /Users/nhn 2. zshrc, cshrc 파일이 있는지 확인 ls -a 3. zshrc, cshrc 파일 열기 vi ~/.zshrc vi ~/.cshrc 4. 두 파일 모두 alias 설정 alias hcon="ssh [ID]@hcon.nhnent.com" 5. 두 파일 모두 변경 사항 적용 source ~/.zshrc source ~/.cshrc 끝! 접속 시 hcon 만 입력하..

    RealMySQL 8.0 | 5장 트랜잭션과 잠금

    RealMySQL 8.0 을 읽고 정리했습니다. 목차 트랜잭션 MySQL 엔진의 잠금 InnoDB 스토리지 엔진 잠금 MySQL의 격리 수준 트랜잭션(Transaction) 작업의 완전성을 보장해 주는 것 100% : 모두 완벽하게 처리하거나 0% : 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상(Partial update)을 방지 잠금(Lock) 🤔 잠금 없이 여러 커넥션이 하나의 데이터를 동시에 변경한다면? 그 데이터의 값은 예측할 수 없게 됩니다. 즉, 여러 커넥션에서 동시에 동일한 자원을 요청한 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있도록 동시성을 제어하는 역할 트랜잭션 : 데이터의 정합성을 보장하기 위한 기능 잠금 : 동시성을 제어하기 위한 기능 격리 수..

    [iTerm2] iTerm2에 Status bar 세팅하기

    iTerm2 터미널 꾸미기 아래와 같이 터미널에 Status bar를 띄우는 방법입니다! 0. iTerm2 설치 iTerm2 : 맥의 터미널 보조 프로그램 # iTerm2가 설치되어 있지 않다면 아래 커맨드를 실행해 설치해줍니다. brew install iterm2 1. iTerm2를 켭니다. 2. Preferences 메뉴를 클릭합니다. 3. Appearance 탭에서 Theme을 Minimal로 바꿔줍니다. 4. Profiles > Session 으로 이동합니다. 5. 하단의 Status bar enabled를 체크해 활성화하고, Configure Status Bar 버튼을 클릭해줍니다. 6. 터미널에서 보고 싶은 상태창을 드래그-드랍 해줍니다. 7. 색상은 하단의 Auto-Rainbow에서 변경할 ..

    Redis 다른 포트로 설치하기

    2023.05.16 - [🌏 인프라/모니터링] - Prometheus + Grafana로 Redis 모니터링 구축하기 위의 과제를 진행하면서 한 인스턴스에 각각 다른 버전의 Redis를 설치해주어야 했습니다. Redis의 기본 포트는 6379이기 때문에, 두 Redis의 포트가 겹치지 않도록 포트 번호를 변경해 설치되도록 진행해보겠습니다! 아래 과정대로 진행해줍니다. # Redis 소스 코드 다운로드 및 압축 해제 $ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd redis-x.x.x # redis.conf 파일 열고 포트 번호 변경 $ vi redis.conf # port 6379 ->..

    Redis warning 없이 깔끔하게 띄우기

    2023.01.25 - [🌏 인프라/NHN Cloud] - NHN Cloud 인스턴스에 Redis 설치하기 (1) - 압축파일 이용 2023.02.08 - [💻 프로그래밍/Shell] - Redis 설치 자동화 스크립트 (1) - binary 방식 위의 포스팅을 이용해서 Redis를 설치했을 때 초기 실행 화면입니다. 하지만 뭔가 깔끔하지 않고 다음과 같은 메시지들이 떠있는 것을 볼 수 있습니다. Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf WARNING: The TCP backlog setting of 51..

    Prometheus + Grafana 설치부터 연동까지

    ✔️ 이 글에서 진행할 것들 1. Redis 설치 2. Node Exporter 설치 3. Redis Exporter 설치 4. Prometheus 설치 5. Prometheus에 Exporter 연결 6. Grafana 설치 7. Grafana에 Prometheus 연결 8. Grafana에 대시보드 생성 9. Alertmanager 설치 및 Dooray! 인커밍 훅 알림 설정 monitored 인스턴스에 node exporter와 설치한 redis 버전별로 redis exporter를 설치합니다. monitoring 인스턴스에 prometheus를 설치하고 exporter들을 연결합니다. monitoring 인스턴스에 grafana를 설치하고 prometheus를 연결해주면, 최종적으로 exporte..

    [토스 SLASH 21] MYSQL HA & DR Topology

    ✅ 발표 영상 https://www.youtube.com/watch?v=t96l6ry_qmw ✔️ 발표 내용 MMM HA 오픈소스 솔루션 이름 토스의 Live MySQL 데이터베이스 HA 솔루션으로 사용되고 있음 Google에서 개발된 솔루션 버전 업데이트는 중지되어서, 필요 시 자체 업데이트를 하면서 사용 중 기본 구성도 MASTER-MASTER 01, 02노드만 MMM이 관리하도록 구성 03번 SLAVE도 MMM이 관리하도록 포함시킬 수 있지만, 신규 MASTER로 failover 하는 과정에서 대응되지 않는 케이스가 있어서 이 구성은 사용하지 않음 1. 데몬 2개 : Monitoring, Agent 2. 애플리케이션 서버 failover를 위해 각 데이터베이스 서버에 올라가는 서비스 IP Monit..

    프로메테우스와 그라파나 알아보기

    2023.05.16 - [🌏 인프라/모니터링] - Prometheus + Grafana로 Redis 모니터링 구축하기 과제를 진행하면서 새롭게 알게된 기술들을 정리해보고자 합니다! ✔️ 목차 1. 메트릭 2. 프로메테우스 3. 그라파나 먼저, 메트릭(metrics)이란 뭘까? 성능 지표..? 정도로 알고 있는데 정확히 자세히 아는 것이 중요하기 때문에 정리해보겠습니다. Metric 메트릭하면 다음과 같이 화려한 대시보드를 떠올리실 수 있을 것 같습니다. 어떤 애플리케이션을 쓰는지, 어떤 서비스인지에 따라 해석이 달라질 수 있지만 보편적으로 메트릭은 수집되는 시계열 데이터를 말합니다. 웹서버에서는 요청 시간이 될 수 있고, 데이터베이스에서는 활성 연결 수나 활성 쿼리 수 등이 될 수 있습니다. 로그와 달리..

    Prometheus + Grafana로 Redis 모니터링 구축하기

    우리 팀에서 하고 있는 DB 모니터링 방법 중 하나는 프로메테우스와 그라파나를 이용하는 것이다. DBMS variables 비교 사이트에서 다뤘던 Redis, MySQL, PostgreSQL 중 하나씩 맡아서 직접 모니터링을 구축해보는 시간을 갖게 되었고, Redis를 담당하게 되었다. NHN 면접에서 어떤 메트릭을 어떻게 모니터링 할 수 있을 지에 대한 질문을 받아보기도 했었고, 늘 해보고 싶던 부분이어서 이번 기회에 확실히 알고 넘어가야겠다! 아자 💪 과제 요구사항은 다음과 같다. 일단 다 처음이기 때문에 주신 내용을 이해하는게 먼저..! 하나씩 스터디하면서 차근차근 설치해봐야겠다 :) 과제 1 서버 1: DB 서버 DB 설치 프로메테우스 exporter 설치 (node exporter, db exp..

    nohup과 &의 차이

    nohup 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어 nohup 명령을 백그라운드(&)로 실행 &를 사용하면 프로세스가 백그라운드로 실행이 됨 백그라운드로 실행 중인지 확인하기 ps -ef | grep python nohup과 &의 차이 nohup 프로그램을 데몬 형태로 실행시키는 것이므로 세션 연결이 끊기더라도 프로세스가 계속 동작됨 실행 시키면 대기 상태가 발생하고, 세션 연결이 끊기면 프로세스는 바로 종료됨 백그라운드(&) 실행 시키면 대기 상태가 없지만, 세션 연결이 끊기면 프로세스도 함께 종료됨 따라서, nohup 명령을 백그라운드(&)로 같이 실행시키게 되면, 대기 상태도 없고 세션 연결이 끊기더라도 프로세스의 종료 없이 백그라운드..

    터미널 종료해도 백그라운드로 실행하기 - &과 모니터 스크립트

    문제 상황 nohup node ./node_modules/@vue/cli-service/bin/vue-cli-service serve --port [PORT] & nohup python manage.py runserver [IP]:[PORT] --settings=main.config.settings.debug 위의 명령으로 사이트를 서버에 백그라운드로 실행하고 있다고 생각했는데.. 때때로 웹이 내려가는 이슈가 발생했다. 원인 잘못된 명령어로 인해서 사실 백그라운드로 실행이 안 되고 있는게 아닐까? 라는 생각이 들어서 왜 그러는지 실행할 때 명령을 다시 살펴봤더니 띄울 때 장고 실행에 & 를 붙이지 않고 실행해서 터미널 세션을 닫으면 프로세스도 같이 종료되었던 것이었다.. nohup python manag..

    [Error] WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! SSH 원격 접속 에러해결 하기

    1. 문제 상황 잘 접속되던 서버였는데 갑자기 에러가 뜨면서 접속이 안 되었다. 위의 상황이 발생하는 이유를 예를 들어보자면, A host가 있고, B server가 있다. A는 항상 B server에 ssh 접속을 하고 있었는데, B server에 ssh나 os를 새로 설치하는 작업을 했다. 그랬는데 A가 똑같이 B에 접속을 시도하고, B의 IP는 똑같다면 위와 같은 메시지가 뜬다. SSH 최초 접속 시에 A와 B가 서로 인증을 하는데 B는 새로 설치되었는데 A는 예전 B에 IP로 인증이 되어있는 상태에서 B로 로그인을 하면 B는 인증정보가 없기 때문에 위와 같은 메시지가 뜨는 것이다. 2. 해결 방법 vi /Users/nhn/.ssh/known_hosts # 보통은 # /root/.ssh/known_..

    AWS Summit Seoul 2023 후기 - Day 2

    첫 오프라인 써밋에 참가하다! 그동안 코로나로 인해서 온라인으로만 진행되었는데 올해 드디어 현장에서 열린 AWS Summit Seoul 2023에 다녀왔다! 이번 AWS Summit Seoul 2023은 5월 3일, 5월 4일 이틀동안 열렸고, 장소는 코엑스였는데 코엑스 전체를 대관할 정도로 대규모로 진행되었다. 너무 너무 가고 싶었는데 마침 팀원 분들께서 가게 되어서 데리고 가주셨다! 개인적으로 이번이 첫 오프라인 컨퍼런스, 써밋이었는데 멋진 경험을 할 수 있어서 정말 감사했다. 괜히 조기 마감 된게 아님을 실감할 수 있을 정도로 정말 많은 사람들이 있었는데, 대학생부터 주니어, 시니어까지 다양한 연령대와 데이터베이스, AI, 인프라, 시스템 등의 직종이 모인 것 같았다. 아무래도 오랜만의 오프라인 행..

    AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성 | AWS Summit Seoul 2023

    AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성 Day 2 | Session 4 | 15:20 - 16:00 안준환 솔루션즈 아키텍트, AWS Yongzhe Ren 솔루션즈 아키텍트, AWS 재해복구에 대한 대비는 온프레미스를 이용할때나, 클라우드를 이용할때나 항상 중요하다. 이 세션에서는 AWS Backup을 활용하여 최소한의 비용으로 클라우드 환경에서 운영 중인 시스템에 대한 멀티 리전 재해 복구를 자동화하는 방안을 살펴본다. 더불어 온프레미스에서 운영중인 시스템에 대한 재해복구를 비용 효율적으로 자동화하기 위해 어떻게 AWS Elastic Disaster Recovery를 활용할 수 있는지도 알아본다. AWS 서비스를 활용해 대부분의 시간동안 유휴 상태인 복구 사이트에 대한 비용을 ..

    성공적인 AWS RDS 마이그레이션을 위한 여정과 필수 고려사항 | AWS Summit Seoul 2023

    성공적인 AWS RDS 마이그레이션을 위한 여정과 필수 고려사항 Day 2 | Session 3 | 14:20 - 14:50 서호석 컨설팅팀 상무, 에티버스 AWS RDS로의 성공적인 마이그레이션을 위해 각 스텝 별 준비 사항을 소개한다. 마이그레이션 과정에서 고려, 숙지해야 할 항목들을 공유하여 성공적인 이관을 준비하는 여정, 에티버스 세션과 함께 하시기 바란다. 1. Amazon DB Services Amazon RDS와 Aurora Amazon RDS Custom For Oracle 2. DB Migration Steps General Steps For DB Migration Access Inspection Lists 3. DB Migration Considerations Amazon RDS로의 마..

    오픈소스 데이터베이스로 탈 오라클! Why not? | AWS Summit Seoul 2023

    오픈소스 데이터베이스로 탈 오라클! Why not? Day 2 | Session 1 | 11:10 - 11:50 김지훈 WWSO 솔루션즈 아키텍트, AWS 박승전 Project Manager, SK Telecom 아직 많은 기업들이 상용 데이터베이스로 인해 발생하는 높은 비용으로 고통받고 있다. 이를 돕기 위해 AWS는 오픈 소스를 기반으로 한 다양한 워크로드의 특성에 맞는 데이터베이스 서비스를 제공하고 있다. 이번 세션에서는 AWS의 워크로드 특성에 따른 목적에 맞는 다양한 데이터베이스 서비스가 어떤 것이 있는지 알아보고, 기존 오라클 데이터베이스를 기반으로 구성된 서비스에 AWS의 데이터베이스를 도입하여 탈 오라클에 성공한 고객 사례를 소개한다. 데이터 현대화 아키텍처 전통 방식에서 마이크로 서비스 ..

    Jenkins 자동 재기동을 위한 서비스 파일 생성

    Jenkins 비정상 종료 시 자동 시작하는 systemd 서비스 파일 테스트 환경 NHN Cloud Ubuntu 20.04 LTS Docker 23.0.3 Jenkins 2.399 Python 3.9 상황 Jenkins가 비정상적으로 종료되었을 경우, Jenkins가 자동 실행되게 하도록 합니다. 해결방법 sudo systemctl enable jenkins 명령어 실행 Failed to enable unit: Unit file jenkins.service does not exist.와 같은 오류가 발생합니다. Jenkins Docker 컨테이너를 자동 시작하는 systemd 서비스 파일을 생성하여 적용해줍니다. /usr/lib/systemd/system 디렉토리에 jenkins.service파일 생성..

    [교육] 클라우드 첫 걸음, NHN Cloud로 시작하기 - part2

    4월 20일(목) 10~17시 한국컨퍼런스센터 ✅ 교육 목표 NHN Cloud 서비스를 활용하여 2-tier 구조를 설계하고 구축할 수 있습니다. 인프라 확장 기술인 Auto Scale 개념을 이해하고 활용할 수 있습니다. 클라우드 서비스를 운영 관리에 필요한 서비스를 사용할 수 있습니다. ✅ 교육 목차 소규모 웹사이트 구축하기 인스턴스 시스템 모니터링 및 감시 설정하기 조건에 맞춰 서버 Scale In/Out 해보기 1. 소규모 웹사이트 구축하기 NHN Cloud에서 아래와 같은 아키텍처를 구성하는 실습을 진행해보았다! Lab1. 기본 인프라 서비스 활성화 리전부터 확인하고 설정하기! 잘못된 리전에 만들었을 경우, 다 부수고 다시 만들어줘야 함.. 기본 인프라 서비스 활성화하기 Lab2. 2개의 VPC..

    [교육] 클라우드 첫 걸음, NHN Cloud로 시작하기 – part1

    4월 19일 (수) 10~17시 | 한국컨퍼런스센터 ☀️ 오전 세션 NHN Cloud 교육과정 VPC, 서브넷, 라우팅 등 VPC 내 상품 -> NAT 게이트웨이, VPC 피어링, 내부 통신을 위한 서비스 게이트웨이 올해 자격증도 나온다! 고매출 상품 : Nofi API 다양한 교육이 있음! 클라우드 컴퓨팅과 NHN Cloud 소개 클라우드 컴퓨팅 이점 신속한 인프라 도입 유연한 인프라 관리 예상치 못한 트래픽 폭주 대응 -> 오토 스케일 이용한 만큼 지불하는 비용 Cloud Deployment Models Public Private Hybrid private public, on-premise public Multi CSP 이중화 구성 두개 이상의 외부 클라우드를 활용 비즈니스 요구에 가장 적합한 공급업..

    [Error] Ubuntu 20.04에서 발생하는 libseccomp2 의존성 문제 해결하기

    1. 문제 상황 운영서버인 우분투 20.04 인스턴스에서 도커를 설치하려고 하는데 의존성 문제가 발생했다. (개발서버에서는 발생하지 않음.. 차이가 뭘까?) 대략 이런 식으로.. 몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고, ... 다음 패키지의 의존성이 맞지 않습니다: containerd.io : 의존: libseccomp2 (>= 2.4.0) 하지만 2.3.1-2.1ubuntu2~20.04.1 패키지를 설치할 것입니다 아래 방법으로 직접 설치를 진행해도 원하는 버전이 설치가 되지 않았다 :( sudo apt-get install libseccomp2 2. 해결 방법 답은 공식 다운로드! https://pkgs.org/download/libseccomp2 리눅스용 Libsecc..

    실제 운영서버에서 Django 프로젝트 띄우기

    개발한 vue-django 프로젝트를 실제 운영서버에 띄우는 과정을 정리합니다! 개발서버에서 구축했던 방법이 운영서버에서 적용할 때 조금씩 다른 부분도 있었고, 여러 단계를 거쳐야 했기 때문에 잊어 버리지 않기 위해 기록해봅니다 스타트..! 🐾 단계 인스턴스 생성 보안규칙 생성 DB ACL 허용 요청 도커 설치 - v23.0.3 Jenkins 도커 서버 띄우기 - v2.399 Jenkins 컨테이너 생성 및 실행 Jenkins 컨테이너 내부에 DooD 구성하기 패키지 설치 및 환경 구성 웹 서버 띄우기 백그라운드로 웹 서버 띄우기 1. 인스턴스 생성 개발서버 ssh -i {pem키} ubuntu@{ip} OS : Ubuntu Server 20.04 LTS 타입 : r2.c4m16 (4vCPU, 16GB)..

    [Error] ImportError: pycurl: libcurl link-time version (7.79.1) is older than compile-time version (7.85.0) 해결하기

    1. 문제 상황 ImportError: pycurl: libcurl link-time version (7.79.1) is older than compile-time version (7.85.0) npm run serve 실행시 pycurl 버전 문제로 보이는 에러가 발생하면서 프로젝트 실행이 되지 않았다. 2. 해결 방법 방법 1) pycurl 재설치 - 실패 아래 방법으로 pycurl 재설치를 해봤지만 계속 같은 오류가 났다. brew install curl brew link curl --force brew install openssl export LIBRARY_PATH=/usr/local/opt/openssl/lib export CPATH=/usr/local/opt/openssl/include pip..

    [Ubuntu] apt-get update와 apt-get upgrade 차이

    우분투에서 패키지를 설치할 때 apt-get 명령을 많이 사용한다. apt-get은 Advanced Packaging Tool의 약자로 우분투를 포함한 데비안 계열 리눅스에서 사용되는 패키지 관리 툴이다. apt-get update와 apt-get upgrade를 많이 사용하는데 정확히 어떤 차이가 있는지 궁금해져서 정리를 해본다. apt-get update 운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령이다. 설치되어 있는(Installed) 패키지를 업데이트 하는 것이 아니라 설치 가능한(Available) 리스트를 업데이트 하는 것이다! 예를 들어 apt-get install로 특정 패키지를 설치할 수 없는 경우, update 명령으로 패키지 리스트를 최신으로 업데이트 ..

    [Ubuntu] apt-get과 apt 차이

    우분투에서 패키지를 설치할 때 apt-get과 apt를 혼합해서 많이 사용하는데, 두 명령이 정확히 어떤 차이가 있는지 궁금해져서 정리를 해본다. apt(Advanced Packaging Tool)은 데비안(Debian) GNU/Linux 계열의 패키지 관리 명령도구로 우분투(Ubuntu)에서도 지원합니다. apt-get과 apt 차이 apt-get : 인증된 소스에서 패키지 및 패키지에 대한 정보를 검색하고, 종속성과 함께 패키지를 설치, 업그레이드 및 제거 apt : 더 나은 대화식 사용을 위한 고급 명령 줄 인터페이스 결론적으로 큰 차이는 없습니다. apt-get에 옵션들이 많아지다 보니 자주 사용하는 옵션들을 추출해서 apt에서 사용자들이 사용하기 편하고, 보기 편하게 만들었습니다. 그래서 apt..

    컨테이너에 vim 설치하기

    갓 태어난 컨테이너는 내부에 설치된 것이 거의 없어서 vi 명령어를 사용하려면 vim을 설치해주어야 한다. # 컨테이너명 확인 docker ps -a # 컨테이너 접속 docker exec -it [컨테이너명] /bin/bash # Permission denied 발생 Reading package lists... Done E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied) # 컨테이너 u0 재접속(권한 문제 해결) docker exec -itu0 [컨테이너명] /bin/bash apt-get update apt-get upgrade apt-get install vim 참고 사이트 https://..

    Jenkins 컨테이너 기본 포트번호 변경하기

    Docker로 Jenkins를 띄우려고 했는데, 이미 8080 포트를 사용하고 있어 Jenkins 포트 번호를 바꾸고자 했다. 만약 Docker가 아닌 로컬에 Jenkins를 설치했다면 "/etc/default/jenkins" 파일을 수정해야 한다는 정보는 많지만 Docker의 Jenkins 기본 포트를 변경하는 정보는 많지 않았다. 🐳 Jenkins Docker 공식문서 https://hub.docker.com/_/jenkins jenkins - Official Image | Docker Hub DEPRECATION NOTICE This image has been deprecated for over 2 years in favor of the jenkins/jenkins:lts image provided..

    [Error] 403 No valid crumb was included in the request 해결하기

    1. 문제 상황 Jenkins POST API를 호출하니까 403 No valid crumb was included in the request 에러가 발생하였다. 2. 해결 방법 Jenkins Configure → Script Console import jenkins.model.Jenkins def instance = Jenkins.instance instance.setCrumbIssuer(null) 스크립트를 작성 후 실행한다. 실행 후에는 Jenkins를 재시작해주어야 한다. 참고 사이트 https://doll6777.github.io/os/2020/05/14/jenkins-403err/