环境配置

jenkins

java环境

yum install -y java

安装jenkins

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

yum install jenkins

配置jenkins端口

vi /etc/sysconfig/jenkins

启动

service jenkins start

管理员密码

vi /var/lib/jenkins/secrets/initialAdminPassword

gitlab

yum install curl policycoreutils openssh-server openssh-clients postfix

service postfix start

service sshd start

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

sudo EXTERNAL_URL=”ip:port” yum -y install gitlab-ee

sudo mkdir -p /etc/gitlab

sudo touch /etc/gitlab/gitlab.rb

sudo chmod 600 /etc/gitlab/gitlab.rb

sudo gedit /etc/gitlab/gitlab.rb

配置

sudo vim /etc/gitlab/gitlab.rb

启动

sudo gitlab-ctl reconfigure

sudo gitlab-ctl status

Node

cd /usr/local/src

wget https://nodejs.org/dist/v6.11.1/node-v6.11.1-linux-x64.tar.xz

tar xvf node-v6.11.1-linux-x64.tar.xz

ln -s /usr/local/src/node-v6.11.1-linux-x64/bin/node /usr/local/bin/node

ln -s /usr/local/src/node-v6.11.1-linux-x64/bin/npm /usr/local/bin/npm

Pm2

npm install pm2 -g

ln -s /usr/local/src/node-v6.11.1-linux-x64/bin/pm2 /usr/local/bin/pm2

Nginx

yum install nginx

nginx -t

service nginx start

Rsync

rsync --daemon --config=/app/rsync/rsync.conf

# configuration example:

uid = root

gid = root

use chroot = yes

max connections = 4

read only = false

pid file = /var/run/rsyncd.pid

exclude = lost+found/

transfer logging = yes

timeout = 900

ignore nonreadable = yes

dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

auth users=root

secrets file = /etc/rsync.password

[ftp]

path = /data

创建rsync.password jenkins服务器写密码 目标服务器写用户名:密码

chmod 600 /etc/rsync.password

配置服务器间免密登陆

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master

jenkins部署的shell脚本 jenkins需要root权限

WEB_SERVER_IP=
PROJECT=ftp/webserver/$JOB_NAME  (rsync需要配置ftp模块)
rsync -rtav --password-file=/etc/rsync.password --delete-before $WORKSPACE/ root@$WEB_SERVER_IP::$PROJECT --exclude ".git"

gitlab+jenkins+pm2+rsync实现node的自动化部署的更多相关文章

  1. node项目自动化部署--基于Jenkins,Docker,Github(1)安装Jenkins

    前言 每次项目代码更新后都要重新部署,如果只有一台服务器还好. 但是如果是分布式系统,动不动就很多台服务器,所以代码的自动部署就显得十分重要了. 这里用几篇文章来记录一下如何使用Jenkins,Doc ...

  2. jenkins结合ansible用shell实现自动化部署和回滚

    最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...

  3. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境

    写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...

  4. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署

    前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...

  5. PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版)

    PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版) 先看流程图: 大概介绍一下: 版本选择使用jenkins 中的 git parameter 插件实现 回滚方式 ...

  6. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

  7. Jmeter(二十八)_Docker+Jmeter+Gitlab+Jenkins+Ant(容器化的接口自动化持续集成平台)

    这套接口自动化持续集成环境已经部署差不多了,现在说说我的设计思路 1:利用Docker容器化Gitlab,Jenkins,Jmeter,Ant,链接如下 Docker_容器化gitlab Docker ...

  8. node项目自动化部署--基于Jenkins,Docker,Github(3)自动化部署

    GitHub仓库 由于现在的代码基本上都是多人合作开发,所以肯定会用到像 git 这样的版本控制工具 所以这里使用 GitHub 来做一个演示 首先我们需要在github上新建一个仓库 点击New来新 ...

  9. node项目自动化部署--基于Jenkins,Docker,Github(2)配置节点

    上一篇文章中准备工作已经完成的差不多了 这一篇主要讲解 Jenkins 上面的相关配置 为了让代码部署到所有的子节点上 所以我们首先需要在 Jenkins 中添加我们希望代码部署到的节点 配置节点 首 ...

随机推荐

  1. 洛谷 P2908 [USACO08OPEN]文字的力量Word Power

    P2908 [USACO08OPEN]文字的力量Word Power 题目描述 Farmer John wants to evaluate the quality of the names of hi ...

  2. 终于研究出如何设置新版paypal付款时汇率损失方的问题了

    http://bbs.55haitao.com/thread-1686005-1-1.html 终于研究出如何设置新版paypal付款时汇率损失方的问题了 登录paypal后,选"设置&qu ...

  3. js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化

    js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化 一.总结 一句话总结:如果用ajax传递表单的数据,如果不进行表单的序列化,要一个参数一个参数的写,太麻烦,序列化的话,一句代 ...

  4. 24.C语言最全排序方法小结(不断更新)

    希尔排序: 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再 ...

  5. 【Codeforces Round #431 (Div. 2) C】From Y to Y

    [链接]点击打开链接 [题意] 让你构造一个大小最多为10W的字符multiset. 你进行n-1次操作; 每次操作,从set中取出两个字符串,一开始单个字符被认为是字符串. 然后把它们连接在一起. ...

  6. 洛谷 P2755 洗牌问题

    P2755 洗牌问题 题目描述 给你2N张牌,编号为1,2,3..n,n+1,..2n.这也是最初的牌的顺序. 一次洗牌是把序列变为n+1,1,n+2,2,n+3,3,n+4,4..2n,n.可以证 ...

  7. ArcGIS 10.5 新功能

    ArcGIS 10.5正式发布,打造智能的Web GIS平台 2017年新年来临之际,ArcGIS 10.5正式发布. 历经几个版本,ArcGIS10.5已经革新为一个智能的以Web为中心的地理平台, ...

  8. (转)RMAN-06054: media recovery requesting unknown archived log for thread...

    转自:http://blog.itpub.net/29800581/viewspace-1307267/ 使用rman执行recover database 的时候出现RMAN-06054的错误提示: ...

  9. python3 随机生成6位数的验证码

    python3 随机生成6位数的验证码 要求是数字:0~9 及大小写字母. #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung ...

  10. UWP 新手教程1——UWP的前世今生

    文件夹 引言 设备族群 UI 和通用输入模式 通用控件和布局面板 工具 自适应扩展 通用输入处理 引言 在本篇文章中,可以掌握下面知识: 设备族群,怎样决定目标设备 新的UI控件和新面板帮助你适应不同 ...