본문 바로가기

DevOps66

원격서버 접속해서 root 권한까지 받기 자동화 이번 시간에 진행할 내용은 원격서버로 ssh 접속시 root권한까지 받는 것을 자동화 하려고 한다. 예를 들면 이런 것이다. 리눅스 PC에서 (1) 원격서버에 내 계정 (ssh jojoldu@~~)으로 접근 (2) jojoldu 계정에 대한 비밀번호 입력 및 접속 (3) jojoldu 계정에서 root 계정으로 전환 (su -) (4) root 계정 비밀번호 입력 이건 사실 굳이 스크립트로 작성 안해도 될 정도의 작은 작업량이긴 한데, 그래도 가끔 root 권한이 필요할 때 비밀번호 입력이 귀찮기도 하고, 이것저것 커맨드 날리다보면 history가 잘 관리 안되서 history를 뒤져야 하는 일이 생겨버려서 그냥 스크립트를 작성하게 되었다. 작업 내용은 간단하다. (1) ~ (3) 내용까지를 스크립트로 .. 2016. 10. 25.
망 분리된 상태에서 build 파일 주고 받기 (sftp, sshpass, jq) 이전에 포스팅했던 내용의 확장팩을 진행하려고 한다. 지난 번에는 Gradle을 이용하여 build시 공유서버로 war 파일을 전송하는 것까지가 진행되었었다. 근데 이것만으로 불편함이 크게 감소하진 않았다. 왜냐하면 결국 war의 목적지까지 가야할 길은 많이 남았기 때문이다. 그래서 오늘은 이전 시간에 이어 쉘 스크립트로 추가적인 자동화 작업을 진행하려고 한다. 아래 그림은 대략적인 배포에 필요한 과정을 그린 것이다. (앞에서 가정한 상황을 도식화하였다.) 조건은 아래와 같다고 가정해보자. 인터넷 PC를 제외하고서는 전부 인터넷은 되지 않는다. CI를 구축할수는 없다. 각각의 서버들은 SFTP 프로토콜만 오픈되어 있다. 인터넷 PC와 내부용 PC만 스크립트 작성/실행 권한이 있으며, 공유서버에서는 어떠한 .. 2016. 10. 19.
tcpdump로 post 데이터 확인하기 tcpdump로 문제를 해결할때마다 기록하려고 함 특별히 책이 있는것도 아닌데 한글 자료는 거의 대부분 옵션 설명이 전부라 처음이 너무 어려워 나같은 사람들이 있을것 같아 시작함 특정 서버로 POST 보내는 데이터 확인하기 회사에서 사용중인 메일 api에서 간혈적으로 에러가 발생하였다. 4년전에 배포된 서비스라 코드 품질이 엉망이였고, 로그를 특별히 잘 남기는 상태도 아니여서 뭐가 문젠지 서버 로그로는 확인하기 힘들었다. 그래서 tcpdump를 이용해서 메일 api 서버에 어떤 값이 전송되는지 확인하고 문제를 해결하였다. 상황은 아래와 같다. 회원 서비스에서 비밀번호 재발급 -> 수십번에 1번씩 재발급 메일 발송 실패 각각의 서버명을 임의로 회원 서비스 도메인: user.jojoldu.com 메일api .. 2016. 9. 22.
nodejs + bower + git(sourcetree) + heroku 사용법 토요일마다 진행중인 스터디를 중간 결산 겸해서 결과물을 보고자 heroku에 배포를 준비하였다.기존에 구글링해서 나온 자료가 nodejs만으로 간단하게 진행하고 있었는데,나같은 경우 sourcetree로 git을 관리하고, 프로젝트 의존성에 bower가 포함되어 있어서 자료찾기가 힘들었다.1시간이면 될줄알았는데 ㅠ 많은 시간을 소모하여 내용을 기록한다. heroku는 PaaS의 일종이다. 우리가 흔히 알고 있는 AWS나 구글앱엔진의 경우에는 IaaS이므로 이들과 동일하다고 볼순 없지만 크게 차이는 나지 않는다.자세한 설명은 링크를 참고 그럼 헤로쿠를 시작하자 1. 헤로쿠 가입https://www.heroku.com위 링크로 이동하여 sign up for free 버튼을 클릭하여 회원 가입을 진행하자. 계.. 2016. 2. 26.
502 bad gateway error 회사에서 사용중인 서버리스트에 서버 추가가 필요했다.기존 서버와 동일하게 톰캣, nginx, 프로젝트 설정까지 똑같이 설정한 후에 LVS 투입전에 테스트를 진행하였는데 난데없이 502를 계속 내뿜었다. 다른 모든 설정이 같아서 nginx error log (회사서버는 /data/log/nginx 에 access, error log들이 있다.) 를 확인하였는데아래와 같은 에러가 보였다. [error] 23598#0: *1 SSL_do_handshake() failed (SSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:unknown group error:1408D010:SSL routines:SSL3_GET_KEY_EXCHANGE.. 2016. 1. 5.
[mongodb] window에서 쉽게 mongodb run시키기 매번 mongodb 를 구동시키려고 mongod --dbpath ~~~ 명령어 치는게 너무 귀찮아서 이걸 도대체 어떻게하면 쉽게 할 수 있을까 찾아보다가, 아주아주 마음에 드는 방법을 찾게 되어 기록한다. 1. cmd를 관리자 권한으로 실행 2. 아래의 3가지 command를 차례로 입력한다. 1) mongodb폴더의 bin 폴더주소로 이동하여 mongodb --remove ex) D:\mongodb\bin>mongod --remove 2) 해당 폴더에서 계속 command 입력 ex) D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install 3) 윈도우 서비스 실행하여 mongodb가 자동서비스로 등록되어있는지 확인.. 2015. 7. 1.