zoukankan      html  css  js  c++  java
  • ansible 自动部署工具

    centos安装

    yum install epel-release -y

    yum install ansible –y

    yum -y install ansible

    vi /etc/ansible/ansible.cfg

    修改become=true 和下面的become (设置shell执行用户为root,脱掉注释就好)

    vi /etc/ansible/hosts

    [test]
    39.111.222.333
    39.444.555.666

    (设置自动部署的子机器)

    ssh-keygen
    ssh-copy-id root@39.111.222.333
    ssh-copy-id root@39.444.555.666

    生成证书并传输到子服务器

    因为我用的是golang,所以优雅停止服务的写法是


    signal.Notify(syscall.相应的关闭信号)

    再监听函数中
    <-signalChan
    //这里是服务停止了,把请求入口给关了的操作
    time.Sleep(time.Minute)//等待一分钟,让所有请求完毕


    至于部署脚本,我这里就不写了。思路就是

    首先将服务文件传输到指定的组(force是false,不覆盖,这一步是让新机器能够部署上代码的,文件权限是777)

    ansible test -m copy -a 'src=/root/xxx dest=xxxx force=false mode=777'

    ansible test -m copy -a 'src=/etc/systemd/system/xxx.service dest=/etc/systemd/system/xxxx.service force=false mode=777'

    ansible test -m command -a 'systemctl enable /etc/systemd/system/xxxxx.service'

    echo "开始停止服务"

    ansible test -m command -a 'service xxxx stop'

    echo "停止结束 开始部署"

    ansible test -m copy -a 'src=/root/xxxx dest=/root/xxxx'

    echo "部署结束,开始启动"

    ansible test -m command -a 'service xxxxx start'

    echo "启动结束,部署完毕"

    详细的用法可以参考:https://www.cnblogs.com/keerya/p/7987886.html#_label2_0_1

  • 相关阅读:
    鼠标悬停改变图片方法
    margin IE6中加倍问题
    js菜单效果
    杂谈
    常见的服务器端口号
    .NET 配置文件设置数据库连接属性
    ASP.NET 利用 Microsoft.Office.Interop.Excel 版本导出Excel数据
    DataGridView 绑定List时 属性不显示的解决方法
    C# 基本文件操作
    构建可克隆对象(ICloneable)
  • 原文地址:https://www.cnblogs.com/Garin/p/14197518.html
Copyright © 2011-2022 走看看