Rocky Linux/ CentOS安装Jenkins,角色权限、分布式节点配置

1、Rocky Linux/ CentOS/Red Hat安装

获取jenkins安装源文件,导入公钥

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2、安装jenkins

yum install jenkins

修改默认端口(默认是 8080 可能会和tomcat冲突,修改成8899)

vi /etc/sysconfig/jenkins

如果不行,修改jenkins.xml

# find / -name jenkins.xml  # 查找jenkins.xml
vi /usr/lib/firewalld/services/jenkins.xml

如果还是不行,修改jenkins.service

vi /usr/lib/systemd/system/jenkins.service

# 修改完后jenkins.service,需要重新加载
systemctl daemon-reload

3、开放防火墙端口

firewall-cmd --zone=public --add-port=8899/tcp --permanent

重启防火墙

firewall-cmd --reload

4、启动Jenkins

4.1、设置开机启动

systemctl enable jenkins

4.2、命令行启动

systemctl start jenkins

4.3、命令行检查运行状态

systemctl status jenkins

4.4、查看初始密码路径

cat /var/lib/jenkins/secrets/initialAdminPassword

参考:https://www.jenkins.io/doc/book/installing/linux/

5、权限角色配置

5.1、Jenkins有三款授权插件:

Matrix Authorization Straegy插件:提供基于矩阵的安全策略
Project-based Matrix Authorization Straegy插件:提供基于项目的矩阵的安全策略
Role-based Authorization Straegy插件:提供基于角色的安全策略

本文使用基于用户角色的权限Role-based Authorization Straegy插件
在可选插件中搜索"Role-based",找到Role-based Authorization Straegy安装
在这里插入图片描述

安装完插件后,在"Manage Jenkins"菜单下会多一个”Manage and Assign Roles“菜单项
在这里插入图片描述

在全局安全配置中

安全域选择”Jenkins 专有用户数据库“
授权策略选择”Role-Based Strategy“

在这里插入图片描述

5.2、角色授权

5.2.1、Manage Roles(管理角色)

全局角色
默认有个 admin 的全局角色,拥有全部权限;新建的角色,至少要分配Overrall->read权限,否则登录后提示没有权限访问
在这里插入图片描述

项目角色
可以按项目、视图等名称进行正则匹配。如角色role_dev可以,正则匹配dev_.*,可管理所有以“dev_”名称开头的项目或视图。
在这里插入图片描述

节点角色
与项目角色类似,但是按节点名称来匹配权限。
在这里插入图片描述

5.2.2、Assign Roles(分配角色)

在这里插入图片描述
在这里插入图片描述

6、增加agent

Jenkins采用的是"master+agent"架构,master负责提供界面、处理HTTP请求及管理构建环境;构建的执行则由Jenkins agent负责

6.1 通过JNLP协议增加agent

在全局安全配置中,配置Agent连接端口和协议

指定端口:9812
代理协议:Java Web Start Agent Protocol/4 (TLS 加密)

在这里插入图片描述

进入系统管理->节点管理->新建节点,
在这里插入图片描述
设置

Number of executors:1
远程工作目录:/home/jenkins
启动方式:通过Java Web启动代理

在这里插入图片描述
在这里插入图片描述

ssh登录到Jenkins agent服务器,进入/home/jenkins

# 下载agent.jar文件(JNLP协议的客户端)
wget http://192.168.245.139:8899/jnlpJars/agent.jar  #

java -jar agent.jar -jnlpUrl http://192.168.245.139:8899/computer/node%5Fs3/jenkins-agent.jnlp -secret 12153ae2170d68f77410daa10ad464bf34f989499532d46fdd01f467438a602c -workDir "/home/jenkins"

6.2 通过swarm插件增加agent

6.2.1 安装插件swarm

在这里插入图片描述

6.2.2 安装swarm-client

下载地址:https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/

ssh登录到Jenkins agent服务器,命令行下运行

wget https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/3.34/swarm-client-3.34.jar
java -jar swarm-client-3.34.jar -url http://192.168.245.139:8899/ -username penngo -password 123456 -name swarm-node

在这里插入图片描述

7、部署到不同项目ssh免密登录

7.1 修改用户Jenkins的访问权限

在Jenkins流水线任务中,默认会使用名为Jenkins的用户,执行时会报下 “Host key verification failed.” 错误

scp target/app-1.0.0-SNAPSHOT.jar root@192.168.245.137:/data/www/
Host key verification failed.
lost connection

修改/etc/passwd配置文件

vi /etc/passwd

把
jenkins:x:995:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false
修改成
jenkins:x:995:993:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

7.2 免密登录远程机

当前服务器192.168.245.139,部署到192.168.245.137
139服务器执行ssh-keygen命令,生成密码

su jenkins    # 切换到jenkins用户
# 执行后会生成两个文件:id_dsa、id_dsa.pub文件,前者是私钥,后者是公钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp .ssh/id_dsa.pub root@192.168.245.137:/root

137服务器执行命令

mkdir .ssh
chmod 700 .ssh
# 将目录权限改为700该目录的权限,必须是700才有效
cat id_dsa.pub >> .ssh/authorized_keys
# 修改文件权限为600,该文件有规定如果属组其他人出现可写则文件就不会生效
chmod 600 .ssh/authorized_keys 

如果ssh远程主机报错:“ssh_exchange_identification: read: Connection reset by peer”,解决办法
在要连接的主机137上修改配置文件

vim /etc/hosts.allow

# /etc/hosts.allow文件允许指定ip主机连接本机
sshd:192.168.245.139:allow  

systemctl restart sshd

139 ssh连接137
ssh -v root@192.168.245.137 -p 22

查看ssh端口

netstat -anp |grep 22     // 查看端口占用
netstat -anp |grep ssh    // 查看进程占用的端口
ps -ef|grep ssh|grep -v grep|awk '{print $2}'|xargs kill -9   // 删掉ssh进程

修改ssh配置

vi /etc/ssh/sshd_config

8、关闭Jenkins自动清理工作区

1、Script Console输入hudson.model.WorkspaceCleanupThread.disabled = true并运行
2、在配置文件里面把这个参数添加到启动命令中。

-Dhudson.model.WorkspaceCleanupThread.disabled=true
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Rocky是一个基于Red Hat Enterprise Linux (RHEL)的Linux发行版,而Jenkins是一个开源的持续集成和交付工具。下面是在Rocky安装Jenkins的步骤: 1. 首先,确保你已经登录到Rocky服务器,并且具有管理员权限。 2. 打开终端,更新系统软件包列表: ``` sudo yum update ``` 3. 安装Java Development Kit (JDK): ``` sudo yum install java-1.8.0-openjdk-devel ``` 4. 添加Jenkins软件包的存储库。创建一个名为`jenkins.repo`的文件,并将以下内容复制到文件: ``` [jenkins] name=Jenkins baseurl=https://pkg.jenkins.io/redhat-stable gpgcheck=1 gpgkey=https://pkg.jenkins.io/redhat-stable/jenkins.io.key enabled=1 ``` 5. 将`jenkins.repo`文件移动到`/etc/yum.repos.d/`目录下: ``` sudo mv jenkins.repo /etc/yum.repos.d/ ``` 6. 安装Jenkins: ``` sudo yum install jenkins ``` 7. 启动Jenkins服务并设置开机自启动: ``` sudo systemctl start jenkins sudo systemctl enable jenkins ``` 8. 打开防火墙端口以允许Jenkins流量通过: ``` sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload ``` 9. 现在,你可以通过在Web浏览器输入`http://your_server_ip:8080`来访问Jenkins的Web界面。在首次访问时,你需要提供一个初始管理员密码,该密码可以在服务器上的`/var/lib/jenkins/secrets/initialAdminPassword`文件找到。 10. 完成初始设置后,你可以按照Jenkins的指导进行进一步的配置和使用。 希望以上步骤对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

penngo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值