Дженкинс раб на Mac не удается при запуске

Я пытаюсь запустить Дженкинса Раба на Mac Mini со следующими /Library/LaunchDaemons/com.jenkins.ci.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.jenkins.ci</string>
        <key>UserName</key>
        <string>jenkins</string>
        <key>SessionCreate</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/bin/java</string>
            <string>-Djava.awt.headless=true</string>
            <string>-jar</string>
            <string>/Users/jenkins/agent.jar</string>
            <string>-jnlpUrl</string>
            <string>http://jenkins2.domain.net:8080/computer/jenkins-mac/slave-agent.jnlp</string>
            <string>-secret</string>
            <string>23erft6yhujnhyujnbftyujbvcdrtyhbvcxswedaw</string>
            <string>-workDir</string>
            <string>"/Users/jenkins/jenkins_slave/"</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/Users/jenkins/error.log</string>
        <key>StandardOutPath</key>
        <string>/Users/jenkins/stdout.log</string>
    </dict>
    </plist>

затем sudo launchctl load /Library/LaunchDaemons/com.jenkins.ci.plist

Но в /Users/jenkins/error.log

я вижу

    Exception in thread "main" java.io.IOException: The specified working directory should be fully accessible to the remoting executable (RWX): "/Users/jenkins/jenkins_slave/"
        at org.jenkinsci.remoting.engine.WorkDirManager.verifyDirectory(WorkDirManager.java:249)
        at org.jenkinsci.remoting.engine.WorkDirManager.initializeWorkDir(WorkDirManager.java:202)
        at hudson.remoting.Launcher.run(Launcher.java:300)
        at hudson.remoting.Launcher.main(Launcher.java:283)

Я открыл /Users/jenkins/jenkins_slave/ с 777 все еще получаю эту ошибку.

Если я запускаю следующий на Mac как jenkins пользователь, это работает

/usr/bin/java -Djava.awt.headless=true -jar /Users/jenkins/agent.jar -jnlpUrl http://jenkins2.domain.net:8080/computer/jenkins-mac/slave-agent.jnlp -secret 23erft6yhujnhyujnbftyujbvcdrtyhbvcxswedaw -workDir "/Users/jenkins/jenkins_slave/"

Кто-нибудь знает, что здесь не так?

Я нахожусь на:

ProductName: Mac OS X
ProductVersion: 10.14.1
Версия сборки: 18B75

2 ответа

Поэтому причина, по которой он работает для пользователя "jenkins", заключается в том, что Jenkins создает учетную запись приложения с jenkins пользователь, у которого есть права на запуск / доступ к Jenkins(и его папкам - в вашем случае -workDir "/Users/jenkins/jenkins_slave/"). Поэтому jenkins Можно запустить команду, но когда вы пытаетесь запустить ее с помощью sudo, она не работает.

Почему это не с sudo?

Это в основном потому, что в дереве есть каталог выше, где у вас нет разрешения на выполнение, поэтому даже с 777 вы все равно не сможете его запустить.

Вместо этого сделайте chown или же usermod на каталог пользователю, которому вы хотите получить доступ

sudo usermod -a -G rohit git

для получения дополнительной информации https://askubuntu.com/questions/812513/permission-denied-in-777-folder

У меня была такая же проблема. Проблема заключалась в кавычках для каталога:

      <string>"/Users/jenkins/jenkins_slave/"</string>

Просто удалите их, и все заработает:

      <string>/Users/jenkins/jenkins_slave/</string>
Другие вопросы по тегам