Jenkins安装+部署

系统:centos7,以部署spring cloud 项目的jar包为例。

1,准备环境:jdk maven

首先,需要jdk是必须要安装好的。本人使用的linux是centos,直接使用yum安装。

  先找到合适的版本:

yum search java | grep jdk

  然后运行安装:

yum install 合适版本全称

  安装maven(看个人使用的项目构建工具自行选择)

yum install maven

  安装git(看个人项目管理工具自行选择)

yum install git

 

2,安装Jenkins

官网下载安装包:https://jenkins.io/download/ 。 按照自己的系统选择下载。

软件准备:

jenkins-2.7.4-1.1.noarch.rpm      java环境

安装jenkins:

[root@localhost modules]# rpm -ih jenkins-2.7.4-1.1.noarch.rpm

 

jenkins 常用命令:

service jenkins start/stop/restart

chkconfig jenkins on

jenkins的目录结构:

/usr/lib/jenkins/jenkins.war     WAR包 

/etc/sysconfig/jenkins          配置文件

/var/lib/jenkins/               默认的JENKINS_HOME目录

/var/log/jenkins/jenkins.log      Jenkins日志文件

修改jenkins端口:

vim /etc/sysconfig/jenkins

JENKINS_PORT="8888"

防火墙、端口开放设置:

iptables设置:

[root@localhost modules]# vim /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT



firewalld设置:

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

firewall-cmd --zone=public --add-port=8888/udp --permanent

firewall-cmd --reload

默认密码:

[root@localhost secrets]# cat /var/lib/jenkins/secrets/initialAdminPassword

97c675381d524414ba11e61c4f4b7ef0

安装插件:

 

jenkins修改启动用户,解决执行脚本权限问题

1.将jenkins账号分别加入到root组中

gpasswd -a root jenkins



2.修改/etc/sysconfig/jenkins文件中,

# user id to be invoked as (otherwise will run as root; not wise!)

JENKINS_USER=root

JENKINS_GROUP=root

修改为root权限运行



3.重启Jenkins

service Jenkins restart

部署脚本(方案一)

#maven打包
mvn clean package
#杀掉现有进程
sh /root/shutdown.sh cb-app
#备份,更新jar包
today=$(date +%Y-%m-%d-%H%M%S)
mv /root/jar-path/cb-app.jar /root/jar-path/backup/cb-app-$today.jar
mv /var/lib/jenkins/workspace/cb-user/target/cb-app.jar /root/jar-path
#重设buildId,守护进程不被杀死(Jenkinsbuild后会杀死所有子进程)
export BUILD_ID=dontKillMe
#启动
nohup java -jar -Xms256m -Xmx512m -jar /root/jar-path/cb-app.jar >/dev/null 2>&1 &
#必须sleep几秒钟,否则无法启动
sleep 5s

部署脚本(方案二)

注:cb-app为jar包名称。

jenkins-server.sh脚本内容:

#!/bin/sh

if [ ! -n "$JAVA_HOME" ]; then
#JDK安装路径
export JAVA_HOME="/home/jdk1.8.0_144"

fi



#进程名称(jar包名称)

PROCESS_NAME=$1

#进程ID

PID=0

#Jenkins工作空间路径

JENKINS_WORKSPACE="/var/lib/jenkins/workspace"

#jar包放置的目标位置(自定义)

JAR_TAGET_PATH="/root/jar-path/"

#jar备份位置(自定义)

JAR_BACKUP_PATH="/root/jar-path/backup"



#maven打包

cd $JENKINS_WORKSPACE/$PROCESS_NAME

mvn clean package



#杀掉已有进程

javaps=`$JAVA_HOME/bin/jps -l | grep $PROCESS_NAME`

if [ -n "$javaps" ]; then

PID=`echo $javaps | awk '{print $1}'`

else

PID=0

fi

echo 'running PID:'$PID

if [ $PID -ne 0 ]; then

echo -n "Stopping $PROCESS_NAME(PID=$PID)..."

kill -9 $PID

echo "[kill process success-PID:$PID]"

else

echo "$PROCESS_NAME is not running"

fi

echo "===================================================KILL PROCESS SUCCESSFUL==========================================================="



#jar包备份,移动至标的位置

today=$(date +%Y-%m-%d-%H%M%S)

mv $JAR_TAGET_PATH/$PROCESS_NAME.jar $JAR_BACKUP_PATH/$PROCESS_NAME-$today.jar

mv $JENKINS_WORKSPACE/$PROCESS_NAME/target/$PROCESS_NAME.jar $JAR_TAGET_PATH

echo "jar包部署路径:$JAR_TAGET_PATH/$PROCESS_NAME.jar"

echo "jar包备份路径:$JAR_BACKUP_PATH/$PROCESS_NAME-$today.jar"

echo "===================================================MANAGE JAR SUCCESSFUL============================================================="



#启动jar包

export BUILD_ID=dontKillMe

nohup java -jar -Xms256m -Xmx512m -jar $JAR_TAGET_PATH/$PROCESS_NAME.jar >/dev/null 2>&1 &

sleep 5s

echo "$PROCESS_NAME start success!"

echo "===================================================START JAR SUCCESSFUL==============================================================="

 

Docker 是一种容器技术,可以快速部署应用程序并提供强大的隔离性。Jenkins 是一个流行的持续集成和持续交付工具。通过结合使用 Docker 和 Jenkins,可以轻松地实现持续集成和持续交付。以下是在 Docker 中安装部署 Jenkins 的步骤: 1. 安装 Docker 在安装 Jenkins 之前,你需要先安装 Docker。你可以在 Docker 官网上下载适合你系统的 Docker 版本,并按照说明进行安装。 2. 创建一个 Docker 容器 为了在 Docker 中运行 Jenkins,你需要创建一个 Docker 容器。你可以使用以下命令来创建容器: ``` docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts ``` 这个命令会从 Docker Hub 上下载最新版本的 Jenkins 镜像,并创建一个名为 jenkins 的 Docker 容器。这个容器会将 Jenkins 端口映射到主机的 8080 端口,并将 Jenkins 的 JNLP 端口映射到主机的 50000 端口。此外,它还会将 Jenkins 的主目录映射到名为 jenkins_home 的 Docker 卷中。 3. 访问 Jenkins 现在,你可以通过浏览器访问 Jenkins 控制台。在浏览器中输入 http://localhost:8080/,就可以访问 Jenkins 界面了。在第一次访问时,Jenkins 会要求你输入初始管理员密码。你可以使用以下命令来获取这个密码: ``` docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword ``` 4. 安装插件 在访问 Jenkins 后,你需要安装一些插件。可以根据需要选择安装的插件。安装插件的过程很简单,只需要在 Jenkins 控制台中选择“插件管理”菜单,然后选择要安装的插件即可。 5. 配置 Jenkins安装插件之后,你需要配置 Jenkins。你可以创建一个新的 Jenkins 作业并配置它的构建步骤,或者导入一个现有的 Jenkins 作业并执行它。在配置 Jenkins 时,请确保使用正确的 Docker 镜像和容器来运行你的应用程序。 6. 部署应用程序 现在,你可以使用 Jenkins部署你的应用程序了。你可以将你的应用程序打包成 Docker 镜像,并在 Jenkins 中创建一个构建步骤来构建和推送这个镜像。然后,你可以使用 Jenkins 的构建步骤来部署这个镜像到你的服务器或云平台上。 总结 通过结合使用 Docker 和 Jenkins,可以轻松地实现持续集成和持续交付。在 Docker 中安装部署 Jenkins 的过程很简单,只需要几个简单的步骤即可完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值