Software Deployment

Ansible

접속 테스트

$ ansible fusion-web -i inventory/test/hosts_etc_tomcat_only -m command -a 'ls -al'

인벤토리 파일내에 fusion-web 그룹 서버군에 ls -al 컴맨드를 날린다. 이를 통해 접속 여부 테스트가 가능하다.

좀 더 간단한 방법으로 아래와 같이 ping 할 수 있다.

$ ansible fusion-web -i inventory/test/hosts_etc_tomcat_only -m ping

배포의 문제점

ansible은 전체 배포를 하는데, 배포 중간에 http status를 확인하는 스크립트가 포함되어 있었다. 그러나, 모든 서버가 장애 상태에 빠져 http 확인이 안되어 이 스크립트가 실패로 기록되어 배포가 중간에 멈추는 경우가 발생했다. 강제로 웹 서버를 foreground로 띄워두고 http status 체크가 가능하도록 한 다음에야 겨우 배포가 가능했다.

설치 스크립트까지 포함된 ansible은 항상 위험 요인을 안고 있고, 배포할때 마다 늘 불안하다. 때문에 docker로 이미지를 말아서 최종 테스트를 해보고 문제 없을때 이미지를 배포하는 docker의 방식이 가장 편리했고, 무엇보다 안전하다.

Jenkins

Daemonize 및 Jenkins의 ProcessTreeKiller

바이너리를 데몬으로 띄우기 위해 처음에는 daemonize를 사용했으나 Go 바이너리는 잘 되지 않았다.

결국 Go 용도로 만들어낸 라이브러리를 찾게 되었고 go-daemon을 테스트 해보니 go run으로는 문제가 없는데 빌드 후 바이너리로 실행시 pid가 남지 않는 등의 문제가 있었다. 그러나 이외에는 잘 동작하여 그대로 사용하기로 했다.

그런데 jenkins에서 실행할때 데몬이 구동되지 않았다. nohup으로 해봐도 마찬가지. 알고보니 ProcessTreeKiller라는게 있어 해당 빌드에서 실행된 바이너리는 완료 후 모두 종료하도록 되어 있었다. BUILD_ID를 지정하면 건드리지 않는다고. 이걸 몰라 한참을 고생했다.

Last Modified: 2019/04/16


OOP  ·  AWS  ·  2019 Book Reports  ·  머신러닝  ·  Android Development  ·  데이터 사이언스  ·  2020 Book Reports  ·  Python  ·  비지니스  ·  인공지능  ·  진화생물학  ·  이산수학  ·  알고리즘  ·  통계학  ·  수학  ·  미래학  ·  Project Management  ·  NLP 가이드  ·  LifeHacks  ·  Docker  ·  C++  ·  2017 Book Reports  ·  Python Data Structure Cheatsheet  ·  Decision Tree  ·  LeetCode  ·  TensorRT  ·  NLP  ·  Hadoop, Spark  ·  통계학 응용  ·  데이터 마이닝  ·  CNN, RNN  ·  2018 Book Reports  ·  운영체제  ·  자료구조  ·  머신러닝 분류기  ·  거리  ·  Support Vector Machine  ·  OAuth 2.0  ·  Naive Bayes  ·  Activation, Cost Functions  ·  Jupyter Notebooks  ·  RSA  ·  컴파일러  ·  딥러닝  ·  Word Embedding  ·  컴퓨터시스템구조  ·  영어  ·  Go  ·  사회심리학  ·  Scikit Learn  ·  XGBoost  ·  Software Deployment  ·  NLP 실험  ·  MySQL  ·  Keras  ·  Java  ·  Information Retrieval  ·  HTML, CSS, JavaScript
is a collection of Papers I have written.
© 2000 - Sang-Kil Park Except where otherwise noted, content on this site is licensed under a CC BY-NC 4.0.
This site design was brought from Distill.