CICD篇-Travis-CI环境搭建
CICD篇-Travis-CI环境搭建
环境准备
- github账号
- dockerhub账号
- Travis-CI账号
开启服务
进入Travis-CI官网开启服务
安装Travis
sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
# 由于众所周知的网络原因,此处可能需要使用到http_proxy
wget http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
tar -xvzf ruby-2.1.5.tar.gz
cd ruby-2.1.5/
./configure --prefix=/usr/local
make
sudo make install
安装
gem install travis
如果网络实在太差,可以使用RubyGems 镜像
gem sources --add https://gems.ruby-china.org/
gem sources --remove https://rubygems.org/
gem sources --remove http://rubygems.org/
gem sources -l
客户端登入
travis login --org
- 登入失败
root@mikey:/home/mikey# travis login
Outdated CLI version, run `gem install travis`.
Shell completion not installed. Would you like to install it now? |y| y
We need your GitHub login to identify you.
This information will not be sent to Travis CI, only to api.github.com.
The password will not be displayed.Try running with --github-token or --auto if you don't want to enter your password anyway.Username: hhufu
Password for hhufu: ********
Bad credentials. The API can't be accessed using username/password authentication. Please create a personal access token to access this endpoint: http://github.com/settings/tokens
for a full error report, run travis report
解决方法: 可以使用Token进行登入
root@mikey:/home/mikey# travis login --org --github-token 6534404071f94d2be86d6e3e16d691
Outdated CLI version, run `gem install travis`.
Successfully logged in as hhufu!
公钥配置
本地服务生成公钥,一路回车
ssh-keygen
将公钥上传致部署服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@47.106.210.184
免密登入测试
ssh root@47.106.210.184
初始化项目
进入项目目录中
travis init --org
输出
/var/lib/gems/2.5.0/gems/travis-1.9.1/lib/travis/tools/system.rb:79: warning: Insecure world writable dir /home/mikey/Devtools in PATH, mode 040777
Outdated CLI version, run `gem install travis`.
Detected repository as hhufu/innovate, is this correct? |yes| yes
Main programming language used: |Ruby|
.travis.yml file created!
not allowed to update service hook for hhufu/innovate
添加秘钥
travis encrypt-file ~/.ssh/id_rsa --add
当在官网查看到有秘钥存在就表示成功了
配置文件
配置文件
matrix:include:- language: node_jsnode_js:- 10.16.1branches:only:- masterinstall:- npm installscript:- npm run build- docker build . -t "$DOCKER_NAME/innovate-admin-vue:latest"addons:ssh_known_hosts:- "$SERVER_IP"after_success:- docker login -u=$DOCKER_NAME -p="$DOCKER_PWD"- docker push $DOCKER_NAME/innovate-admin-vue:latest- chmod 600 ~/.ssh/id_rsa- rsync -az --delete ./docker-compose.yml root@$SERVER_IP:$DOCKER_NAME/innovate-admin-vue/- ssh -o "StrictHostKeyChecking no" -i id_rsa root@$SERVER_IP "cd $DOCKER_NAME/innovate-admin-vue/;docker-compose-f docker-compose.yml pull;docker-compose -f docker-compose.yml up -d;exit"before_install:- openssl aes-256-cbc -K $encrypted_1687bb340939_key -iv $encrypted_1687bb340939_iv -inid_rsa.enc -out ~/.ssh/id_rsa -d- chmod 600 ~/.ssh/id_rsa- echo -e "Host $SERVER_IP\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config- cd $DOCKER_NAME/innovate-admin-vue- language: javaservices:- dockersudo: requiredbranches:only:- masterscript:- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V- docker build . -t "$DOCKER_NAME/innovate-admin:latest"before_install:- openssl aes-256-cbc -K $encrypted_1687bb340939_key -iv $encrypted_1687bb340939_iv-in id_rsa.enc -out ~/.ssh/id_rsa -d- chmod 600 ~/.ssh/id_rsa- echo -e "Host $SERVER_IP\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config- cd $DOCKER_NAME/innovate-adminafter_success:- docker login -u=$DOCKER_NAME -p="$DOCKER_PWD"- docker push $DOCKER_NAME/innovate-admin:latest- chmod 600 ~/.ssh/id_rsa- rsync -az --delete ./docker-compose.yml root@$SERVER_IP:$DOCKER_NAME/innovate-admin/- ssh -o "StrictHostKeyChecking no" -i id_rsa root@$SERVER_IP "cd $DOCKER_NAME/innovate-admin/;docker-compose-f docker-compose.yml pull;docker-compose -f docker-compose.yml up -d;exit"
notifications:email:- biaogejiushibiao@outlook.comon_success: changeon_failure: always
before_install:
- openssl aes-256-cbc -K $encrypted_1687bb340939_key -iv $encrypted_1687bb340939_iv-in id_rsa.enc -out ~\/.ssh/id_rsa -d
根据自己项目需要来进行编写,更多选项参考官方文档
提交部署
提交代码即可完成自动部署工作
参考资料
官方文档
持续集成服务 Travis CI 教程
如果安装过程中有问题可以扫描下发二维码联系我
CICD篇-Travis-CI环境搭建相关推荐
- cesium 页面截图_Cesium开发入门篇 | 02Cesium开发环境搭建及第一个示例
01 开发环境准备 利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React.Vue.AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍 ...
- 【网络安全学习】渗透测试篇01-DVWA靶场环境搭建教程
渗透测试:通过经授权的模拟攻击,发现存在的漏洞,并以此对网络.主机.应用及数据的安全性进行评估. 靶场作用:在合法的环境下进行网络安全学习与演练 目录 为什么写这篇文章? 介绍及注意事项 环境搭建 1 ...
- 程序猿编程课堂 Python学习之入门篇1:环境搭建与第一个程序
前言: Python作为目前比较热门的编程语言,其简单和简洁的语法使它成为一种非常好的通用编程语言,它是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),并且随着版本的不断更新和 ...
- 第1篇:Python 环境搭建
千里之行始于足下,今天我们先来学习 Python 环境搭建. Python 介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型.高级编程.通用型编 ...
- 华为Atlas200DK开发从零开始1.番外篇——Win10开发环境搭建,直连Atlas200DK开发板
目录 前言 环境搭建前准备 Windows10上的软件准备 硬件准备 Win10直连Atlas200DK 检查USB虚拟网卡状态 设置Atlas200DK的USB网卡IP(重要) 将Win10网络共享 ...
- 【谷粒商城基础篇】基础环境搭建
谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== 项目简介与分布式概念(第一.二章) 基础环境搭建(第三章) ===整合SpringCloud=== 整合 ...
- stm32f4 hal 4位数码管_STM32裸机开发基础篇01开发环境搭建(HAL库)
前言 众所周知,在32位单片机中,STM32占有重要市场份额,其社区活动频繁,网上相关资料也比较多,无论是学习入门,还是工作使用,都无疑是极好的选择,本节开始,我们将学习如何使用STM32,首先,我们 ...
- Python之路【第一篇】:环境搭建
虚拟机安装 下载VMwareWorkstation以及centos,安装完VMwareWorkstation,创建一个虚拟机,然后在新创建的虚拟机上运行centos linux环境搭建 公司开发使用l ...
- cesium 页面截图_Cesium开发入门篇 | 02开发环境搭建及第一个示例
开发环境准备 利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React.Vue.AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍.本次 ...
- Java 编程预热篇:JavaSE 环境搭建和 IDE的安装
知识点: JDK 概述 JDK 全称 Java Development Toolkit,是 Java 语言开发工具包.JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runti ...
最新文章
- 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...
- 零基础学习java------day7------面向对象
- 使用Speedment 3.0.17及更高版本简化了事务
- The Model Driven Software Network
- 最大子序和(Leetcode第53题)
- 怎么配置宝塔linux环境,宝塔面板linux怎么安装
- 你知道吗?还有比自回归方式更快更好的序列生成!
- 动态规划-最长不下降子序列
- PRML第三章3.2
- 一个手机用c网可以打开网站切换到g网就打不开_推荐一些设计师常用网站!!!...
- OpenSesame for Mac(ae项目格式编辑插件)
- 【commons-beanutils专题】003- PropertyUtils 专题
- Binder机制原理
- smb协议讲解_SMB协议详解 - 人之为学,如饮河海,大饮则大盈,小饮则小盈 - OSCHINA - 中文开源技术交流社区...
- Ignite 架构全面解析
- 《开源软件架构》--nginx架构概述
- 物体识别基本原理及其Python实现
- japanhr日语小工具 日文汉字转平假名-japankana
- 第一行代码-第二版(郭霖著)笔记(初识Android)
- Android 8.0 手机亮灭屏
热门文章
- 解决“error C1083: 无法打开包括文件: “HPSocket.h”: No such file or directory”
- 手提电脑无法管理计算机,细说笔记本键盘无法输入怎么办
- linux佳能打印机服务,Canon LBP2900打印机安装Linux驱动的经验:已在Deepin中成功
- Quartu编写D触发器
- 用asp.net写的一个购物网站
- MATLAB基础语法之蒙特卡罗模拟_1(布丰投针)
- 34. 进程管理之优先级,nice,renice,Priority
- Ubuntu开机一直卡在[OK] Started GNOME Display Manager处,解决方案!
- 深度学习经历过程(caffe学习过程)
- Facebook账户 “ 解封、防封、养号 ” 知识要点,已收藏!