跳转到内容
返回

初探Travis

初探cicd

什么是cicd?

cicd怎么做

这些工具做了哪些事

目的

Travis

工作流程

ci:集成部分

cd:部署部分

本地操作

项目

服务端操作

Linux添加新用户/赋予root权限

# 添加用户
sudo adduser 用户名
# 按提示操作
# 给该用户赋予root权限
# 编辑该文件
vim /etc/sudoers
# 在改行注释下添加
# User privilege specification
用户名 ALL=(ALL:ALL) ALL

生成SSH秘钥

# 回到根目录
[~/home]:cd ~
[~]:ssh-keygen -t rsa #-t意思选择生成的加密算法,RSA为非对称加密

设置该文件权限为700

# -rw------- (600)      只有拥有者有读写权限。
# -rw-r--r-- (644)      只有拥有者有读写权限;而属组用户和其他用户只有读权限。
# -rwx------ (700)     只有拥有者有读、写、执行权限。
# -rwxr-xr-x (755)    拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
# -rwx--x--x (711)    拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
# -rw-rw-rw- (666)   所有用户都有文件读、写权限。
# -rwxrwxrwx (777)  所有用户都有读、写、执行权限。
# 通过chmod命令可以修改权限
# -----------
# 设置该目录为700
[~]:chmod 700 ~/.ssh/
# 设置该目录下文件为600
chmod 600 ~/.ssh/*
# 查看当前目录下文件信息 可以看到所有文件都属于travis
[~]:ls -al
# 添加生成公钥为受信列表
[~]:cd .ssh/
# 如果没有authorized_keys先创建
[~]:touch authorized_keys
[~/.ssh]:cat id_rsa.pub >> authorized_keys # cat打印文件内容

配置连接

# 创建一个配置文件
[~/.ssh]:vim config
# 内容如下
# 测试
[~/.ssh]:ssh test
# 查看是否有known_hosts 有即成功 之后再登陆时就不需要yes
[~/.ssh]:ls
<!-- 文件内容 -->
Host test
HostName 99.99.99.99(你的服务器ip)
#登陆的用户名
User travis
IdentitiesOnly yes
#登陆使用的密钥
IdentityFile ~/.ssh/id_rsa

安装travis

travis是ruby写的,所以需要安装ruby环境

安装rvm:ruby的版本管理工具,类似npx

# 切回root
# 安装公钥
[root@~]gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# 会提示安装gpg2 安装就好
# 安装rvm
[root@~]:curl -sSL https://get.rvm.io | bash -s stable
# 安装会提示需要添加用户到rvm分组
# 添加用户到新分组且不离开当前所在组
# usermod -G groupA---离开当前所在组,到目标组
[root@~]:usermod -a -G 分组名 待添加用户
# 执行重新执行刚修改的初始化文件
[root@~]:source /etc/profile.d/rvm.sh
# 查看rvm版本
[root@~]:rvm --version
# rvm 1.29.10 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

安装ruby和gem---ruby的包管理工具

[root@~]:rvm install ruby
# 安装完成后查看版本
[root@~]:ruby --version
[root@~]:gem -v
# 查看gem当前镜像
[root@~]:gem sources -l # https://rubygems.org/
# 切换为国内的镜像源
[root@~]:gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

安装travis命令行工具

[root@~]:gem install travis
# 切到travis 执行travis
[travis@~]:travis
# 提示yes
# 进入项目目录,开始添加秘钥到仓库
[travis@~/home/xxx]:travis login
# 输入github登陆名和密码
# 添加秘钥到仓库的配置文件中
[travis@~/home/xxx]:travis encrypt-file ~/.ssh/id_rsa  --add
# 打印配置文件看到多了几行
before_install:
- openssl aes-256-cbc -K $encrypted_ff98517d7fe4_key -iv $encrypted_ff98517d7fe4_iv
  -in id_rsa.enc -out ~\/.ssh/id_rsa -d
#   这里需要更改一下把out~后的\去掉,不然会报错这是traviscli的bug

添加目标服务器

language: node_js
node_js:
- 10
branches:
only:
- serverBackup
script:
- echo "test"
before_install:
- openssl aes-256-cbc -K $encrypted_5ec1b68e2d5b_key -iv $encrypted_5ec1b68e2d5b_iv
  -in id_rsa.enc -out ~/.ssh/id_rsa -d
addons:
ssh_known_hosts:
- ip地址或者域名
after_success:
- chmod 600 ~/.ssh/id_rsa
- ssh publish@shuaxinjs.cn -o StrictHostKeyChecking=no 'cd /home/publish/data/shuaxindiary.github.io && git pull'

参考链接



上一篇
塞尔达通关
下一篇
初探nginx