인프라 25

긴급하게 적용 했던, rewrite/redirect 이야기

원래는 긴급하게 작업을 해야 할 이유가 거의 없긴 하지만, 갑자기 오늘 불현듯이 인프라 설정을 바꿔야 했는데, 그 이유는 현재 서비스 중인 프로젝트의 플랫폼이 레거시와 2년전의 신규 플랫폼, 다시 최신의 플랫폼 총 3가지를 쓰고 있는데, 아무래도 서비스가 워낙 많고, 플랫폼 전환 하려면, 일정을 받아야 하는데, 그게 마음대로 쉽지 않다 보니 2년전의 플랫폼도 어느새 레거시가 되었다. 그런 작업을 계속 해오고 있는데, 오늘 작은 실수를 발견 하게 되어, 긴급하게 처리를 하게 되었다. 그 처리는 특정한 uri path로 접근을 하지 못하게 막거나? 아니면, 정상적인 경로로 이동 시켜야 하는 일이었다. 사실, nginx에서는 그게 그렇게 어렵진 않은데, 중요한 부분은 nginx를 빌드 하여 사용하는 경우 기본..

인프라/nginx 2020.08.13

Ansible로 Tomcat 설정 파일을 선택적으로 배포 해보기

ansible의 기초 지식이 있다는 전제 하에 설명을 진행 합니다. 우선 아래와 같은 구조가 있다고 생각하자. ansible-playbooks - group_vars - host_vars - inventory - roles - deploy_config - pc - api - mobilerole기반의 playbooks를 모아두기 위한 구조이다. 내가 속한 팀에서 위와 같은 디렉토리 구조를 잘 쓰고 있다. (더 좋은 방법이 있다면, 알려주시면 좋겠습니다.) tomcat, apache, nginx, logstash, elasticsearch, kafka등과 같은 모든 툴들에는 설정 파일이 필요하다. 그리고 관리 해야 하는데, 나는 주로 해당 서버에 쓰이는 설정은 같은 디렉토리에 넣어둔다. pc에 관련한 tom..

인프라/Ansible 2020.04.08

[짠내나는 팁] hostname과 nginx server domain mapping 삽질(찬조출연: ansible)

왜 이런 삽질을 시도 했나? 회사에서 개발 서버들은 모두 VM(Virtual Machine)을 사용하고 있다. 그런데, 이것도 사실 비용이기 때문에, 여러 개발 서버를 모두 띄우기 쉽지 않다. (물론, 요즘은 도커를 이용하는 방법이 있다.) 다만, 배보다 배꼽이 더 큰 환경 설정이 필요로 하다. 그럴때는 그냥 가상 머신이 제일 간편한데, 보통은 서버수는 적게 받아 가상 호스트를 이용해 개발 서버를 여러대인 것 처럼 사용한다. 대다수의 서버들을 환경 설정 자동화를 하곤 했는데, 서버가 몇 없는 개발 서버만 유독 수작업을 해줘야 했다. (사실 찾아보기 귀찮았다.) 그래서 가상 호스트 도메인과 호스트 네임을 이용해 nginx server의 server_name을 설정 하는 방법을 찾았다. (예전에는 왜 이런 ..

인프라/Ansible 2020.01.08

mod_rpaf module 모듈 ansible로 설치 하기

mod_rpaf 모듈이 필요한 경우 apache 2.2.x를 사용하는데, proxy server를 거치는 경우 client-ip가 바뀐다. 그럴때, 해당 모듈을 사용하면 되는데, apache 2.4.x에서는 mod_remoteip.so가 아마 있어서 해당 모듈을 사용하면 된다. apache httpd 2.2.x를 사용하는 경우 설치 (with ansible) ansible-playbook을 기준으로 하는데, 보통 role을 구성해서 사용하는 편이다. 그러나, 해당 작업은 apache setting과의 의존이 있기 때문에 하나의 task로 분리해서 만들었다. 원래는 role을 구성하는 것이 더 좋다. ansible-playbook을 어떤 것인지 모르겠다면, ansible document를 참고 하면 된다...

인프라/Ansible 2019.07.20

Ansible-playbook으로 tomcat update 하는 tip

Ansible-playbook 여러 디렉토리 확인 후 해당 디렉토리에 파일 전송하기상황을 간략하게 설명하자면, 이런 상황이 생길 수 있다고 가정했습니다. 예를 들어, 한 서버 (target)에 apache, tomcat을 사용한다고 생각해봅시다. 이 때에, tomcat은 인스턴스를 2개 사용합니다. 생각해보면, 한 물리 서버에 인스턴스 2개인 tomcat이 존재하는 겁니다. 이 때 tomcat을 업데이트 한다고 가정하겠습니다. 그렇다면, copy 혹은 template 명령어를 가지고 target 서버 내의 tomcat 두 디렉토리에 설정 파일을 전송해야 합니다.어떻게 작성 할 수 있을 까요? 저는 아래처럼 작성 했습니다.- name: set tomcat config template: src: "roles..

인프라/Ansible 2018.08.10

rabbitmq 서버 터트리고 살리기 (akka. file discriptor가 문제다.)

파일 디스크립터 갯수 올리려다가 rabbitmq 터진 사건 파일 디스크립터 갯수가 1024개로 되어 있으나, OS의 파일 디스크립터 갯수는 81920개까지 사용 가능하다. $ ulimit -n #명령어로 갯수 확인이 가능하다.rabbitmq를 처음 셋팅하게 되면, 기본적으로 file discriptor 갯수가 1024개로 셋팅이 되는 것 같다. 그런데, rabbitmq-server를 재시작하면, OS 커널에 대한 옵션을 자동으로 가져오는 것 같다. (혹은 아닐 수도 있습니다.) 그래서 노드 1번을 냅두고, 노드 2번부터 stop_app으로 어플리케이션을 중지시키고, rabbitmq-server를 중지시켰다가 다시 시작 시켰다. 바로 file discriptor 갯수가 증가했다. 그 후 노드 1번을 증가시..

인프라 2018.04.23

[정리] 앤서블 철저 입문

플레이북 실행 속도를 높이기 위한 tip파이프라이닝으로 SSH 처리 수 줄이기일반적으로 앤서블은 task 실행마다 SSH명령을 여러번 실행(임시 디렉토리 생성, 모듈 스크립트 전송, 모듈에 실행 권한 부여, 모듈 실행 + 삭제)하지만, 파이프라이닝 설정을 활성화화면, 모듈 스크립트의 전송을 처리할 필요가 없어진다. 곧, SSH처리 수가 감소하여 (모듈 실행만으로 완료) 성능 개선으로 연결될 수 있다. 즉, 이 설정을 SSH를 통해 모듈을 실행하는 모든 경우에 유효하여 항상 활성화 해두는 것이 좋다. [ssh_connection] pipelining = True 파이프라이닝이 기본적으로 비활성화 된 이유는 sudo를 이용해 관리자 권한으로 실행할 때, sudoers 설정 파일에서 requiretty를 비활..

인프라/Ansible 2018.02.08

Ansible GUI Tool install - Semaphore

Semaphore 설치 경험기.md Ansible GUI Tool #1 - Semaphore 설치 경험기사실 원래, Ansible Tower라는 막강한 툴이 있으나, 생각보다 정말 많이…비싸다.그래서 대안으로 Open Source Project인 Semaphore를 설치하기로 했다. 그런데, 가이드는 정말 간단했다. 그래서 더 불안했다.Semaphore InstallSemaphore Project위 위키 페이지를 가면, 아래와 같은 Install 가이드를 준다. Copy download link for your OS from Releases page(linux) curl -L > /usr/bin/semaphoreRun semaphore -setupContinue setup (see belo..

인프라/Ansible 2017.09.26

Ansible의 사용기 후기

Ansible의 사용기 후기 노가다 후기라고 해야 할지, 삽질이라고 해야 할지 그냥 둘다.. unarchive 이 모듈에 대해선 할 말이 참 많다. 이 모듈은 자그마치 메이저 버전이 v1 에서 v2로 왔음에도 버그가 존재한다. 이를 테면, 압축 파일 내에 디렉토리 하위 디렉토리 구조라면, 하위 디렉토리의 owner에 대한 지정하는 옵션이 적용 되지 않는다. 이미 Github Issue에 나도 여전히 안된다고 리포트를 올리긴 했다. 인프라 구성 설정 관리 툴 도입에 대한! Ansible이 모든 것을 해줄 것 같지만, 생각보다 서비스 하는 서버의 구성을 자동화 한다는게 생각보다 쉽지는 않다. 우선, Ansible이든, Chef 혹은 Puppet이라는 Automation Infra Tool을 도입하려 한다면,..

인프라/Ansible 2017.09.16

[tip] Ansible Tower 삭제하는 방법

Remove Ansible-tower on CentOS7centos에 ansible-tower trial 버전을 설치 했으나, 라이센스 자체가 실험용으로만 써야하고, 실무에 직접 쓰게 되면 안된다는 조항이 있더라. 그래서 삭제하려고 보니 또 설치때와는 다르게 가이드 자체가 없어서 헤맸는데, 그리하여 결국 레드햇에 SOS 떄렸다.그랬더니 전화와 이메일로 응답이 왔고, 그 뒤에 개발자가 메일을 주었다. 아래 방법으로 시도해보자!ResolutionAlthough there is not an official procedure to uninstall Ansible Tower, and the following procedure may not remove every file installed in the comple..

인프라/Ansible 2017.08.14
반응형