Jenkins有多种安装方式,下面通过rpm进行安装
前提:Java 的jdk已安装

一、下载Jenkins的rpm包
下载地址:https://jenkins.io/zh/download/
或者https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/

二、安装rpm包及配置
1、安装

rpm -ivh jenkins-2.319.1-1.1.noarch.rpm

2、配置
vim /etc/sysconfig/jenkins 添加端口号
JENKINS_PORT=“8080”
vi /etc/init.d/jenkins 编辑Jenkins配置文件,添加jdk的Java路径
在这里插入图片描述

3、启动

systemctl daemon-reload 
systemctl start jenkins

报错Job for jenkins.service failed because the control process exited with error code. See “systemctl status jenkins.service” and “journalctl -xe” for details.

systemctl status jenkins.service 

没有daemonize 这个命令, 安装好daemonize,重新加载配置,再启动

yum install -y daemonize

启动又报错查看具体报错原因,是jdk路径填错了,再改下在启动就可以了
在这里插入图片描述
安装失败卸载重装:
1、rpm卸载
rpm -e jenkins

2、检查是否卸载成功
rpm -ql jenkins

3、彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf

其他问题:装了docker网段冲突;
jdk路径配置问题;
DNS解析问题;
网络安全组问题;

配置脚本pipeline script:

node {
   def mvnHome
   stage('git clone') { // for display purposes
      // Get some code from a GitHub repository
      echo "===============git clone project==============="
      git branch: 'master', credentialsId: 'gitlab_secret', url: 'XXX.git'
   }
    stage('Build') {
      // Run the maven build
     echo "===============build==============="
     sh "mvn -U clean package -DskipTests"
   }
   stage('deploy') {
       echo "===============deploy==============="
       sh "pwd"
       sh "/data/gcm/shells/services/redeploy.sh gcm"
   }
}

进入服务器执行redeploy.sh:

#projectName=$1
#server=$2
echo step 1:remove old file
rm -rf  /data/gcm/installed/gcm/workspace/*.jar
echo step 2:scp jar
scp /root/.jenkins/workspace/gcm/target/*.jar  /data/gcm/installed/gcm/workspace
echo step 3:deploy
cd /data/gcm/installed/gcm/workspace
./reploy.sh
#exit

执行reploy.sh:

projectName=gcm

java_pid=`ps -ef |grep "gcm-0.0.1" | grep -v "grep" |awk '{print $2}'`

echo "pid = ${java_pid}"

if [ ! $java_pid ]; then

echo shutdown

else

kill -9 $java_pid

echo kill $java_pid

fi
rm -rf /data/gcm/installed/gcm/logs/*.*
rm -rf /data/gcm/installed/gcm/deploy/ROOT*

echo startup

cd /data/gcm/installed/gcm/workspace

#sleep 10s
#因为Jenkins启动项目起不来,单独运行shell脚本又可以,所以本地跳一下
ssh -t -t root@localhost << remotessh

source /etc/profile
cd /data/gcm/installed/gcm/workspace
BUILD_ID=dontKillMe nohup java -jar gcm-0.0.1-SNAPSHOT.jar > nohup.out 2>&1 &

# 根据情况调整
sleep  3

result=$(ps -aux | grep gcm-0.0.1 | wc -l)
# 使用$(xxx)得到指令执行的结果,ps aux是显示所有进程和其状态。
# 变量定义时等号两边不要有空格

echo $result
# if空格[[空格$result空格-gt空格1]];then
if [[ $result -gt 1 ]];then
        echo "start sucessed"
else
        echo "started error"
fi

exit
remotessh
 ssh-keygen
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

使用密钥文件。

这里假设主机A(192.168.100.3)用来获到主机B(192.168.100.4)的文件。
 
在主机A上执行如下命令来生成配对密钥:
ssh-keygen -t rsa
 
遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比如root存放在:
 
/root/.ssh/id_rsa.pub
 
将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys,
到主机A中执行命令和主机B建立信任,例(假设主机B的IP为:192.168.100.4):
 
scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys
 
下面就可以用scp、ssh命令不需要密码来获取主机B的文件了
ssh 192.168.100.4 回车就不需要密码了。
 
注:其实id_rsa.pub内容添加到对方机器的authorized_keys中就行了
 
转载:http://blog.csdn.net/chris_playnow/article/details/22579139
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐