
How to use SED in a Jenkins Pipeline how to use sed in jenkinsfile devopsian.net Have you ever had a task to update a single line in a file? There few utilities to help with that task, and I find sed superior on the alternatives. sed is a stream editor, with which you can modify files. It’s a great utility in your toolbox. If you’re unfamiliar with it, here’s a [link for a quick intro. I had to ..

톰캣 이미지가 설치된 컨테이너를 run으로 실행할 경우 docker run --name tomcat8 -i -t -d -p 8088:8080 tomcat-set1 톰캣이 자동으로 실행되면서 발생한 오류로 Docker 컨테이너가 실행되지 않았다. 아래 명령어로 컨테이너 에러 로그를 열어 보았고 docker logs -t CONTAINER ID 원인은 톰캣 실행시 server.xml에 설정한 경로가 존재하지 않아서 였다. server.xml을 수정해야 하는데 컨테이너 자체가 실행되지 않기 때문에 방법을 고민하다가 결국 구글에 검색해보니 스택오버플로우의 이 글의 답변 중 적절한 해결 방법을 찾았다. 해결방법 컨테이너는 정지 상태에 있지만 안에 있는 파일을 호스트OS로 복사할 수 있었다. 파일을 복사해와서 안에..

docker 컨테이너 시간바꾸기 -컨테이너 접속 후 # dpkg-reconfigure tzdata - 한국 서울 기준 6(Asia) -> 68(Seoul) 선택 # date로 변경된 시간 확인 후 docker 재시작

dig (domain information groper) 란? dig는 네트워크 관리 도구 중 하나로 DNS (Domain Name System) 를 질의할 수 있는 도구입니다. nslookup 도구를 사용하여 DNS 를 질의할 수 있지만, 보다 더 편한 인터페이스와 사용법을 제공합니다. 이와 더불어 IDN (Internationalized Domain Name) 쿼리를 지원합니다. (nslookup도 지원) dig 설치 최근 OS들에는 dig 커맨드가 기본으로 설치되어 있습니다. 만약, dig 커맨드가 없을 경우 아래의 방법으로 설치하면 됩니다. Mac brew install dig Windows 첫 번째 방법으로는, ISC 다운로드 에 접속하여 다운로드 할 수 있습니다. windows dig 설치 두..

쿠버네티스 API 요청 과정 간단하게 API Server에 접근하기 까지 프로세스를 보면, 첫번째, 요청을 보냈을 때 인증(Authentication) 과정을 거친다. "너는 k8s cluster에 등록된 사용자가 맞는거지?" 두번째, 인증 과정을 통과한 후 인가(Authorization) 과정을 거친다. "등록된 사용자는 맞고 이 액션을 할 수 있는 권한은 있니?" 세번째, 인증과 인가를 통과하게 되면 Admission Control을 거친다. "너가 보낸 요청을 적절한지 확인해볼까?" 이 과정을 무사히 마치면 "요청 승인"이 된다. 하지만 만약 한 과정이라도 적절치 않다면 "요청 반려"가 된다. 그럼 본격적으로 AWS EKS를 이용하여 만든 클러스터에 최초 생성한 IAM 사용자가 아닌 새롭게 만든 I..

쿠버네티스 Docker Hub-Private Image 가져오는 방법 Private Image를 가져와야 할 때 쿠버네티스의 secret을 이용하면 됩니다. 이 글에서는 Docker Hub을 기준으로 작성 합니다. 우선 Private Image 가져오는 방법인 만큼 아래와 같이 이미 Docker Hub에 이미지가 등록되어 있다는 가정하에 진행 합니다. 쿠버네티스 매니페스트 파일 작성 저는 아래와 같이 간단한 Deployment를 설정해주는 매니페스트 파일(.yaml)을 작성 하였습니다. Private Image를 가져와서 사용할 매니페스트 파일을 vi편집기로 여신 후 spec.template.spec.ImagePullSecrets.name 필드에 임의의 값을 설정 해줍니다. 이 값은 이후 생성할 secr..

Cert-manager란? Cert-manager는 Kubernetes 내부에서 HTTPS 통신을 위한 인증서를 생성하고, 또 인증서의 만료 기간이 되면 자동으로 인증서를 갱신해주는 역할을 하는 Certificate manager controller입니다. 쉽게 말해 Kubernetes 내에서 외부에 존재하는 Issuers를 활용하거나 selfsigned Issuer를 직접 생성해서 생성하여 Certificate를 생성하고, 이때 생성된 Certificate를 관리하며 인증서의 만료 시간이 가까워지면 인증서를 자동으로 갱신해줍니다. Cert-manager가 사용하는 외부에 존재하는 Issuer는 아래의 이미지와 같은데, 대표적인 Issuer로 무료로 사용되고 있는 let's enscrypt를 많이 사용하..

Import $ mysql -u계정 -p 데이터베이스명 파일을 저장할 위치/파일명 ex) $ mysqldump -uroot -p1234 databasename > dump.sql 특정 테이블만 dump하기 (임포트는 어차피 똑같이 테이블을 DB에 import 하는거니까 위와 동일) $ mysqldump -u 계정 -p 데이터베이스명 테이블명 > 파일을 저장할 위치/파일명 ex) $ mysqldump -uroot -p1234 databasename tablename > dump.sql 특정 조건에 부합되는 rows만 dump하..

1. MySQL의 기본테이블 MySQL은 처음 설치시에 'mysql'이라는 데이타베이스를 생성한다. 이 데이타베이스는 db,host,user, tables_priv,columns_priv, function라는 기본테이블을 가지고 있다. 이 테이블들은 MySQL의 권한과 관련이 있다. 2. MySQL의 기본테이블과 권한 (1) user테이블 : 전체서버에 적용되는 권한정보를 포함하고 있다. (2) host테이블 : 호스트전체에 대한 서버의 접근권한을 부여한다. (3) db테이블 : 각각의 데이타베이스에 접근 권한을 설정한다. (4) tables_priv : 테이블에 대한 접근권한을 설정한다. (5) columns_priv : 행에 대한 접근 권한을 설정한다. (6) function : 사용자정의 mysql..

This text is written by Nadee Poornima To achieve the high availability and scaling of MySQL they have introduced two types of MySQL clusters as MySQL InnoDB Cluster(using InnoDB as the engine) and MySQL NDB Cluster (using NDB engine). Currently, WSO2 products are supporting for this NDB Cluster, and today I am going to explain how to set up an NDB Cluster by using a Docker image of NDB Cluster...

Docker 컨테이너(container)에 쓰여진 데이터는 기본적으로 컨테이너가 삭제될 때 함께 사라지게 됩니다. Docker에서 돌아가는 많은 애플리케이션이 컨테이너의 생명 주기와 관계없이 데이터를 영속적으로 저장을 해야하는데요. 뿐만 아니라 많은 경우 여러 개의 Docker 컨테이너가 하나의 저장 공간을 공유해서 데이터를 읽거나 써야합니다. 이렇게 Docker 컨테이너의 생명 주기와 관계없이 데이터를 영속적으로 저장할 수 있도록 Docker는 두가지 옵션을 제공하는데요. 첫번째는 Docker 볼륨(volume), 두번째는 바인드 마운트(bind mount)입니다. 이번 포스팅에서는 Docker 컨테이너에 데이터를 저장하는데 사용되는 이 두가지 방법에 대해서 알아보도록 하겠습니다. 볼륨 생성 및 조회 ..
sed 명령어를 사용할 때 " / " 가 기본 구분자이지만 "/home" 을 "/home2" 로 치환을 할 때 동일한 특수문자를 사용하여 생기는 현상이였다. 구글링을 하니 sed 명령어의 모든 구분자는 모든 기호가 구분자가 될 수 있다고 한다. 리눅스 쉘 스크립트 등에서 sed를 사용할 때 "sed: -e expression #1, char 12: unknown option to `s`" 와 같은 에러가 발생할 수 있습니다. 일반적으로 sed -i "s/string/number/gi" 와 같이 사용될텐데, /를 |로 변경시켜 주거나 문자열 안에 /가 있다면 \/ 로 사용하여 이스케이프 시켜주어야 합니다. ex1) sed -i "s/string/number/gi" --> sed -i "s|string|nu..

s3 버킷 정책이란? aws s3에 버킷을 만들고 하나의 이미지 파일을 업로드 후 해당 이미지의 주소를 호출해 보면 아래 이미지와 같이 Access Denied오류를 발생시키면서 엑세스 되지 않는다. 이런 현상을 해결하기 위해 생성한 s3버킷에 버킷 정책 이라는 것을 생성해야 합니다. s3 버킷 정책이란 사용자가 s3 버킷에 엑세스 할 수 있는 정책 옵션중 하나 이며 json 문법을 사용하여 버킷에 대한 엑세스를 제어 합니다. s3가 무엇인지? 버킷이 무엇인지?에 대한 궁금증은 다음 링크를 참고하시길 바랍니다. Amazon S3이란 무엇인가요? - Amazon Simple Storage Service HTTP를 통한 SOAP 지원은 중단되었지만 HTTPS를 통해 계속해서 사용할 수 있습니다. 새로운 Am..

이 글의 저작권은 아리밤 님에게 있습니다. "암호화 통신" 뭔가 할리우드 블록버스터 산업 스파이 액션 영화에서나 나올법한 단어죠 하지만 생각 외로 우리 일상생활에서 많이 사용하고 있어요. 그 대표적인 예가 https 죠 https 란 기존에 인터넷 방식(http)에 보안을 결합한 것이고, 오늘은 그 "보안" 이 어떻게 이루어지는지에 대해 공부할 거예요. 1. 그 "보안"이 뭔데 암호화 통신이 가능한 것일까? 암호화 통신은 SSL(또는 TLS)라는 프로토콜을 사용해서 세션 데이터를 암호화하는 것을 의미해요. 우리가 처음 만난 사람과 인사하 듯 사용자와 웹서버가 암호화 통신을 할 땐 인사하며 어떤 암호화를 사용 할 것인지 얘기를 나누죠. 이러한 과정을 SSL Handshake라고 칭해요. 번외적인 얘기로 h..