DevOpsJenkinsjenkins for App

一步一步打造jenkins+docker+nodejs项目的自动

2016-09-26  本文已影响11946人  丰富多彩的薄校长

一步一步打造jenkins+docker+nodejs项目的自动部署环境

介绍

jenkins+docker+nodejs 自动部署

亮点

前提

  1. 代码通过git管理,放在了码云上(放在github或者其他平台也都可以)
  2. 服务器用的亚马逊aws(阿里云,青云也一样)
  3. 服务器用的ubuntu 16.04 (服务器系统不同,只是某些shell命令不同而已,windows服务器用户,呃,我敬你是条汉子)
  4. 客户端用的mac
  5. docker镜像平台为dockerhub

准备

  1. 服务器开通SSH
  2. 服务器安装Docker
  3. 掌握基本的shell命令(本文出现的shell命令都会进行说明,cd啥的就不说了...)

开始

docker运行jenkins

  1. 服务器 安装docker
  1. 服务器拉取docker jenkins镜像:docker pull jenkins:latest
  1. 服务器运行dokcer jenkins容器:sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:latest

    • 这句命令的意思是:在后台运行一个基于jenkins:latest镜像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射为49002端口,并且把服务器上的/var/jenkins_node目录挂在到docker容器上的/var/jenkins_home目录
    • -d 后台运行docker容器
      • 如果不加-d则,容器运行会占用此终端,如果终端关闭,则容器也相应关闭,jenkins就无法访问了。加上-d,容器会在后台运行。
    • --name 为容器起个别名
      • 如果不起别名,则系统会默认分配一个随机别名,类似gklasd_sdfwe。起了别名后,后续会通过该别名管理该docker容器,也就是管理jenkins。
    • -p docker容器端口映射
      • jenkins服务是运行在docker里的,docker默认不对外暴露端口的
    • -v 文件挂载
      • 如果不挂载,则jenkins所有log、用户配置文件都会在docker容器内,如果容器销毁,则jenkins得重新配置一遍。挂载出来方便jenkins迁移以及管理
      • 运行成功截图


        jenkins run
  2. 查看你服务器上的的/var/jenkins_node文件夹,当出现下图所有文件时,则说明jenkins启动成功,否则再等等...30秒左右即可


  3. 不出意外,浏览器访问http://host:49002 ,会出现如下界面

    • 打开initialAdminPassword文件,复制文件内容 initialAdminPassword文件位置为:


      为了方便,用mac演示一下
  4. initialAdminPassword文件内容粘贴到Administrator password

  5. 如果对于jenkins比较熟悉,下面7,8自己随意


  6. 等...


  7. 设置admin user


node项目配置

jenkins配置

插件安装

  1. 首页,点击系统管理 --> 管理插件


  2. 选择“可选插件”


  3. 右上角过滤SSH,--> 选择Publish Over SSH -->点击 直接安装


  4. 等待安装完成


系统设置

  1. 首页,点击系统管理 --> 系统设置


  2. 拉到最下面找到 "Publish over SSH" , 设置服务器的SSH信息


项目配置

  1. 首页,点击左上角”新建”


  2. General: 只填 项目名称即可


  3. 源码管理: 填写Git信息


  1. 构建环境:参照下图
  1. 保存,返回到首页
  2. 选择刚刚创建的项目,点击"立即构建"

自动部署

如果想要git pull,jenkins就自动部署,那就继续往下看...

  1. jenkins --> 首页 --> 用户


  2. 设置 --> 点击 "show API Token"


  3. 复制API Token内容


  4. 返回首页 --> node --> 配置 --> 构建触发器 --> 选择 "触发远程构建" -->粘贴"API Token"内容到"身份验证令牌"


  5. 登陆git平台,找到你的项目,选择管理,选择webhook


  1. 此时你git push,会发现jenkins并没有自动构建,是因为jenkins的安全策略导致的,还需要如下设置
    • jenkins首页,选择 系统管理-->Configure Global Security(系统设置下面那个) 进行如下设置


至此,已完成 git push 后,jenkins 自动构建自动部署。

对于Docker感兴趣,可以看下这篇文章:Docker常用命令

上一篇下一篇

猜你喜欢

热点阅读