欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

基于jenkins+github+ansible实现cicd发布nodejs篇

时间:2023-07-20

由于没有vm虚拟机因此用docker代替

启动环境

环境包括jenkins和带有ssh的centos

#目录结构.├── docker-compose.yaml├── jenkins│ └── dockerfile└── nginx └── dockerfile#jenkins dockerfilecat jenkins/dockerfile FROM jenkinsci/blueoceanUSER rootRUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositoriesRUN apk add sshpassRUN ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsaRUN echo "HostKeyAlgorithms +ssh-dss" > ~/.ssh/config#nginx dockerfilecat nginx/dockerfile FROM kinogmt/centos-sshRUN echo "qq" | passwd root --stdin > /dev/null 2>&1#编译docker-compose build #启动服务docker-compose up -d #测试jenkins是否能ssh连接到nginx容器docker exec -it jenkins /bin/sh -c "sshpass -p qq ssh root@nginx ls -l"total 20-rw------- 1 root root 3172 Aug 19 2015 anaconda-ks.cfg-rw-r--r-- 1 root root 21 Feb 5 13:06 hosts-rw-r--r-- 1 root root 7214 Aug 19 2015 install.log-rw-r--r-- 1 root root 1680 Aug 19 2015 install.log.syslog

操作以上操作已经完成了jenkins的启动和jenkins通过ssh方式连接到nginx容器内部

jenkins初始化和安装插件

#进入容器内部docker exec -it jenkins /bin/bash#把密码复制过来cat /var/jenkins_home/secrets/initialAdminPassword


设置密码之后jenkins就安装完毕了,如果需要持久化请-v 把家目录挂载啊出来

安装node插件


完成后重启

配置nodejs 操作步骤

进入容器内部安装nginx

安装nginx

登录nginx服务器安装nginx,为了方便这次就不用源码编译安装了直接无脑yum,主要是为了看到效果

#俺咋混个yum -y install nginx#启动nginx#创建一个验证页面 echo hello wolrd >/usr/share/nginx/html/hello.html

访问nginx

安装jenkins

配置pipeline进行ci打包
登录jenkins服务器安装jenkins和ansible

pipeline{ agent any parameters { string(name: 'Version_node', defaultValue: 'NodeJS 14.15.5', description: 'node版本') } tools {nodejs "${Version_node}"} stages { stage('Checkout') { steps { git 'https://gitee.com/huangchengwu/hello-world-vue.git' } } stage('package') { steps { sh 'npm -v' sh 'node -v ' sh 'npm install' sh 'npm run build' } } stage('deploy') { steps { sh 'ls -l' } } } post { success { echo '执行成功' } failure{ echo '执行失败' } } }

本来想用ansible-playbook实现cd部分
为了简单以下使用命令shell实现

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。