Jenkins-shell脚本-文件的拷贝
Jenkins简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins特点:
持续集成和持续交付
作为一个可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器,或者变成任何项目的持续交付中心。
简易安装
Jenkins 是一个基于 Java 的独立程序,可以立即运行,包含 Windows、Mac OS X 和其他类 Unix 操作系统。
配置简单
Jenkins 可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。
插件
通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。
扩展
Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。
分布式
Jenkins 可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建、测试和部署。
Jenkins实战-shell脚本之文件的拷贝
有个场景就是:war包的生成与部署分别为两个job,而且所有的war包统一在某个服务器上;
这样就涉及到了war包的拷贝,今天就来分享下拷贝的shell脚本:
下面的几个字段及其相关路径名字换成实际的就行
username:用户名
pwd:密码
ip:ip地址
war-job-name :war包的job
xx.war:war包的名字
expect可以通过 yum来安装
!/usr/bin/expectspawn sudo scp -r username@ip:/data/workspace/war-job-name/target/xx.war /data/jenkinsexpect {"(yes/no)?" {send "yes\n"expect "*assword:" {set timeout -1;send "pwd\n"}}"*assword:" {set timeout -1;send "pwd\n"}}expect eof
-
上一篇
浏览器http://10.10.22.91:10000
等待初始化完成解锁Jenkins
获取初始密码[root@localhost app] cat jenkins/jenkins_home/secrets/initialAdminPassword安装推荐插件
创建用户并配置实例
安装Docker Pipleline插件
在 系统设置->Configure Global Security,不验证ssh可用性
Gitee ssh公匙配置与测试项目提交
1、进入docker容器创建rsa[root@localhost app] docker exec -it jenkins bashroot@c781568bbe98:/ ssh-keygen -t rsa -C senfel@sina.cn后续步骤全部enter
查看公匙并配置在gitee sshroot@c781568bbe98:/ cat /root/.ssh/id_rsa.pub
查看私匙并记住后面jenkins创建流水线配置凭证root@c781568bbe98:/ cat /root/.ssh/id_rsa
2、准备一个项目, 在根目录下创建两个文件Dockerfile、 Jenkinsfile
Dockerfile
FROM openjdk:8-jre-alpine将当前目录下的jar包复制到docker容器的/目录下COPY target/*.jar /app.jar运行过程中创建一个xx.jar文件RUN touch /app.jar;ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"ENV PARAMS=""声明服务运行在8080端口EXPOSE 8080指定docker容器启动时运行jar包ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /app.jar $PARAMS" ]
Jenkinsfile
pipeline{agent anyenvironment {WS = "${WORKSPACE}"IMAGE_NAME = "demo"}//定义流水线的加工流程stages {//流水线的所有阶段stage(step1:env check){steps {sh pwd && ls -alhsh printenvsh docker versionsh java -versionsh git --version}}stage(step2:compile){agent {docker {image maven:3-alpineargs -v maven-repository:/root/.m2}}steps {sh pwd && ls -alhsh mvn -vsh cd ${WS} && mvn clean package -s "/var/jenkins_home/appconfig/maven/settings.xml" -Dmaven.test.skip=true}}stage(step3:package){steps {sh pwd && ls -alhsh docker build -t ${IMAGE_NAME} .}}stage(step4:arrange){// 删除容器和虚悬镜像steps {sh pwd && ls -alhsh docker rm -f ${IMAGE_NAME} |" alt="实战:Docker+Jenkins+Gitee构建CICD流水线">
实战:Docker+Jenkins+Gitee构建CICD流水线
文章目录
-
下一篇
Jenkins基本功-配置任务在从节点进行构建