美文网首页vue
自动部署远程服务器(Vue)

自动部署远程服务器(Vue)

作者: cherubic_c | 来源:发表于2018-08-04 13:27 被阅读187次
    生成密钥对

    ssh-keygen
    输入上面的指令以后一路回车即可,你会发现在用户根目录下多了.ssh目录,进去看一下cd ~/.ssh,里面有3个文件

    新建config文件
    Host test
    HostName 182.61.20.24 
    #登陆的用户名
    User root
    IdentitiesOnly yes
    #登陆使用的密钥
    IdentityFile ~/.ssh/id_rsa
    

    设置.ssh目录为700:chmod 700 ~/.ssh/
    设置.ssh目录下的文件为600:chmod 600 ~/.ssh/*

    将生成的公钥添加为受信列表(重点)
    cat id_rsa.pub >> authorized_keys
    cat authorized_keys --查看
    # authorized_keys文件内容类似这样
    ssh-rsa  *************centos
    
    服务器安装Travis
    #ravis的客户端工具需要用gem来安装,gem是ruby的管理工具,所以首先安装ruby
    apt install ruby
    # 安装travis命令行工具,如无法使用gem指令须先安装ruby
    gem install travis
    # --auto自动登录github帐号
    travis login --auto
    # 此处的--add参数表示自动添加脚本到.travis.yml文件中 必须在项目的根目录执行
    travis encrypt-file ~/.ssh/id_rsa --add
    # 这个命令会自动把 id_rsa 加密传送到 .git 指定的仓库对应的 travis 中去
    注意:
    gem install travis 报错can't find header files for ruby at /usr/lib/ruby/include/ruby.h
    解决办法:
    #更换gem的source
    $ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
    $ gem sources -l
    *** CURRENT SOURCES ***
    
    https://ruby.taobao.org
    # 请确保只有 ruby.taobao.org
    #安装ruby-dev
    apt-get install ruby-dev
    

    上面的并没有成功 具体Travis网页端并没有生成环境变量--有知道得小伙伴可以加群告诉我下:163958730

    另一种方法--rsync

    启动方式:
    rsync --daemon
    创建rsync的主配置文件“/etc/rsyncd.conf”,需要手工来创建,创建该文件并插入如下内容:

    # /etc/rsyncd: configuration file for rsync daemon mode
    
    # See rsyncd.conf man page for more options.
    
    # configuration example:
    uid = root
    gid = root
    use chroot = no
    max connections =4
    pid file = /var/run/rsyncd.pid
    log file = /var/log/rsyncd.log
    lock file = /var/run/rsyncd.lock
    
    #设置模块
    [view] 
    path = /srv/view
    read only = no
    auth users = root
    secrets file = /etc/rsyncd.passwd
    list = no
    

    1)uid、gid:当使用非root账号时,那么一定要确保服务的的文件夹是否有该非root账号写入的权限

    2)use chroot = no :是否可以切换到root目录,当chroot为yes的时候,客户端连接模块的时候,先chroot到模块参数指定的目录下,必须使用root权限,端口号必须是1024以内,且不能备份path路径外的链接文件

    3)max connections = 2 :表示同时最大的连接数,也就是同时只能有两个客户端对自己进行连接并且此选项必须与lock file = /var/run/rsyncd.lock 共同使用,若不指定,默认为/var/run/rsyncd.lock

    4)path = /captain/shell:表示的是当客户端把数据同步过来将保存的路径

    5)read only = no :如果为只读,那么将不能进行写同步,所以必须关闭auth users = rsync :用来进行同步的用户,不需要系统用户中有,虚拟的就行

    7)secrets file = /etc/rsyncd.secrets :表示的是账号密码文件,此文件可随意指定,文件里必须以username:password的格式
    root:123456
    此文件权限必须为600,否则会报错

    #执行命令:
    echo "root:123456" > /etc/rsyncd.passwd
    chmod 600 /etc/rsyncd.passwd
    

    8)list = no :表示的是当服务端拒绝客户端的请求时,是否是直接显示权限拒绝,还是现实模块不存在,一般与hosts allow 和hosts deny一起使用

    当一个被服务端拒绝的请求进来时,如果设置为 list = no,那么直接返回模块不存在,如果不设置,那么是什么错就返回什么错

    Travis配置文件
    #指定node版本
    language: node_js
    node_js:
    - '8'   
    
    #指定只有检测到master分支有变动时才执行任务
    branchs:
      only:
      - master  
    
    # 指定缓存模块,可选。缓存可加快编译速度。
    cache:
      directories:
        - node_modules
    
    install:
    - echo  $RSYNCPWD > rsyncd.passwd 
    - chmod 600 rsyncd.passwd
    - npm install
    script:
    - npm run build
    
    after_success:
    - rsync --delete --password-file=./rsyncd.passwd -r ./dist ${SERVER_NAME}@${SERVER_IP}::view
    
    #$RSYNCPWD 跟你在服务器端的密码保持一致(不需要带userName)
    #${SERVER_NAME} travisWeb端配置的环境变量(userName)
    #${SERVER_IP} 服务器IP
    #::view 设置的模块
    

    相关文章

      网友评论

        本文标题:自动部署远程服务器(Vue)

        本文链接:https://www.haomeiwen.com/subject/mcayvftx.html