在Mac OS上设置jenkins slave

时间:2014-03-15 12:16:30

标签: linux macos jenkins

我对在Mac上设置Jenkins slave感到困惑。 Google似乎对java web启动选项(https://blog.codecentric.de/en/2012/01/continuous-integration-for-ios-projects-with-jenkins-ci/)有一个很好的答案,但是有人可以通过ssh start选项澄清在mac上设置jenkins slave的步骤。

目前jenkins大师正在Centos上。据我所知,要在Mac上制作奴隶你应该:  1.转到Mac并为jenkins创建一个新的成熟的sudo用户,其中包含代理本身所在的主文件夹。  2.在Jenkins Web界面中将节点设置为ususal linux节点,并为此用户提供login | pass。  3.将mac build限制为此节点。

但是我不确定第一步是否正确 - 我是否需要手动设置jenkins用户,具有提升的权限,登录机器的能力等等。也许可以创建一个& #34;隐藏"用户 - 如果是这样,有人可以帮助或指向好的手册吗?我是mac终端的新手,所以不确定步骤是否与linux相同或不同。

谢谢。

3 个答案:

答案 0 :(得分:9)

您确实需要Mac上的用户Jenkins大师将用于ssh。但这与设置Linux从属设备完全相同。

用户是否需要提升权限取决于您希望Jenkins对该帐户执行的操作。

您还需要使用管理员用户从控制台登录Mac,并在“系统偏好设置”的“共享”面板中打开远程登录。在同一个面板中,您可以限制远程登录到特定用户或允许所有用户登录。

如果我是你,我会使用“系统偏好设置”中的“用户和组”面板为Jenkins创建普通用户。使用命令行工具创建隐藏用户是可能的,但它有点涉及。如果您真的想去那里,可以查看Jenkins Mac安装程序中的安装后脚本如何创建名为jenkins的用户:

https://github.com/jenkinsci/packaging/blob/master/osx/scripts/postinstall-launchd-jenkins

答案 1 :(得分:7)

刚刚完成设置我的Mac mini slave以进行ssh访问。很多旧教程和有不必要信息的教程。我不得不重新启动我的迷你重新开始,这次它起作用了。

快点(这是通过终端/命令行,没有Ubuntu没有其他):

  1. 使用ssh-keygen创建ssh私钥和公钥。在我的情况下,密钥是-C "name"给我的,但没有密码短语,文件名为id_rsaid_rsa.pub。保持Jenkins Credentials以后使用私有(非.pub)密钥,并且为了测试目的,在验证事情是否适用于ssh连接而不必重新启动Jenkins代理时,私钥应该保存在/Users/<username>/.ssh中目录和可读权限以及本地测试主机用户的所有权(如果我正在测试它的方式)

  2. 远程Mac mini slave mkdir .ssh目录中的
  3. /User/jenkins/

  4. Mac mini上的
  5. 确保.ssh目录的所有者和任何子目录或文件都是jenkins而不是root(sudo chown ...)。

  6. 确保.ssh目录和任何子目录或文件的权限是可读写的(如果您没有正确设置所有权,为了更改权限,您将需要使用sudo 。如果您使用sudo设置权限,则无法正确设置jenkins用户的所有权)

  7. 允许在Mac mini系统偏好设置中进行远程登录 - &gt;分享 - &gt;检查远程登录并允许管理员和静态IP - &gt;网络 - &gt; TCP / IP - &gt; DHCP手动或完全手动

  8. 在测试主机/本地计算机(非Mac mini)终端和命令行ssh jenkins@static.ip.address.of.MacMini上,以确保您可以使用密码身份验证ssh到远程Mac mini。您可能会收到一个请求以确定新主机(在远程Mac mini的IP地址)。

  9. 然后注销并在本地计算机上使用ssh-copy-id -iid_rsa.pub的内容(无论是.ssh还是其中)复制到找到here的authorized_keys。

  10. 这将自动生成.ssh目录中的authorized_keys文件

  11. 确保authorized_keys文件也具有适当的权限

  12. Jenkins中的
  13. 管理节点。创建一个新节点。添加凭据并使用私钥将其设为ssh用户名。用户名:jenkins。私钥:直接输入。字符串应从本地计算机测试主机私钥(pbcopy<~/.ssh/id_rsa)复制,包括==== beginend private key ======部分,然后保存。

  14. 然后在新节点配置上不需要工具包。远程根目录:/Users/jenkins。主持人:Mac mini的静态IP地址。主机密钥验证策略:手动可信密钥验证策略。检查需要手动验证初始连接

  15. 首次连接尝试时,如果您没有安装和运行JDK,请执行此操作。我下载了Java 8堆栈交换开发工具包,一旦我确认它已经安装在带有javac-version和java-version的Mac mini上,我再次启动了代理并且验证没问题。

  16. 我阅读旧教程的错误是:

    尝试在/etc/ssh/sshd_config中删除对密码的需求。这完全没必要 此外,我可能没有注意所有者和/或搞砸.ssh.ssh/authorized_keys&amp;的权限。远程和本地计算机中的.ssh/id_rsa

    最初,当我在jenkins中创建凭据时手动输入私钥时,我删除了===== Begin private key======End private key。那些应该包括在内。 id_rsa的文件应保持原样。

答案 2 :(得分:-3)

  1. 确保你在mac上有jdk 1.7或更高版本,通过运行java -version进行验证并设置$ JAVA_HOME。
  2. 从jenkins下载jenkins war,很可能你的jenkins文件夹将在/ Users / Shared / Jenkins /创建,如果没有使用find / -name Jenkins找到它。
  3. 尝试启动它尝试此/usr/bin/java -Dfile.encoding=UTF-8 -XX:PermSize=256m -XX:MaxPermSize=512m -Xms256m -Xmx512m -Djava.io.tmpdir=/Users/Shared/Jenkins/tmp -jar /Applications/Jenkins/jenkins.war --httpPort=8080
  4. 以不同用户身份运行jenkins:将Library / LaunchDaemons / org.jenkins-ci.plist编辑给正确的用户。
  5. 以不同的用户身份运行jenkins:chown -R CORRECT_USER:CORRECT_USER / Users / Shared / Jenkins /
  6. sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
  7. sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
  8. 如果jenkins还没有开始确保进程没有死,请运行上面的java命令。
  9. 检查/var/logs/Jenkins/jenkis.log上的任何日志或错误