특정 작업 디렉터리와 특정 사용자 계정으로 Jenkins를 실행하는 방법은 무엇입니까?

특정 작업 디렉터리와 특정 사용자 계정으로 Jenkins를 실행하는 방법은 무엇입니까?

jenkins.war에서 실행하려면 다음 명령을 사용하고 있습니다.

  jenkins -jar jenkins.war

하지만 전쟁을 실행할 때 다음 경로를 지정하고 싶습니다.

 `/data/jenkins`

jenkins사용자로 실행 해야 합니다 . 이제 디렉토리 root아래에서 사용자 로 /root실행 중 입니다.

어떻게 해야 하나요?

답변1

스크립트에서 다음 환경 변수를 사용했습니다.

JENKINS_HOME="/data/jenkins" JENKINS_WAR="/data/jenkins/jenkins.war"

-D 옵션을 사용하여 Java에 전달합니다.

자바 -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR

# ps -ef | grep java
root         5     1  0 Mar19 ?        00:05:10 /apps/java/jdk1.8.0_121/bin/java  -DJENKINS_HOME=/data/jenkins -jar /data/jenkins/jenkins.war

답변2

Jenkins 위키에서는 이를 Unix 데몬으로 설정하는 방법에 대해 설명합니다.Jenkins를 Unix 데몬으로 설치. 귀하의 질문에 RHEL 태그가 있으며 RHEL 7이 사용되므로 Jenkins를 서비스 systemd로 실행하도록 설정할 수 있습니다 . systemd이를 수행하는 단계는 다음과 같습니다.

  1. 먼저 Jenkins WAR 파일을 다운로드하여 어딘가에 배치해야 합니다. 나는 위치를 선택했다 /opt/jenkins/jenkins.war.

  2. /data/jenkins다음 으로 사용할 데이터 디렉터리를 생성/준비해야 합니다.

  3. 이제 다음 이름의 시스템 사용자 계정을 만들 수 있습니다 jenkins.

    useradd -r jenkins
    
  4. 다음으로 Jenkins WAR 파일 및 데이터 디렉터리의 소유권을 이 새 사용자로 변경합니다.

    chown -R jenkins:jenkins /opt/jenkins/
    chown -R jenkins:jenkins /data/jenkins/
    
  5. 다음으로, systemd새 유닛 파일을 생성하여 서비스를 정의합니다.

    vi /etc/systemd/system/jenkins.service
    
    [Unit]
    Description=Jenkins Daemon
    
    [Service]
    ExecStart=/bin/java -jar /opt/jenkins/jenkins.war
    User=jenkins
    Environment=JENKINS_HOME=/data/jenkins
    
    [Install]
    WantedBy=multi-user.target
    
  6. 다시 로드하여 systemd새 유닛 에 대해 알아보세요.

    systemctl daemon-reload
    
  7. 마지막으로 Jenkins를 시작합니다.

    systemctl start jenkins
    

이제 포트 8080에서 Jenkins에 액세스할 수 있습니다. 포트가 활성화된 경우 시스템에서 실행하여 이를 허용 firewalld해야 합니다 .firewall-cmd --add-port=8080/tcp

이제 Jenkins 로그를 보는 데 사용할 수 있습니다 journalctl _SYSTEMD_UNIT=jenkins.service. 실행 중이 면 사용자로 실행 ps -ef | grep jenkins중임을 표시합니다 jenkins.

jenkins   1749     1  7 11:04 ?        00:00:35 /bin/java -jar /opt/jenkins/jenkins.war

추가 보너스로 systemctl enable jenkins시스템 시작 시 자동으로 시작되도록 하려면 Jenkins 서비스를 실행하세요.

관련 정보