引言
jenkins安装大家可以按照jenkin官网的步骤直接执行就可以,如下图:
不过由于我想使用jdk8,因此采用自己下载安装包的方式进行
首先创建jenkins安装目录:
mkdir -p /usr/local/jenkins
然后下载安装包:
wget https://get.jenkins.io/war-stable/2.332.2/jenkins.war
如果下载慢的话,可以采用比如迅雷之类的下载工具,然后使用ftp工具上传到安装目录下
紧接着我们创建一个启动脚本
vi start-jenkins.sh
并将以下内容粘贴到该文件中
#!/bin/sh
#
#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用
#也可以作为启动java程序的独立脚本来使用。
#
#Author: tudaxia.com, Date: 2011/6/7
#
#警告!!!:该脚本stop部分使用系统kill命令来强制终止指定的java程序进程。
#在杀死进程前,未作任何条件检查。在某些情况下,如程序正在进行文件或数据库写操作,
#可能会造成数据丢失或数据不完整。如果必须要考虑到这类情况,则需要改写此脚本,
#增加在执行kill命令前的一系列检查。
#
###################################
# 以下这些注释设置可以被chkconfig命令读取
# chkconfig: - 99 50
# description: Java程序启动脚本
# processname: test
# config: 如果需要的话,可以配置
###################################
#
###################################
#环境变量及程序执行参数
#需要根据实际环境以及Java程序名称来修改这些参数
###################################
#JDK所在路径
#JAVA_HOME="/usr/local/java/jdk1.8.0_281"#执行程序启动所使用的系统用户,考虑到安全,推荐不使用root帐号
#RUNNING_USER=bmsp#Java程序所在的目录(classes的上一级目录)
APP_HOME=/usr/local/jenkins#需要启动的Java主程序(main方法类)
APP_MAINCLASS=jenkins.war#拼凑完整的classpath参数,包括指定lib目录下所有的jar
CLASSPATH=$APP_HOME/classes
for i in "$APP_HOME"/lib/*.jar; do CLASSPATH="$CLASSPATH":"$i"
done #java虚拟机启动参数
JAVA_OPTS="-ms1024m -mx1024m -Xmn256m -Djava.awt.headless=true -XX:MaxMetaspaceSize=512m -Djava.security.egd=file:/dev/../dev/urandom"###################################
#(函数)判断程序是否已启动
#
#说明:
#使用JDK自带的JPS命令及grep命令组合,准确查找pid
#jps 加 l 参数,表示显示java的完整包路径
#使用awk,分割出pid ($1部分),及Java程序名称($2部分)
###################################
#初始化psid变量(全局)
psid=0 checkpid() { javaps=`jps -l | grep $APP_MAINCLASS`if [ -n "$javaps" ]; then psid=`echo $javaps | awk '{print $1}'` else psid=0 fi
} ###################################
#(函数)启动程序
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示程序已启动
#3. 如果程序没有被启动,则执行启动命令行
#4. 启动命令执行后,再次调用checkpid函数
#5. 如果步骤4的结果能够确认程序的pid,则打印[OK],否则打印[Failed]
#注意:echo -n 表示打印字符后,不换行
#注意: "nohup 某命令 >/dev/null 2>&1 &" 的用法
###################################
start() { checkpid if [ $psid -ne 0 ]; then echo "================================" echo "warn: $APP_MAINCLASS already started! (pid=$psid)" echo "================================" else echo -n "Starting $APP_MAINCLASS ..." nohup java $JAVA_OPTS -jar $APP_MAINCLASS --httpPort=8090 &#su - $RUNNING_USER -c "$JAVA_CMD" checkpid if [ $psid -ne 0 ]; then echo "(pid=$psid) [OK]" else echo "[Failed]" fi fi
} ###################################
#(函数)停止程序
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行
#3. 使用kill -9 pid命令进行强制杀死进程
#4. 执行kill命令行紧接其后,马上查看上一句命令的返回值: $?
#5. 如果步骤4的结果$?等于0,则打印[OK],否则打印[Failed]
#6. 为了防止java程序被启动多次,这里增加反复检查进程,反复杀死的处理(递归调用stop)。
#注意:echo -n 表示打印字符后,不换行
#注意: 在shell编程中,"$?" 表示上一句命令或者一个函数的返回值
###################################
stop() { checkpid if [ $psid -ne 0 ]; then echo -n "Stopping $APP_MAINCLASS ...(pid=$psid) " # su - $RUNNING_USER -c "kill -9 $psid" kill -9 $psidif [ $? -eq 0 ]; then echo "[OK]" else echo "[Failed]" fi checkpid if [ $psid -ne 0 ]; then stop fi else echo "================================" echo "warn: $APP_MAINCLASS is not running" echo "================================" fi
} ###################################
#(函数)检查程序运行状态
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示正在运行并表示出pid
#3. 否则,提示程序未运行
###################################
status() { checkpid if [ $psid -ne 0 ]; then echo "$APP_MAINCLASS is running! (pid=$psid)" else echo "$APP_MAINCLASS is not running" fi
} ###################################
#(函数)打印系统环境参数
###################################
info() { echo "System Information:" echo "****************************" echo `head -n 1 /etc/issue` echo `uname -a` echo echo `java -version`echo echo "APP_HOME=$APP_HOME" echo "APP_MAINCLASS=$APP_MAINCLASS" echo "****************************"
} ###################################
#读取脚本的第一个参数($1),进行判断
#参数取值范围:{start|stop|restart|status|info}
#如参数不在指定范围之内,则打印帮助信息
###################################
case "$1" in 'start') start ;; 'stop') stop ;; 'restart') stop start ;; 'status') status ;; 'info') info ;; *) echo "Usage: $0 {start|stop|restart|status|info}" exit 1
esac
exit 0
记得要配置好jdk的环境变量,不然回启动失败
给启动脚本执行权限,并启动jenkins
chmod +x start-jenkins.sh
./start-jenkins.sh start
查看启动日志,看到初始化管理员密码数据即表示启动成功,copy对应的密码,通过ip+port方式进行访问,上面脚本中指定的端口为8090,我们在启动日志中也能够看到启动的端口为8090
当然,也可以通过日志文件查看
cat /root/.jenkins/secrets/initialAdminPassword
打开jenkins页面地址:localhost:8090
将刚查询到密码输入其中,即可解锁jenkins
下一篇文章介绍jenkins的配置