jenkins自动化部署

1,安装适合版本的maven 下载地址:http://mirror.bit.edu.cn/apache/maven/
2,安装jdk7以上版本 配置好环境变量
3,下载jenkins 下载地址:http://mirrors.jenkins.io/war/2.83/jenkins.war
4,运行jenkins : java -jar jenkins.war &
5,控制台会输出一个进入jenkins的口令 注意复制
INFO:

    *************************************************************
    *************************************************************
    *************************************************************

    Jenkins initial setup is required. An admin user has been created and a password generated.
    Please use the following password to proceed to installation:

    0cca37389e6540c08ce6e4c96f46da0f

    This may also be found at: /root/.jenkins/secrets/initialAdminPassword

    *************************************************************
    *************************************************************
    *************************************************************

6,安装插件
7,配置用户名和密码
8,系统管理 > 全局工具配置 jdk路径
9,插件安装:系统管理 > 插件管理 > 可选插件,勾选需要安装的插件,点击直接安装或者下载重启后安装 这里我们安装通用的插件Git plugin和Maven Integration plugin,publish over SSH、SSH插件
10,配置本地jdk和本地maven
11,配置ssh免密登陆 ssh的配置可使用密钥,也可以使用密码,这里我们使用密钥来配置,在配置之前先配置好jenkins服务器和应用服务器的密钥认证 jenkins服务器上生成密钥对,使用ssh-keygen -t rsa命令

将jenkins服务器的公钥id_rsa.pub中的内容复制到应用服务器 的~/.ssh/下的 authorized_keys文件
ssh-copy-id -i id_rsa.pub 192.168.0.xx
chmod 644 authorized_keys
在应用服务器上重启ssh服务,service sshd restart现在jenkins服务器可免密码直接登陆应用服务器
之后在用ssh B尝试能否免密登录B服务器,如果还是提示需要输入密码,则有以下原因
a. 非root账户可能不支持ssh公钥认证(看服务器是否有限制)
b. 传过来的公钥文件权限不够,可以给这个文件授权下 chmod 644 authorized_keys
c. 使用root账户执行ssh-copy-id -i ~/.ssh/id_rsa.pub 这个指令的时候如果需要输入密码则要配置sshd_config
vi /etc/ssh/sshd_config
修改完后要重启sshd服务

service sshd restart
最后,如果可以SSH IP 免密登录成功说明SSH公钥认证成功。

12,系统管理 > 系统设置选择 Publish over SSH
Passphrase 不用设置
Path to key 写上生成的ssh路径:/root/.ssh/id_rsa
下面的SSH Servers是重点
Name 随意起名代表这个服务,待会要根据它来选则
Hostname 配置应用服务器的地址
Username 配置linux登陆用户名
Remote Directory 不填

13,部署项目
首页点击新建:输入项目名称
下方选择构建一个maven项目,点击确定。
勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个
源码管理,选择git,配置git相关信息,点击add可以输入git的账户和密码
git地址:123@321.com@HEAD,@HEAD意思取最新版本
构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来
在Build中输入打包前的mvn命令,如:
clean install -Dmaven.test.skip=true -Ptest 意思是:排除测试的包内容,使用后缀为test的配置文件。
Post Steps 选择 Run only if build succeeds
点击Add post-build step,选择 Send files or execute commands over SSH
Name选择上面配置的Push SSH
Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名
Remove prefix:target/
Remote directory:Jenkins-in/ 代码应用服务器的目录地址,
Exec command:Jenkins-in/xxx.sh 应用服务器对应的脚本。
要在应用服务器创建文件夹:Jenkins-in,在文件夹中复制一下脚本内容:xxx.sh

DATE=$(date +%Y%m%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/java/jdk1.8.0_131
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/root/xxx
JARFILE=xxx-0.0.1-SNAPSHOT.jar

if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi
cd $DIR

ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /root/Jenkins-in/$JARFILE .

java -jar $JARFILE > out.log &
if [ $? = 0 ];then
        sleep 30
        tail -n 50 out.log
fi

cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

这段脚本的意思,就是kill旧项目,删除旧项目,启动新项目,备份老项目。
(内容参考网上的教程)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阳十三

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

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

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

打赏作者

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

抵扣说明:

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

余额充值