jenkins安装配置
1、下载jenkins.war放入tomcat/webapp下
2、运行后输入密码解锁jenkins
2、启动时tomcat警告或报错,报错信息是内存不够,需要在运行jekin的tomcat下修改conf/context.xml配置,在context节点下添加如下配置扩大缓存内存:
<Context> <Resources cachingAllowed="true" cacheMaxSize="102400" /> </Context>
3、输入后会卡住,这时需要修改/root/.jenkins下的hudson.model.UpdateCenter.xml文件,把默认内容
<?xml version='1.0' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://updates.jenkins-ci.org/update-center.json</url> </site> </sites
的url替换为:
http://mirror.xmission.com/jenkins/updates/update-center.json
原因是:这个地址在外国的服务器,因为墙的原因,下载初始化界面所需插件不了,就一直处于等待状态
4、点击推荐插件安装完成后又会界面卡死,这是因为/root/.jenkins/config.xml的这个值:
6、如果不是直接发布到tomcat,而是采用ssh把构建好的war包上传到指定服务器指定位置,那么可以使用SSH方式,步骤如下:
a、安装 publish over ssh 插件,点击-系统管理-系统插件-可选插件中 直接搜 publish over ssh 点击安装,安装完之后,重启jenkins
b、配置SSH:点击- 系统管理-系统设置-拉到最下面就有这个窗口了,如果系统不能读取/root/.ssh/id_rsa,有可能是权限问题,或者直接把私钥全部拷贝到key输入框中
其中私钥的生成步骤插曲如下:
----------------------------------------------------------SSH私钥生成 begin------------------------------------------
其实很简单,只需要两个指令即可。
ssh-keygen -t rsa -P '' ssh-copy-id -i ~/.ssh/id_rsa.pub <IP地址>
假设有两台服务器,A是Jenkins构建服务器,B是应用服务器,A构建好应用之后,将包传到B进行发布。
在A上面执行 ssh-keygen -t rsa -P '', -P后面两个单引号表示密码为空,然后一直回车即可
之后会在~/.ssh目录下创建两个文件id_rsa(私钥),id_rsa.pub(公钥)
接下来继续在A上执行 ssh-copy-id -i ~/.ssh/id_rsa.pub <IP>,表示将公钥发给B,发到B服务器的~/.ssh目录下,如果上传私钥成功就可以到B服务器上查看~/.ssh/authorized_keys这个文件是否已创建,然后使用 ssh B服务器的ip地址 免密连接到B服务器,如果能免密连接上则证明配置成功
参考:https://www.cnblogs.com/jager/p/5986563.html
----------------------------------------------------------SSH私钥生成 end------------------------------------------
c、系统SSH私钥配置好后,就可以在各个工程下配置具体上传的位置了,点击具体工程进入-->配置-->构建后操作 选择 send build artifacts over SSH ,弹出工程SSH的配置
配置好后,就是设置权限和用户:
添加用户:https://www.cnblogs.com/kevingrace/p/6019707.html
设置权限:https://blog.whsir.com/post-1785.html
1、安装Role-based Authorization Strategy插件
系统管理-管理插件-可选插件中安装Role-based Authorization Strategy
安装后重启jenkins使其生效
2、在系统管理-Configure Global Security-授权策略-Role-Based Strategy,勾选Role-Based Strategy保存
3、此时在系统管理下,就可以看到Manage and Assign Roles了
4、管理角色
Global roles-Role to add-添加一个kf,只勾选一个Overall-Read
Project roles-Role to add-添加一个Team-kf,Pattern填写kf.*(这里kf.*表示以kf开头的项目)
5、分配角色
Global roles-User/group to add-添加一个已存在的用户,并勾选上kf
Item roles-User/group to add-继续添加一次用户,并勾选上Team-kf,授予kf开头的项目权限
6、创建项目
我这里创建了两个项目
当whsir用户登录时候,只能看到kf-123的项目,并且无法进行系统设置
参考文章:
http://www.jianshu.com/p/c420bca3a855
http://zengestudy.blog.51cto.com/1702365/1782494
jenkins执行脚本时权限不够的解决方法:
yum安装的Jenkins 配置文件默认位置/etc/sysconfig/jenkins
默认jenkins服务以jenkins用户运行,这时在jenkins执行ant脚本时可能会发生没有权限删除目录,覆盖文件等情况。可以让jenkins以root用户运行来解决这个问题。
1.将jenkins账号分别加入到root组中
gpasswd -a jenkins root
2.修改/etc/sysconfig/jenkins文件中,
#user id to be invoked as (otherwise will run as root; not wise!)
JENKINS_USER=root
JENKINS_GROUP=root (这个配置可以不加)
可以修改为root权限运行
重启服务,搞定。