1、rpm卸载
rpm -e jenkins
2、检查是否卸载成功
rpm -ql jenkins
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
链接: https://pan.baidu.com/s/15kG-Jj7ekWTowew5aryyfQ 提取码: e15q
jenkins-2.223-1.1.noarch.rpm
rpm -ivh jenkins-2.223-1.1.noarch.rpm
vi /etc/sysconfig/jenkins
JENKINS_USER=“root”
JENKINS_PORT=“8082”
whereis jenkins
cd /usr/lib/jenkins
sudo service jenkins start
systemctl start jenkins.service
systemctl status jenkins.service
systemctl stop jenkins.service
登录
ip:8082
– 获取密码
cat /var/lib/jenkins/secrets/initialAdminPassword
系统管理-> global(全局) -> setting --> /usr/local/maven/setting/settings-162.xml
-> jdk /usr/local/jdk/jdk1.8.0_271
-> maven /usr/local/maven/soft/apache-maven3.6.1
-> git Default /usr/bin/git
系统管理-> 插件管理 -> 可选插件 -> maven -> Maven Integration -> 直接安装
–> SSH (远程执行脚本)
–> Publish Over SSH (远程部署,远程上传包,jenkins跟服务器不在同一个环境)
-> 系统配置 -> ssh -> 10.100.2.xxx 22
-> 系统配置 -> Publish over SSH -> SSH Servers -> === 目前未用
添加凭据 -> (root) ->返回到凭据 --> 全局 root xxxxx,
新增视图 ==> 列表视图 ==> 新增maven项目
–> 丢弃旧的构建 3 3
–> 源码管理 git http://git.xgit.com.cn/iot-back/iot-server.git
(会构建代码到当前jenkisn所在目录/home/jenkins_home/workspace/iot-server-xxx)
–> Build iot-service/pom.xml -Dmaven.repo.local=/root/,m2/repository -DskipTests=true clean install -P nexus -e -U
=== pom 在工作空间下找
–> Post Steps Execute shell script on remote host using ssh
上面三个大码 shell脚本样例
#! /bin/bash
# 定义变量
API_NAME=xxx-server
IP=1xx
JAR_NAME=xxx-server.jar
# 进入挂载目录
rm -rf /opt/xx/$API_NAME/$JAR_NAME
cp /home/jenkins_home/workspace/$API_NAME-$IP/target/$JAR_NAME /opt/xx/$API_NAME/
cp /home/jenkins_home/workspace/$API_NAME-$IP/Dockerfile /opt/xx/$API_NAME/
#!/usr/bin/expect -f
# Script From Chenkl. Use SCP Push A File To The Target Host. Need Install expect.
# First Param Is Target Host Username@IP.
# Second Param Is Target Host Directory.
# Third Param Is Local Host File.
# Fourth Param Is Target Host Password.
set timeout 30
spawn scp -r /opt/xx/xx-server root@192.xx.x.xxx:/opt/xxx
expect {
"passphrase"
{
send "password\n";
}
"password"
{
send "password\n";
}
"yes/no"
{
send "yes\n";
exp_continue;
}
}
expect eof
#! /bin/bash
# 定义变量
API_NAME=xx-server
API_VERSION=1.0
API_PORT=90xx
IMAGE_NAME=xx-server:1.0
CONTAINER_NAME=$API_NAME
JAR_NAME=xx-server.jar
ALIYUN_IMAGE_NAME=xx-server-1.0.127.001
# 删除Docker容器
docker stop $API_NAME
docker rm -f $API_NAME
sleep 5
# 删除Docker镜像
docker rmi $IMAGE_NAME
# 构建Docker镜像
cd /opt/xgit/$API_NAME/
docker build -t $IMAGE_NAME .
# 根据名称获取镜像名称获取镜像ID
IMAGE_ID=`docker images -q --filter reference=$IMAGE_NAME`
echo $IMAGE_ID
# 推送Docker镜像
docker tag $IMAGE_ID registry.cn-shanghai.aliyuncs.com/xxx/xxx:$ALIYUN_IMAGE_NAME
docker push registry.cn-shanghai.aliyuncs.com/xxx/xxxx:$ALIYUN_IMAGE_NAME
echo "推送Docker镜像成功"
echo registry.cn-shanghai.aliyuncs.com/xxx/xxx:$ALIYUN_IMAGE_NAME
# 启动Docker容器
docker run -d -m 2048M --net host -v /opt/xx:/opt/xx-e PARAMS="--spring.profiles.active=dev --spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 --spring.cloud.nacos.config.server-addr=127.0.0.1:8848 --spring.cloud.nacos.config.file-extension=yaml --spring.cloud.nacos.config.group=DEFAULT_GROUP" -e "SPRING_PROFILES_ACTIVE=dev" --name $CONTAINER_NAME $IMAGE_NAME
dockerFile
FROM registry.cn-shanghai.aliyuncs.com/xxxx/library:jdk-1.8
MAINTAINER zxy@gmail.com
RUN mkdir -p /xxx-server
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai"
#定义时区参数
ENV TZ=Asia/Shanghai
WORKDIR /xxx-server
ENV PARAMS=""
EXPOSE 90xx
EXPOSE 50xx
#设置环境变量
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ADD ./xxx-server.jar ./app.jar
ENTRYPOINT java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50xx -Djava.security.egd=file:/dev/./urandom -jar ./app.jar $PARAMS