DevOps

    Jenkins에서 API를 이용하여 특정 설정을 가진 Job 생성하기(젠킨스 API 잡 생성, config.xml 주입, Jenkins API 인증)

    Jenkins에서 API를 이용하여 특정 설정을 가진 Job 생성하기(젠킨스 API 잡 생성, config.xml 주입, Jenkins API 인증)

    안녕하세요~ 오늘은 Jenkins에서 제공하는 API를 이용하여 Job을 생성하고, 원하는 설정을 주입해 보도록 하겠습니다. 업무를 하다 보면 Job을 한꺼번에 생성하거나, 아니면 특정 조건 발동 시 Job을 생성하도록 할 일이 있는데요. 그런 경우에 사용하는 방법입니다. 준비물: (준비물의 준비 과정은 아래에 설명되어 있습니다) - 원하는 Jenkins Job 설정을 담은 config.xml - Jenkins Job creation 및 Job Configuration 권한이 있는 계정 - Job creation 권한을 가진 계정의 API Token 우선 주입할 설정을 config.xml 형태로 로컬이든 어디든 준비합니다. config.xml은 Jenkins Job마다 가지고 있는 설정 파일로, Jenk..

    DNS 레코드 삭제 후 재생성 시 도메인 질의가 되지 않는 문제 해결하기

    🤔 당황스러우면서도 누군가는 저처럼 겪게 될 일이라 대충 정리해서 공유합니다. 저희 회사는 퍼블릭 클라우드에 매니지드 K8S Cluster를 올려 두고 사용하고 있는데요, K8S 환경에 올라간 서비스들을 도메인으로 접근합니다. 그런데 매번 DNS 레코드 추가 요청을 담당 부서에 요청할 수는 없기 때문에 (할 수는 있지만 서로 번거로움) externalDNS 라는 오픈소스를 이용하여 저희 DNS와 연동, 레코드를 자동으로 생성/수정/삭제하도록 운영해 오고 있습니다. (물론 기존 서비스 도메인에 영향을 주지 않도록, 정책과 구분자를 잘 부여하는 작업이 선행되어야겠죠) 서비스들을 잘 사용하고 있었는데, 뭘 테스트 한다고 서비스를 삭제했다가 거의 곧바로 서비스를 재생성할 일이 생겨서 삭제-재생성을 했는데 도메인..

    ARP Protocol은 어떻게 맥 어드레스를 쿼리하고 수신할까?

    ARP Protocol은 어떻게 맥 어드레스를 쿼리하고 수신할까?

    ARP 프로토콜 동일 네트워크 대역 내에서 통신하기 위해 IP 주소를 이용, MAC address를 찾아주는 프로토콜 아래와 같은 방식으로 값을 담아서 보냄 Hardware type: 2계층에서 사용할 프로토콜 타입. 대부분의 경우 ethernet이므로 0 0 0 1 로 값이 (거의) 고정 Protocol type: 상위 계층에서 사용할 프로토콜 타입. 업무할땐 IPv4 가 절대다수이므로 0 8 0 0 (사실상) 고정 Hardware length: H/W address의 길이. MAC 어드레스(맥주소) 이므로 6바이트, 그래서 0 6 Protocol length: Protocol address의 길이. IPv4 쓰므로 4바이트, 그래서 0 4 Operation: OP code. 질의이냐 응답이냐를 구분함..

    traceroute로 목적지까지 거치는 경로 확인하기

    traceroute(윈도우라면 tracert를 사용하세요 ☺️)를 이용하면 출발지에서부터 목적지까지 거치게 되는 대역대의 수를 확인할 수 있습니다. (홉) Google의 DNS인 8.8.8.8 에 traceroute를 날려 목적지까지 거치는 경로를 확인해 보시죠 ! ➜ ~ traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets ### 8.8.8.8 이 목적지 1 192.168.219.1 (192.168.219.1) 8.328 ms 1.763 ms 1.264 ms ### 제 로컬 공유기 2 * 125.178.~~~.~~~ (125.178.~~~.~~~) 13.306 ms 5.433 ms ### 제 public IP(변..

    Jenkins 여러 잡에 동시에 파라미터 주입하기, 여러 프로젝트 설정 동시 변경(mass configuration update)

    Jenkins 여러 잡에 동시에 파라미터 주입하기, 여러 프로젝트 설정 동시 변경(mass configuration update)

    하..이 개떡같은 티스토리...이미지 업로드하다 멈춰서 글 날리고 다시 작성하겠습느드.......... 와 글 세번 날아가고 네번째 작성중인게 실화인가요..? 임시저장도 꼬박꼬박 했는데 임시저장에 제 글이 없는데요...? 티스토리 개발자들 반성합시다,,,이건 아니지않나요,,,이번에도 실패하면 velog로 갈아타서 편안한 마크다운라이프 즐기겠습니다 Jenkins 여러 Job 동시에 설정하기(configuration on multiple jobs), 여러 프로젝트에 파라미터 주입하기 엔터프라이즈 환경에서 젠킨스를 운영하다 보면 여러 잡(프로젝트)을 동시에 수정해야 할 일이 생깁니다. 아키텍쳐가 바뀌었다든가, 공통 인자가 추가되었다든가 하는 일들로요 ... 그런 일이 발생할 때마다 잡 하나하나에 들어가서 설정..

    K8S(쿠버네티스) current context, namespace 한 번에 확인하기

    K8S(쿠버네티스) current context, namespace 한 번에 확인하기

    쿠버네티스 현재 컨텍스트와 네임스페이스 정보를 한 번에 확인하기! 입니다. 멀티클러스터 환경이라 클러스터도 왔다갔다하고 네임스페이스도 왔다갔다 하면서 작업하는 편인데요, 그러다 보니 잠시 다른 작업을 하다 터미널을 다시 잡았을 때 내가 지금 어디서 작업하고 있었더라...? 하는 생각을 하게 되는 일이 종종 발생합니다. 생각보다 그런 일이 잦아서 아예 alias로 등록해서 쓰고 있는데, 저만 이렇게 작업환경을 깜빡하는 건 아닌 듯 하여 공유합니다 :) # 본인이 사용하는 환경(ex. ~/.bashrc 등)에 맞추어 터미널 설정을 열어 줍니다. vi ~/.zshrc 원하는 공간(아무래도 alias들이 모여있는 쪽이 좋겠죠)에 아래와 같이 지정합니다. alias wmi="kubectl config curren..