我们手游项目,需要支持android/ios,android支持在linux下打包。ios必须要mac上进行打包。
持续集成我们使用了jenkins,找了一台mac mini做为slave。
一开始使用的是java web start。结果试了各种方法得到结论,java web start特别方便,最好不要在mac上使用,因为担心java的安全问题,mac上的java web start根本无法使用。
参考了文章:https://blog.samsaodev.com/how-to-setup-a-jenkins-slave-running-mac-osx-for-ios-projects-part-1/
在ssh-add那一步如果遇到:SSH_AGENT_FAILURE 错误,可以先执行下 eval $(ssh-agent) 试试能否解决问题。
使用ssh建立slave节点。
在mac os 上一直无法使用username/password模式登陆,发现原来mac os因为安全原因,禁止了没有交互的ssh登陆。这里只能使用rsa private key 进行登陆。
在master server上生成key。
然后将public key 复制至slave server。
登陆slave时失败了,查看slave server上的/var/log/secure:sshd[12053]: Address 10.234.49.36 maps to localhost, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!
是因为:是因为DNS服务器把 10.234.x.x 的地址都反向解析成 localhost ,而DNS服务器不是自己的,不能改。 解决的办法就是,编辑 ssh 客户端的 /etc/hosts 文件,把出问题的IP 地址和主机名加进去,就不会报这样的错了。
两台机器之间使用ssh key登陆,默认使用本地当前的用户名,如果不是,则需明确指定用户名。
在jenkins上使用ssh key登陆时,密码必须为空。同时指定private key 所在路径。
OK,添加jenkins子节点成功。
0 条评论。