Jenkins에 sudo를 허용하고 배포

3700 단어 Jenkins우분투

전제 조건



자신의 메모
우분투 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'

몇 가지 좋은 방법을 알고 싶으면 교수하십시오

좋은 웹페이지 즐겨찾기