Jenkins에 sudo를 허용하고 배포
전제 조건
자신의 메모
우분투 16.04
본문
Jenkins에 Github 등에서 예를 들어
hoge
라는 리포지토리를 pull 해 와서, 빌드한 것은 다음과 같은 장소에 수납됩니다./var/lib/jenkins/workspace/hoge
여기에서 좋아하는 장소에
rsync
해 주고 싶은 곳입니다만, Operation not permitted
라고 말해 잘 할 수 없거나 합니다.그래서 Jenkins에게
sudo
를 해주고 싶습니다. [쉘 실행]에sudo sh /path/to/deploy.sh
라고 써 실행해도
sudo: no tty present and no askpass program specified.
라고 불려 실행할 수 없습니다.그래서 무리하게 허가를 해드립니다!
$ sudo visudo
에서
Defaults visiblepw
jenkins ALL=(ALL) NOPASSWD:ALL
추가 암호 없이
sudo
실행할 수 있습니다.이때 아무래도 익숙하지 않은 에디터가 나옵니다만, 이것은 nano 라고 하는 아이(이름은 일상으로 나오는 것 같고 귀엽다...)로, 사용법은 이 사이트 를 참고로 하면 좋다고 생각됩니다.
그건 그렇고,이 파일 자체는
/etc/sudoers
에 있습니다. 조금이라도 구문 오류가 발생하면 sudo
자체를 사용할 수 없게됩니다. ... 만약의 대처법은 이쪽 덤
Jenkins가 실행한 파일은 요 전날 추천한 npm 데몬 장치 forever에서 보통으로
deploy.sh
- 略 -
forever start path/to/app.js
라고 써도
Forever cannot find process with id: /path/to/app.js
라든지 말하자면 왠지 찾아주지 않습니다. . .
에서 해결책은
deploy.sh
- 略 -
forever start app.js --sourceDir="/path/to/dir/"
하면 좋은 것 같습니다
게다가 어색하게도, Jenkins에서 forever 해 버리면 이번은 다른 유저로부터
forever list
로서 해도info: No forever processes running
라고 말해 버립니다. . . . 우선 이런 느낌으로 멈추고 싶을 때는 단번에 죽일 수밖에 지금의 곳 저에게는 칠 수 없습니다
$ sudo pkill -f 'app.js'
몇 가지 좋은 방법을 알고 싶으면 교수하십시오
Reference
이 문제에 관하여(Jenkins에 sudo를 허용하고 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoshi3/items/dc38195472129b544348텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)