<div style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:dotum;width:683px;color:#8a8a8a;font-size:12px;overflow:hidden;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="article"> <div style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;" class="tt_article_useless_p_margin"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">개인적인 오픈소스 프로젝트 개발을 진행하면서 경험한 내용과 느낌을 간단하게 정리해보기로 했습니다. 현재 github<a style="text-decoration:underline;color:#8a8a8a;" href="" target="_blank" class="tx-link">(https://github.com/Pyohwan/JakduK</a>)에 소스 코드가 올라가 있습니다. 또한 K리그 작두왕(<a style="text-decoration:underline;color:#8a8a8a;" href="https://jakduk.com/" target="_blank" class="tx-link">https://jakduk.com</a>)이 이 소스 코드로 돌아가는 것입니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">현재 K리그 작두왕의 빌드 및 배포는 Jenkins를 통해서 이루어지고 있습니다. 빌드 및 배포를 수행하는 대상은 4곳인데요.</p> <ul style="margin:0px;padding:0px 0px 0px 25px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;list-style-type:square;"><li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">스테이징 API 서버 (<a style="text-decoration:underline;color:#8a8a8a;" class="tx-link" target="_blank">https://staging.jakduk.com:8080)</a></li> <li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">스테이징 WEB 서버 (<a style="text-decoration:underline;color:#8a8a8a;" class="tx-link" target="_blank" href="https://staging.jakduk.com/">https://staging.jakduk.com</a>)</li> <li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">프로덕션 API 서버 (<a style="text-decoration:underline;color:#8a8a8a;" class="tx-link" target="_blank" href="https://api.jakduk.com/">https://api.jakduk.com</a>)</li> <li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">프로덕션 WEB 서버 (<a style="text-decoration:underline;color:#8a8a8a;" class="tx-link" target="_blank" href="https://jakduk.com/">https://jakduk.com</a>)</li></ul><p style="margin:0px;padding-top:0px;padding-bottom:0px;">스테이징과 프로덕션으로 크게 나뉘어 집니다. 또한 RESTful만 담당하는 API 서버와, 웹쪽 렌더링을 담당하는 WEB 서버가 있습니다.<br></p></div></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">이번 글에서는 Jenkins로 빌드하고 원격지(프로덕션)에 배포하는 방법을 써볼까 합니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">먼저 Jenkins가 설치된 서버가 있어야 합니다. 저는 Centos 6 서버에 rpm으로 Jenkins를 쉽게 설치했습니다. Jenkins 설치에 대해서는 구글에서 검색해보면 많이 나오니 생략하겠습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <ul style="margin:0px;padding:0px 0px 0px 25px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;list-style-type:square;background-color:#ffffff;"><li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">JAKDUK Jenkins (<a style="text-decoration:underline;color:#8a8a8a;" class="tx-link" target="_blank" href="https://jenkins.jakduk.com/">https://jenkins.jakduk.com</a>)</li></ul><p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">JAKDUK Jenkins URL입니다. 물론 계정 정보가 있어야 접속할 수 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><img src="http://cfile27.uf.tistory.com/image/26376D39579777C926D8F7" alt=""></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-align:center;clear:none;float:none;background-color:#ffffff;"><span style="margin:5px 0px;display:inline-block;width:683px;height:auto;max-width:100%;" class="imageblock"></span></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">현재 3개의 아이템이 등록되어 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">JAKDUK_API_Production 아이템의 Build with Parameters를 선택합니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">TASK_TYPE에는 각각 build, bowerInstall, deply가 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-align:center;clear:none;float:none;background-color:#ffffff;"><img src="http://cfile23.uf.tistory.com/image/22703A49579780833B848A" alt=""><span style="margin:5px 0px;display:inline-block;width:683px;height:auto;max-width:100%;" class="imageblock"><span style="text-align:left;"></span></span></p> <p></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br><span style="width:1px;height:1px;float:right;"></span></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">JAKDUK_API_Production 아이템의 구성을 살펴볼께요.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Repositories 설정은 Github에 있는 JAKDUK Repository URL를 사용하고 있고, 빌드에 사용할 branch를 설정해 줍니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><img src="http://cfile23.uf.tistory.com/image/225B6E38579778902E1C67" alt=""></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-align:center;clear:none;float:none;background-color:#ffffff;"><span style="margin:5px 0px;display:inline-block;width:683px;height:auto;max-width:100%;" class="imageblock"></span></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">빌드 환경이 중요합니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Execute shell을 선택하고, TASK_TYPE에 맞는 행동을 수행하도록 쉘 명령어를 사용했습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">WORK="/var/lib/jenkins/workspace"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">if [ "$TASK_TYPE" == "build" ]; then</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><span style="white-space:pre;" class="Apple-tab-span"> </span>$WORK/JakduK_build/gradlew clean test build</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">elif [ "$TASK_TYPE" == "bowerInstall" ]; then</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><span style="white-space:pre;" class="Apple-tab-span"> </span>$WORK/JakduK_build/gradlew bowerInstall</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">elif [ "$TASK_TYPE" == "deploy" ]; then</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><span style="white-space:pre;" class="Apple-tab-span"> </span>SVR="172.30.1.33"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><span style="white-space:pre;" class="Apple-tab-span"> </span>ssh jakduk@$SVR "sudo systemctl stop tomcat"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"> ssh jakduk@$SVR "sudo rm -rf /usr/local/tomcat/webapps/ROOT"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"> scp $WORK/JakduK_build/jakduk-web/build/libs/*.war tomcat@$SVR:/usr/local/tomcat/webapps/ROOT.war</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"> ssh jakduk@$SVR "sudo systemctl start tomcat"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">fi<br></p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">build TASK를 선택하면 gradlew로 test build를 수행하고, bowerInstall TASK를 선택하면 자바스크립트의 의존 라이브러리를 해결해주는 bower 툴을 실행합니다. (이부분은 RESTful 서버로 완전히 분리되면 사라질 예정이고, bowerInstall에 대한 부분은 <a style="text-decoration:underline;color:#8a8a8a;" class="tx-link" target="_blank" href="https://github.com/JakduK/JakduK/blob/master/jakduk-web/build.gradle#L28">https://github.com/JakduK/JakduK/blob/master/jakduk-web/build.gradle#L28</a><span class="Apple-converted-space"> </span>를 참고)</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">deploy TASK를 선택하면, 원격지(172.30.1.33)의 tomcat을 중지 하고, 빌드한 war를 이동 시킨 다음에 다시 tomcat을 시작합니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">하지만 ssh나 scp를 통해 원격지 머신을 컨트롤 하기 위해서는 권한 문제를 해결해야 합니다. deploy TASK를 다시 한번 살펴보면 ssh 시에는 jakduk 유저를 사용하여 sudo 명령어를 수행하고, scp를 할때에는 tomcat 유저로 수행하는것을 볼 수 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <ol style="margin:0px;padding:0px 0px 0px 25px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;list-style-type:decimal;background-color:#ffffff;"><li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">Jenkins를 별도의 유저(jakduk)로 실행할것. </li> <li style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;">Jenkins에서 원격지(172.30.1.33)으로 암호 입력 없이 ssh 수행이 가능할것.</li></ol><p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">위 두가지를 해결해야만 Jenkins에서 원격지로 war를 배포할 수 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <h4 style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><b>Jenkins를 별도의 유저(jakduk)로 실행</b></h4> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Jenkins가 yum install을 통해 설치 되었다면 Jenkins는 기본적으로 jenkins 유저를 하나 만들고, jenkins 유저로 실행하게 됩니다. 하지만 jenkins유저는 nologin 설정이 있기 때문에, 로그인 할수 없는 유저입니다. 원격지의 자원을 마음대로 조정하기 위해서는 jenkins 유저의 공개키가 필요한데, 로그인을 할수 없으니 만들수가 없습니다. 따라서 jakduk유저를 새로 만들었습니다. </p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">useradd 명령어로 jakduk 유저를 만듭니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># useradd jakduk<br></p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">JAKDUK Jenkins 서버에서 /etc/sysconfig/jenkins 파일을 열어봅니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">## Type: string</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">## Default: "jenkins"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">## ServiceRestart: jenkins</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">#</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># Unix user account that runs the Jenkins daemon</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># Be careful when you change this, as you need to update</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># permissions of $JENKINS_HOME and /var/log/jenkins.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">#</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">JENKINS_USER="jakduk"</p> <div style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;"><br></div></div> <div style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></div> <div style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">위 JENKINS_USER의 값을 jakduk로 수정하고, jenkins를 재시작합니다.</div> <div style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></div> <h4 style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><b>Jenkins에서 원격지(172.30.1.33)으로 암호 입력 없이 ssh 수행</b></h4> <div style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">먼저 Jenkins 서버의 jakduk 유저의 공개키와 비밀키를 생성해야 합니다.</div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">먼저 jakduk 유저로 바꾸고, ssh-keygen으로 키를 생성합니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># su - jakduk</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># ssh-keygen<br></p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">.ssh 디렉토리가 생성되고 ls 명령어로 확인해보면 키를 확인할 수 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">[jakduk@localhost .ssh]$ ll</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">합계 16</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-rw-r--. 1 jakduk jakduk 410 2016-07-26 00:30 authorized_keys</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-------. 1 jakduk jakduk 1671 2016-06-03 14:04 id_rsa</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-r--r--. 1 jakduk jakduk 410 2016-06-03 14:04 id_rsa.pub</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-r--r--. 1 jakduk jakduk 1965 2016-07-26 00:17 known_hosts<br></p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">이제 id_rsa.pub를 원격지(172.30.1.33)에 넣어주면 됩니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">원격지에 터미널로 접속하여, useradd 명령어로 jakduk, tomcat 유저를 생성합니다. 굳이 2개의 유저를 생성한 이유는 역할을 분리하기 위해서입니다. jakduk 유저는 systemctl 명령어와 rm 명령어만 사용하기 위함이고, tomcat 유저는 tomcat만 담당하기 위해서입니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">먼저 jakduk 유저로 변경하고 .ssh 디렉토리를 생성합니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># mkdir .ssh</p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">.ssh 로 이동하고나서 authorized_keys를 생성합니다. 이 파일 안에 Jenkins의 jakduk유저 공개키를 넣어줍니다. 그리고 나서 권한을 바꿔주세요.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"># chmod 600 authorized_keys</p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">이작업을 tomcat 유저도 동일하게 해주면 됩니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">참고로 원격지 API 서버의 경우 Centos 7를 설치했습니다. jakduk 유저에 약간의 root 권한을 부여해보겠습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">[root@api ~]# cat /etc/sudoers.d/jakduk-user </p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">Cmnd_Alias TOMCAT = /usr/bin/systemctl * tomcat</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">Cmnd_Alias RM = /bin/rm</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">jakduk ALL=(ALL) NOPASSWD:TOMCAT,NOPASSWD:RM</p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">jakduk 유저에게 systemctl과 rm 명령어를 비밀번호 입력없이 sudo로 사용할 수 있도록 했습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">또한 /etc/sudoers 파일을 수정해야 합니다. requiretty 옵션을 없애야만 Jenkins서버에서 API 서버로 명령을 날릴 수 있습니다.</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">#Defaults requiretty</p></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <h4 style="margin:0px;padding:0px;border:0px none;line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">테스트</h4> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Jenkins 서버에서 다음의 명령어를 날려보세요. (꼭 한번은 해야 합니다. 왜냐하면 터미널로 최초 접속시 known_hosts에 등록 해야하기 때문입니다.)</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p> <div style="margin:0px;padding:10px;border:1px dashed rgb(203,203,203);line-height:15.6px;font-family:'돋움', Dotum, AppleGothic, sans-serif;color:#8a8a8a;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;" class="txc-textbox"> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">[jakduk@localhost .ssh]$ ssh
[email protected] "sudo systemctl stop tomcat"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">[jakduk@localhost .ssh]$ ssh
[email protected] "ls -al"</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">합계 28</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">drwx------. 3 tomcat tomcat 4096 7월 26 23:18 .</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">drwxr-xr-x. 4 root root 32 7월 25 23:15 ..</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-------. 1 tomcat tomcat 504 7월 26 23:18 .bash_history</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-r--r--. 1 tomcat tomcat 18 11월 20 2015 .bash_logout</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-r--r--. 1 tomcat tomcat 193 11월 20 2015 .bash_profile</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-r--r--. 1 tomcat tomcat 231 11월 20 2015 .bashrc</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">drwx------. 2 tomcat tomcat 28 7월 26 23:09 .ssh</p> <p style="margin:0px;padding-top:0px;padding-bottom:0px;">-rw-------. 1 tomcat tomcat 6416 7월 26 23:18 .viminfo</p> <div style="margin:0px;padding:0px;border:0px none;line-height:1.3;font-family:'돋움', Dotum, AppleGothic, sans-serif;"><br></div></div> <p style="margin:0px;padding-top:0px;padding-bottom:0px;color:#8a8a8a;font-family:'돋움', Dotum, AppleGothic, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:15.6px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;"><br></p><br class="Apple-interchange-newline">