一、链接
git安装:https://blog.csdn.net/martinlinux/article/details/120538913 java安装:https://blog.csdn.net/martinlinux/article/details/115161249 maven安装:https://blog.csdn.net/martinlinux/article/details/120539512 Jenkins下载链接:https://www.jenkins.io/zh/download/ Jenkins 2.303.1 可用 Jenkins war包下载链接:https://get.jenkins.io/war-stable/ wget http://mirrors.jenkins.io/war-stable/2.303.1/jenkins.war 插件下载链接:https://plugins.jenkins.io/ 中文文档:https://www.w3cschool.cn/jenkins/jenkins-ayl128nb.html
二、Jenkins离线安装
2.1 war包安装
2.1.1 安装
- 启动
提前下载好Jenkins war包
nohup /usr/local/java/bin/java -jar /opt/jenkins/jenkins.war --httpPort=9090 > /opt/jenkins/jenkins.log 2>&1 &
- 查看密码
cat /root/.jenkins/secrets/initialAdminPassword
d5f2cb8cf80c4eb29107461881d86e6c
- 下载插件 忘记截图了
- 创建用户和密码
- 配置URL
2.1.2 更改目录
更改Jenkins目录只需要在/etc/profile配置环境变量
cat /etc/profile
export JENKINS_HOME=/opt/jenkins/data
source /etc/profile
如果要进行迁移,可以将之前的.jenkins目录该到新路径,然后重新启动Jenkins就可以了
2.1.3 编写Jenkins启动、停止脚本
#!/bin/bash
export JENKINS_HOME=/opt/jenkins/data
export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
export PATH=$PATH:/usr/local/git/bin
export MAVEN_HOME=/usr/local/maven3.8
export PATH=$PATH:$MAVEN_HOME/bin
JenkinsData=/opt/jenkins
JenkinsPort=9090
JenkinsWar=jenkins.war
JenkinsLog=$JenkinsData/log
JenkinsBin=$JenkinsData/bin
pid=`ps -ef | grep jenkins | grep -v grep | awk '{print $2}'`
pid_num=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
case $1 in
"start")
if [ $pid_num -gt 0 ];then
echo 'jenkins is running...'
else
[ -d $JENKINS_HOME ] || mkdir -p $JENKINS_HOME
[ -d $JenkinsBin ] || mkdir -p $JenkinsBin
[ -d $JenkinsLog ] || mkdir -p $JenkinsLog
nohup $JAVA_HOME/bin/java -jar $JenkinsData/$JenkinsWar --httpPort=$JenkinsPort > $JenkinsLog/jenkins.log 2>&1 &
[ $? -eq 0 ] && echo '$pid...jenkins is started..'
fi
;;
"stop")
kill -9 $pid 2>&1 > /dev/null && echo 'jenkins is stop..'
;;
*)
echo "运行该脚本,请务必传入参数:start 或 stop"
esac
2.1.4 创建jenkins.service文件
cd /lib/systemd/system
vim jenkins.service
[Unit]
Description=Jenkins
After=network.target
[Service]
Type=forking
ExecStart=/opt/jenkins/bin/jenkins.sh start
ExecReload=
ExecStop=/opt/jenkins/bin/jenkins.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2.1.5 刷新服务配置
systemctl daemon-reload
2.1.6 启动Jenkins服务
systemctl start jenkins.service
systemctl enable jenkins.service
三、离线插件安装
插件下载链接:https://plugins.jenkins.io/ 示例安装Ansible插件
3.1 方法一
3.1.1 搜索Ansible插件
3.1.2 下载Ansible插件
下载之后的文件名:ansible.hpi
3.1.3 安装
回到jenkins页面,进入 [Manage Jenkins] -> [Manage Plugins] -> [高级] -> [上传插件]
3.2 方法二
先在有外网环境的机器上安装jenkins,在线安装需要的插件后,将.jenkins/plugins目录覆盖,重启即可完成插件安装。
四、安装节点
4.1 Linux节点
4.1.1 配置节点环境
安装java环境
https://blog.csdn.net/martinlinux/article/details/115161249
4.1.2web页面配置节点
- Manage Jenkins(系统管理)->节点管理->New Node(新建节点)->编辑节点名称,选择固定节点即可,即可编辑节点属性
- 配置节点
2.1 (1). Name(名字) (2). Description(描述) (3). Number of executors(并发构建数)
Jenkins 可以在此节点上执行并发构建的最大数目。 在开始的时候,使用节点的 CPU 个数作为该值是一个不错的选择。一个较大的值将会使每个构建花费更多的时间, 但是却有可能增加系统整体的吞吐量。例如,一个构建可能是 CPU 密集型的,而在同一时刻另一个构建可能是 I/O 密集型的,因此,后者可以有效的利用空闲的 I/O。 代理节点(非 master 节点)必须至少拥有一个执行器。如需暂时阻止其执行构建,请使用其页面右上方的临时断开此节点按钮。 对于 master 节点,设置执行器的数目为零将会阻止构建在其上执行。注意:master 节点将总是能够执行轻量级的任务,包括顶级的流水线任务。
- 2 Remote root directory(远程目录)
代理需要有一个专用于 Jenkins 的目录。在代理上指定此目录的路径。最好使用绝对路径,例如/var/jenkins或c:\jenkins。这应该是代理机器的本地路径。无需从主服务器上看到此路径。 代理不维护重要数据;所有作业配置、构建日志和工件都存储在主服务器上,因此可以使用临时目录作为代理根目录。 但是,例如,通过为代理提供在机器重新启动后不会删除的目录,代理可以缓存工具安装等数据或构建工作区。这可以防止不必要的工具下载,或在重新启动后再次开始在此代理上运行构建时再次检出源代码。 如果使用相对路径,例如./jenkins-agent,则该路径将相对于Launch 方法提供的工作目录。 对于 Jenkins 控制启动代理进程的启动器,例如 SSH,当前工作目录通常是一致的,例如用户的主目录。 对于 Jenkins 无法控制启动代理进程的启动器,例如从命令行启动的入站代理,当前工作目录可能会在代理启动之间发生变化,并且使用相对路径可能会出现问题。 对入站启动器使用相对路径时遇到的主要问题是代理计算机上陈旧的工作区和工具安装的激增。这可能会导致磁盘空间问题。
- 3 Labels(标签)
标签用来对多节点分组,标记之间用空格分隔.例如’refression java6’将会把一个节点标记上’regression’和’java6’。 举例来说,如果你有多个Windows系统的构建节点并且你的Job也需要在Windows系统上运行,那么你可以配置所有的Windows系统节点都标记为’windows’, 然后把Job也标记为’windows’.这样的话你的Job就不会运行在除了Windows节点以外的其它节点之上了。
2.4 Usage(用法)
控制Jenkins如何在这台机器上安排构建. 尽可能的使用这个节点 这是默认和常用的设置. 在这种模式下,Jenkins会尽可能的使用这个节点.任何时候如果一个构建能使用这个节点构建,那么Jenkins就会使用它. 只允许运行绑定到这台机器的Job 这种模式下,Jenkins只会构建哪些分配到这台机器的Job. 这允许一个节点专门保留给某种类型的Job.例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建, 一个实行者不会阻止其它构建,其它构建会在另外的节点运行.
2.5 Launch method(启动代理)
控制 Jenkins 如何启动此代理。 (1)通过在控制器上执行命令启动代理 通过让 Jenkins 执行来自控制器的命令来启动代理。当控制器能够在另一台机器上远程执行进程时使用此选项,例如通过 SSH 或 RSH。 (2)通过 SSH 启动代理(Launch slave agent via SSH) (Linux使用最好) 通过通过安全 SSH 连接发送命令来启动代理。代理需要可以从 Jenkins 控制器访问,并且您必须提供一个可以登录目标机器的帐户。不需要 root 权限。 (3)通过Java Web启动代理 允许代理在准备好时连接到 Jenkins 主服务器。(Windows使用最好) 在一种模式中,使用Java Web Start。在这种情况下,必须在代理机器上打开一个 JNLP 文件,它将与 Jenkins master 建立 TCP 连接。(其他启动方法使用 JNLP 文件但不使用 Java Web Start,或者根本不使用 JNLP 文件。) 这意味着不需要从主服务器访问代理;代理只需要能够到达主人。如果您通过配置全局安全性页面启用了安全性,您可以自定义 Jenkins 主服务器侦听传入代理连接的端口。 默认情况下,代理将启动 GUI,但也可以在没有 GUI 的情况下运行代理,例如作为 Windows 服务。 (2.1)本人选择的Launch slave agent via SSH 选项 配置: (1)Host (2)Credentials(证书)填写登陆这个ip服务器的帐户和密码,凭据处管理 (3)Host Key Verification Strategy(主机密钥验证策略) (3.1)Non verifying Verifycation Strategy (非验证验证策略) :对远程主机提供的 SSH 密钥执行任何验证,无论它们提供什么密钥,都允许所有连接。 (3.2)Known hosts file Verification Strategy (已知主机文件验证策略):检查 Jenkins 在其下执行的用户的 known_hosts 文件 (~/.ssh/known_hosts),以查看是否存在与当前连接匹配的条目。 此方法不会对已知主机文件进行任何更新,而是将该文件用作只读源,并期望对 Jenkins 控制器上的相应用户帐户具有适当访问权限的人员根据需要更新该文件,可能使用以下命令启动连接并适当更新文件。ssh hostname (3.3)Manually provided key Verification Strategy (手动提供的密钥验证策略):检查远程主机提供的密钥是否与配置此连接的用户设置的密钥匹配。 (3.4)Manually trusted key Verification Strategy(手动可信密钥验证策略):检查远程密钥是否与当前标记为该主机受信任的密钥匹配。 根据配置,第一次连接将自动信任该密钥,或者将要求授权用户批准该密钥。授权用户需要批准远程主机提供的任何新密钥。
2.6 Availability(可用性) 尽量保持代理在线
以下是我的web页面配置
|