我对在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相同或不同。
谢谢。
答案 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没有其他):
使用ssh-keygen
创建ssh私钥和公钥。在我的情况下,密钥是-C "name"
给我的,但没有密码短语,文件名为id_rsa
和id_rsa.pub
。保持Jenkins Credentials以后使用私有(非.pub
)密钥,并且为了测试目的,在验证事情是否适用于ssh连接而不必重新启动Jenkins代理时,私钥应该保存在/Users/<username>/.ssh
中目录和可读权限以及本地测试主机用户的所有权(如果我正在测试它的方式)
mkdir .ssh
目录中的 /User/jenkins/
确保.ssh
目录的所有者和任何子目录或文件都是jenkins而不是root(sudo chown ...
)。
确保.ssh
目录和任何子目录或文件的权限是可读写的(如果您没有正确设置所有权,为了更改权限,您将需要使用sudo 。如果您使用sudo设置权限,则无法正确设置jenkins用户的所有权)
允许在Mac mini系统偏好设置中进行远程登录 - &gt;分享 - &gt;检查远程登录并允许管理员和静态IP - &gt;网络 - &gt; TCP / IP - &gt; DHCP手动或完全手动
在测试主机/本地计算机(非Mac mini)终端和命令行ssh jenkins@static.ip.address.of.MacMini
上,以确保您可以使用密码身份验证ssh到远程Mac mini。您可能会收到一个请求以确定新主机(在远程Mac mini的IP地址)。
然后注销并在本地计算机上使用ssh-copy-id -i
将id_rsa.pub
的内容(无论是.ssh
还是其中)复制到找到here的authorized_keys。
这将自动生成.ssh目录中的authorized_keys文件
确保authorized_keys文件也具有适当的权限
管理节点。创建一个新节点。添加凭据并使用私钥将其设为ssh用户名。用户名:jenkins。私钥:直接输入。字符串应从本地计算机测试主机私钥(pbcopy<~/.ssh/id_rsa
)复制,包括==== begin
和end private key ======
部分,然后保存。
然后在新节点配置上不需要工具包。远程根目录:/Users/jenkins
。主持人:Mac mini的静态IP地址。主机密钥验证策略:手动可信密钥验证策略。检查需要手动验证初始连接
首次连接尝试时,如果您没有安装和运行JDK,请执行此操作。我下载了Java 8堆栈交换开发工具包,一旦我确认它已经安装在带有javac-version和java-version的Mac mini上,我再次启动了代理并且验证没问题。
我阅读旧教程的错误是:
尝试在/etc/ssh/sshd_config
中删除对密码的需求。这完全没必要
此外,我可能没有注意所有者和/或搞砸.ssh
,.ssh/authorized_keys
&amp;的权限。远程和本地计算机中的.ssh/id_rsa
。
最初,当我在jenkins中创建凭据时手动输入私钥时,我删除了===== Begin private key
和======End private key
。那些应该包括在内。 id_rsa的文件应保持原样。
答案 2 :(得分:-3)
find / -name Jenkins
找到它。/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