2017-11-02 16 views
4

MacでJenkinsをCIサーバーとして実行しています。 MacOS 10.12では、ユーザージェンキンの典型的な設定でうまく動いていました。macOSアップデート後にJenkinsユーザーがなくなった

今日、MacOSを10.13(High Sierra)にアップグレードしました。アップグレードプロセスが完了した後、Jenkinsを開始できませんでした。さらに、システム上にユーザー・ジェンキンは存在しませんでした。すべてのJenkinsファイルがありますが、設定 - >ユーザー&グループにjenkinsユーザーはいません。私はchownコマンドでジェンキンスへのファイルの所有権を変更しようとした場合、たとえば、ターミナルでジェンキンスユーザーを使用しようとすると、私が手:

chown: jenkins: illegal user name 

がどのように私はこの問題を解決するのですか?

+1

私はまったく同じ問題を抱えています。あなたはそれを回避することができましたか?ありがとう – Hetote

答えて

5

私は、Jenkinsのインストールから作成するスクリプトコマンドを抽出することで、jenkinsユーザーを再作成することができました。私は特に、このスクリプトを実行した:

JENKINS_HOMEDIR="/Users/Shared/Jenkins" 
DEFAULTS_PLIST="/Library/Preferences/org.jenkins-ci.plist" 

if dscl . -list /Users/jenkins; then 
    echo 'jenkins user already exists, attempting to change the shell to /bin/bash' 
    # Will fail if UserShell is not /usr/bin/false, but that's ok. 
    # Then we will assume an admin has changed it. 
    dscl . -change /Users/jenkins UserShell /usr/bin/false /bin/bash 
else 
    echo 'No jenkins user found, creating jenkins user and group' 

# Find free uid under 500 
    uid=$(dscl . -list /Users uid | sort -nrk 2 | awk '$2 < 500 {print $2 + 1; exit 0}') 
    if [ $uid -eq 500 ]; then 
     echo 'ERROR: All system uids are in use!' 
     exit 1 
    fi 
    echo "Using uid $uid for jenkins" 

    gid=$uid 
    while dscl -search /Groups gid $gid | grep -q $gid; do 
     echo "gid $gid is not free, trying next" 
     gid=$(($gid + 1)) 
    done 
    echo "Using gid $gid for jenkins" 

    dscl . -create /Groups/jenkins PrimaryGroupID $gid 

    dscl . -create /Users/jenkins UserShell /bin/bash 
    dscl . -create /Users/jenkins Password '*' 
    dscl . -create /Users/jenkins UniqueID $uid 
    dscl . -create /Users/jenkins PrimaryGroupID $gid 
    dscl . -create /Users/jenkins NFSHomeDirectory "$JENKINS_HOMEDIR" 

    dscl . -append /Groups/jenkins GroupMembership jenkins 
fi 

# identify the real default group name for user jenkins 
groupid=`dscl . read /Users/jenkins PrimaryGroupID | awk '{print $2}'` 
gname=`id -n -g $groupid` 

echo "Using jenkins:${gname} as file owner and group for jenkins daemon files" 

find "$JENKINS_HOMEDIR" \(-not -user jenkins -or -not -group ${gname} \) -print0 | xargs -0 chown jenkins:${gname} 

# Add defaults for heap sizing 
arch=$(uname -m) 
if [ $arch = 'x86_64' ]; then 
    defaults write $DEFAULTS_PLIST heapSize 512m 
    defaults write $DEFAULTS_PLIST permGen 512m 
    defaults write $DEFAULTS_PLIST minHeapSize 256m 
    defaults write $DEFAULTS_PLIST minPermGen 256m 
else 
    # i386 
    defaults write $DEFAULTS_PLIST heapSize 128m 
    defaults write $DEFAULTS_PLIST permGen 128m 
    defaults write $DEFAULTS_PLIST minHeapSize 64m 
    defaults write $DEFAULTS_PLIST minPermGen 64m  
fi 

defaults write $DEFAULTS_PLIST httpPort 8080 

# Set tmpdir 
JENKINS_TMPDIR="$JENKINS_HOMEDIR/tmp" 
defaults write $DEFAULTS_PLIST tmpdir $JENKINS_TMPDIR 
mkdir -p $JENKINS_TMPDIR 
chown jenkins:${gname} $JENKINS_TMPDIR 

# Create log directory, which can be written by Jenkins daemon 
mkdir -p /var/log/jenkins 
chown jenkins:${gname} /var/log/jenkins 
3

あなたジェンキンス構成はまだライブラリ/ LaunchDaemons/org.jenkins-ci.plist の下に存在するが、ハイシエラへのOSの更新後、ジェンキンスユーザーが消えました。あなたがしなければならないことをした後ジェンキンス

:ジェンキンス、フルネームを:

だから、最初のあなたは&グループ

アカウント名システム環境設定/ユーザーから手動ジェンキンスユーザーを作成する必要がありますジェンキンの設定をこの新しいユーザーに設定する

  • sudo chown -R jenkins /ユーザ/共有/ジェンキンス
  • にsudo chownコマンドジェンキンスは/ var/log /ジェンキンス

最後ジェンキンスサーバーをアンロードし、ロード

  • sudoの/Library/LaunchDaemons/org.jenkins-ci.plistをアンロードにlaunchctl
  • はsudo launchctlをロード/Library/LaunchDaemons/org.jenkins-ci.plist

Safariでhttp://localhost:8080に入力して、あなたはyのを見ることができますou jenkins server

関連する問題