安装Jenkins
获取与安装Jenkins
在基于Debian的发行版(如Ubuntu)上,通过apt
安装Jenkins。
在an apt repository可获得最新版本,较老但稳定的LTS版本在this apt repository这里可获得
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - |
安装这个软件包将会:
- 将Jenkins设置为启动时启动的守护进程。查看
/etc/init.d/jenkins
获取更多细节 - 创建一个’
jenkins
‘用户来运行此服务 - 直接将控制台日志输出到文件
/var/log/jenkins/jenkins.log
。如果您正在解决Jenkins问题,请检查此文件 - /etc/default/jenkins`为启动填充配置参数,例如JENKINS_HOME
- 将Jenkins设置为在端口8080上进行监听。使用浏览器访问此端口以开始配置
安装后设置向导
下载安装并运行Jenkins后,即将开始进入安装向导。
此安装向导会引导您完成几个快速“一次性”步骤来解锁Jenkins, 使用插件对其进行自定义,并创建第一个可以继续访问Jenkins的管理员用户。
解锁Jenkins
当您第一次访问新的Jenkins实例时,系统会要求您使用自动生成的密码对其进行解锁。
浏览到
http://localhost:8080
(或安装时为Jenkins配置的任何端口),并等待 解锁 Jenkins 页面出现。从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。
在 解锁Jenkins 页面上,将此 密码 粘贴到管理员密码字段中,然后单击 继续 。
- 如果您以分离模式在Docker中运行Jenkins,则可以从Docker日志(above) 访问Jenkins控制台日志。
- Jenkins控制台日志显示可以获取密码的位置(在Jenkins主目录中)。 必须在新Jenkins安装中的安装向导中输入此密码才能访问Jenkins的主UI。 如果您在设置向导中跳过了后续的用户创建步骤, 则此密码还可用作默认admininstrator帐户的密码(使用用户名“admin”)
自定义jenkins插件
在 Customize Jenkins 页面内, 您可以安装任何数量的有用插件作为您初始步骤的一部分。
两个选项可以设置:
- 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例.
- 选择要安装的插件 - 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。
这里我安装了 Git plugin 和 Maven Integration plugin 两个插件用于git管理
创建第一个管理员账户
最后,在customizing Jenkins with plugins之后,Jenkins要求您创建第一个管理员用户。 . 出现“ 创建第一个管理员用户 ”页面时, 请在各个字段中指定管理员用户的详细信息,然后单击 保存完成 。 . 当 Jenkins准备好了 出现时,单击开始使用 Jenkins。
Notes: * 这个页面可能显示 Jenkins几乎准备好了! 相反,如果是这样,请单击 重启 。 * 如果该页面在一分钟后不会自动刷新,请使用Web浏览器手动刷新页面。如果需要,请使用您刚刚创建的用户的凭据登录到Jenkins,并准备好开始使用Jenkins!
部署SpringBoot项目
具体操作配置过程参考Jenkins自动构建部署SpringBoot项目;
记录一下使用的脚本
!/bin/bash
source /etc/profile
appName=xxxx-server
ctime=$(date +%Y%m%d%H%M%S)
api_dir=/opt/jenkins/back-end/xxxx/test
backup_dir=/opt/xxxx-server/api-backup
workspace_dir=/var/lib/jenkins/workspace/xxxx-test/xxxx-server/target
echo 'maven构建成功,开始备份~'
cp $api_dir/zherp-server.jar $backup_dir/xxxx-server-$ctime.jar
echo '备份完成,正在拷贝jar包到指定目录~'
cp $workspace_dir/xxxx-server.jar $api_dir/xxxx-server.jar
echo '拷贝完成~'
cd $api_dir
echo '开始部署接口服务~'
BUILD_ID=DONTKILLME
pidFile="$appName.pid"
if [ -f "$pidFile" ]; then
pid=$(cat "$api_dir/$pidFile")
echo "STOP pid:$pid"
kill -9 $pid
rm "$pidFile"
fi
nohup java -jar -Dspring.profiles.active=staging -Dserver.port=58080 -Xms256m -Xmx1024m $api_dir/$appName.jar > /dev/null 2>&1 &
echo $! > "$api_dir/$pidFile"其中
BUILD_ID=DONTKILLME
表示Jenkins启动脚本之后不会自动杀死子进程。