1. 调整tomcat的jvm配置, 以免内存不够, 在catalina.sh中 #!bin/sh下添加
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true"
2. 在tomcat里增加jenkins的环境变量, 将jenkins_home配置到合适的目录
编辑 confi/context.xml
在<Context></Context>之间增加
<Environment name="JENKINS_HOME" value="/home/tomcat/jenkins/" type="java.lang.String"/> <Resources cachingAllowed="true" cacheMaxSize="100000" />
还要编辑server.xml增加编码配置 URIEncoding="UTF-8" 改完如下
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
3. 启动tomcat, jenkins会自动初始化, 并在JENKINS_HOME目录下生成文件
4. 添加用户, 限制匿名访问
访问Jenkins, 前往 Manage Jenkins -> Configure Global Security,
勾选 Enable securiy, 选择 Jenkins’ own user database 并勾选 Allow users to sign up, Authorization下选择 Anyone can do anything (切记), 保存
注册admin用户, 注册自己的用户
然后返回Configure Global Security
Authorization下选择 Matrix-based security, 把自己注册的两个用户加上, 设为administrator, 而Anonymous只给 Overall -> Read 权限
取消勾选 Allow users to sign up, 保存
今后要增加用户时, 就通过 Manage Jenkins -> Manage Users 操作
Update 2015-12-18
权限配置: 对管理员, Overall里面的都勾选, 其他的随便; 对于普通用户, 仅需要勾选Overall里的Read和Run Scripts, 和Job里的Build, Canel, Read
5. 安装Publish Over SSH Plugin
前往 Manage Jenkins -> Manage Plugins, 在Available里面选择 Publish Over SSH , 勾选装完后自动重启, 安装
重启后, 返回 Manage Jenkins -> Configure System, 在最底下能看到 Publish Over SSH 选项, 添加SSH Servers, 上面的 Passphrase 之类都不用管. 点开Advanced, 填写ssh用户密码, 正确的话, Test Connection就能看到成功信息了. 如果使用RSA Key, 按以下步骤
1) 执行ssh-keygen 创建public/private key pair, 输入文件名后enter, 再直接enter, 不设置密码, 再次enter确认密码为空.
2) 创建authorized_keys, 在remote机器上,
cd .ssh
cat id_rsa.pub > authorized_keys
chmod 700 authorized_keys
3) 配置Jenkins: 将id_rsa(相当于privatekey)拷贝到jenkins master机器上, 并配置key path指向它, 或者直接将内容paste到key文本框里面, Test Connection.
6. 安装 JDK, Maven, Ant
前往Oracle 和 Apache 网站下载相应的 tar.gz 包, 解压后放到 /home/tomcat 或 /opt 目录下, 可以下载多个版本, 然后在 Manage Jenkins -> Configure System 里依次添加
注意, Maven 3.3.x 运行于 JDK1.7, 不支持 JDK 1.6
7. 创建构建任务
下面是一个完整的构建任务配置截图
注意:
1) 在最后一步publish over ssh时, 源文件的target目录在Jenkins工作目录的workspace/任务名/ 下面
2) 目标目录, 其base是配置ssh时设置的目录, 一般配置为ssh用户的home.