一、对接过程
步骤一:jenkins安装的环境下
a-需要安装kubernetes plugin, 点击 Manage Jenkins -> Manage Plugins -> Available -> Kubernetes plugin 勾选安装即可。
b-安装插件CloudBees Docker Build and Publish plugin
c-安装插件locale plugin 管理语言或者Localization: Chinese (Simplified)插件
d-安装插件webHook triggrr插件、主要目的后面会用到
e-点击 Manage Jenkins —> Configure System —> (拖到最下方)Add a new cloud —> 选择 Kubernetes,然后填写 Kubernetes 和 Jenkins 配置信息。(对接k8s的情况下)
步骤二:jenkins服务器上生成公钥私钥
ssh-keygen -t rsa -C "jenkins@123.com"
cd /usr/.ssh 进入公私钥目录
cat id_rsa.pub 查看公钥并放在ssh的代码仓库上
cat id_rsa 查看私钥并将之设置jenkins全局凭证
二、问题记录和解决
2.1 问题一 403跨域问题解决
旧版本的可以在全局安全设置中关闭跨域安全保护,新版本可以手动修改,具体方法如下
步骤一:在jenkins服务器上配置
vim /etc/sysconfig/jenkins
修改成 JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
最后重新启动:service jenkins restart
2.2 Failed to connect to repository : Error performing command: git ls-remote -h问题解决
主要是因为git配置的问题,jenkins安装的服务器上没有找到对应的git,因为没有安装,
自己在jenkins页面中安装git发现并没有效果,解决办法,jenkins服务器上安装git方法如下:
yum -y install git
由于我的是centos 7.6默认git安装目录在/usr/bin下,jenkins默认情况下会去访问这个目录去寻找git,
所以此处在jenkins全局工具配置中不需要再配置,重新再次打开jenkins项目配置,查看配置情况,发现这次连接成功。
2.3 Got permission denied while trying to connect to the Docker daemon socket报错问题解决
主要原因是jenkins权限不足的原因,查询服务器所有用户信息会发现有一个jekins的用户,jenkins的用户是没有执行docker的权限的,所以要给它加权限,或者切换用户进行操作。
修改权限的方法 :
usermod -a -G docker jenkins
systemctl restart jenkins # 重新启动jenkins使得生效
三、补充
1、查看jenkins版本
cd /var/lib/jenkins
cat config.xml|grep version
2、查看所有用户信息 筛选后结果
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more