在Mac OS上设置jenkins slave

问题描述 投票:7回答:3

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

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

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

谢谢。

linux macos jenkins
3个回答
9
投票

你确实需要Mac上的用户Jenkins大师将用来ssh。但这与设置Linux slave完全相同。

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

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

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

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


7
投票

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

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

  1. 使用ssh-keygen创建ssh私钥和公钥。在我的情况下,密钥是用-C "name"给我的,但没有密码,文件名为id_rsaid_rsa.pub。保持私有(非.pub)密钥以供Jenkins Credentials稍后使用,并且为了测试目的,在验证事情是否适用于ssh连接而不必重新启动Jenkins代理时,私钥应该保存在/Users/<username>/.ssh目录中,并且可以读取权限和所有权。本地测试主机的用户,如果我正在测试它
  2. mkdir .ssh在远程Mac mini slave的/User/jenkins/目录中
  3. 在Mac mini上确保.ssh目录和任何子目录或文件的所有者是jenkins而不是root(sudo chown ...)。
  4. 确保.ssh目录和任何子目录或文件的权限是可读和可写的(如果你没有正确设置所有权,为了更改权限,你将需要使用sudo。如果你使用sudo设置权限,你避风港没有正确设置jenkins用户的所有权)
  5. 允许远程登录Mac mini系统首选项 - >共享 - >检查远程登录并允许管理员和静态IP - >网络 - > TCP / IP - > DHCP手动或完全手动
  6. 在测试主机/本地计算机(非Mac mini)终端和命令行ssh [email protected]上,以确保您可以使用密码身份验证ssh到远程Mac mini。您可能会收到一个请求以确定新主机(在远程Mac mini的IP地址)。
  7. 然后退出并在本地机器中使用ssh-copy-id -iid_rsa.pub的内容(无论是在.ssh或其他地方)复制到authorized_keys找到here
  8. 这将自动生成.ssh目录中的authorized_keys文件
  9. 确保authorized_keys文件也具有适当的权限
  10. 在Jenkins管理节点。创建一个新节点。添加凭据并使用私钥将其设为ssh用户名。用户名:jenkins。私钥:直接输入。应该从本地机器测试主机私钥(pbcopy<~/.ssh/id_rsa)复制字符串,包括==== beginend private key ======部分,然后保存。
  11. 然后在新节点配置上不需要工具包。远程根目录:/Users/jenkins。主持人:Mac mini的静态IP地址。主机密钥验证策略:手动可信密钥验证策略。检查需要手动验证初始连接
  12. 在第一次连接尝试时,如果您没有JDK设置并运行,则执行此操作。我下载了Java 8堆栈交换开发工具包,一旦我确认它已经安装在带有javac-version和java-version的Mac mini上,我再次启动了代理并且验证没有问题。

我阅读旧教程的错误是:

试图在/etc/ssh/sshd_config中删除密码的需要。这是完全没必要的。另外,我可能没有注意到所有者和/或搞砸.ssh.ssh/authorized_keys.ssh/id_rsa在远程和本地机器上的权限。

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


-3
投票
  1. 确保在mac上有jdk 1.7或更高版本,通过运行java -version进行验证并设置$ JAVA_HOME。
  2. 从jenkins下载jenkins war,很可能你会在/ Users / Shared / Jenkins /创建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中的任何日志或错误
© www.soinside.com 2019 - 2024. All rights reserved.