jenkins 安装和使用中的几个坑

jenkins 安装和使用中的几个坑

一、docker部署时,权限问题

docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins/jenkins:lts
  • -privileged=true 让容器有root权限,方便进入容器操作
  • -p 9090:8080 jenkins的web访问端口9090
  • -v /home/jenkins:/var/jenkins_home 容器/var/jenkins_home路径映射到宿主机/home/jenkins

二、首次输入密码后卡在空白页不加载

这个是因为更新地址是国外的被墙了,需修改成国内的地址

在/home/jenkins目录找到文件 hudson.model.UpdateCenter.xml

先查看文件内容

[root@VM_0_2_centos jenkins]# cat hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>

用vi编辑文件,修改
https://updates.jenkins.io/update-center.jsonhttp://mirror.xmission.com/jenkins/updates/update-center.json
修改之后:wq保存退出
修改完成后重启下jenkins,在浏览器url地址后面加上 restart 重启jenkins ,如 http://ip:9090/restart

三、Jenkins插件下载速度慢、安装失败

先进入 http://ip:9090/pluginManager/advanced插件管理页,原来的地址是https://updates.jenkins.io/update-center.json
改成:http://mirror.esuni.jp/jenkins/updates/update-center.json

image.png

修改default.json上面的地址改了之后,插件下载还是会很慢,

cd 到updates目录,找到default.json文件

[root@VM_0_2_centos jenkins]# cd updates/
[root@VM_0_2_centos updates]# ll
total 2068
-rw-r--r-- 1 1000 1000 1824566 Dec 29 16:20 default.json
-rw-r--r-- 1 1000 1000    5350 Dec 29 16:20 hudson.tasks.Maven.MavenInstaller
-rw-r--r-- 1 1000 1000  279724 Dec 29 16:47 hudson.tools.JDKInstaller
[root@VM_0_2_centos updates]# vi default.json

使用vi编辑文件,如下,替换所有插件下载的url

:1,$s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g

进入vi先输入:然后再粘贴上边的:后边的命令,注意不要写两个冒号!
修改完成保存退出:wq

重启Jenkins.

四、使用npm时,不能创建文件

image.png

npm install node-sass --unsafe-perm=true --allow-root

原因:
npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。
为了避免这种情况,要么按照 npm 的规矩来,专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即是 root。

五、更改jenkins的根目录

cat /etc/profile
export JENKINS_HOME=/usr/local/apps/jenkins/home

生效命令:

source /etc/profile

六、jenkins配置ssh

进入系统管理的系统配置
image.png
选择pushish over SSH

image.png

构建任务是选择Send build artifacts over SSH
image.png

注意:这里的源路径是按本项目的路径为根目录

参考:https://www.cnblogs.com/yoyoketang/p/12115569.html

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.fengpt.cn/archives/jenkins安装和使用中的几个坑