• Ansible跳板机自动部署


    首先,安装ansible,略过此步骤。

    一、控制机(jenkens、ansible所在机器与跳板机之间互信,跳板机与目的机之间互信)

    1.在客户端生成公钥私钥对

    命令:ssh-keygen -t rsa

    一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub

    2.查看系统生成的公钥私钥对

    命令:ls /root/.ssh

    可以看到如下的文件

    3.将生成的公钥私钥对id_rsa.pub发送到其他的服务器上。

    命令:ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.137.129

    注:命令可简单记忆为 ssh-copy-id -i 公钥私钥对文件 服务器ip地址

    可以看到成功将公钥私钥对发送到了其他服务器,更多服务器一样操作即可。

    4.现在可以测试连接其他服务器是否不需要密码登录,可以看到确实成功了。

    登录其他服务器命令:ssh 192.168.137.130     #ssh serverid

    二、跳板机安装nc命令

    1、上传(此文件备份在jenkens服务器192.168.3.83的/opt目录)至跳板机

    2、执行rpm  -iUv  nc-1.84-22.el6.x86_64.rpm

    3、执行nc -help确认命令是否成功安装

    三、测试ssh通过跳板机代理连接目的机是否成功

    ssh -o "ProxyCommand ssh -p 22 root@192.168.40.115 nc -w 1000 %h %p" -p 22 root@192.168.40.116

    四、修改ansible操作主机配置文件及编写ansible执行剧本

    1、vi /etc/ansible/hosts

     增加配置(以下举例)

    [webservers]  # 这是目的机别名

    192.168.40.116

    [webservers:vars]# 这是目的机对应配置变量,这里用ansible代理,192.168.40.115作为跳板机

    ansible_ssh_common_args=' -o  "ProxyCommand ssh -o ConnectTimeout=6000000  -p 22 root@192.168.40.115 nc -w 100000 %h %p"'

    2、编写ansible剧本playbook

     新增剧本,取名*.yaml

    ---

    - hosts: webservers ---操作主机别名

      tasks:

        - name: 获取本地jar包

          local_action: shell ls /var/lib/jenkins/workspace/ttt/target/alarmprovince*.jar

          register: file_name

        - name: 删除目标主机上面的备份jar包

          shell: rm -f /tmp/alarmprovince.jar.bak

          ignore_errors: true

        - name: 备份原来jar包

          shell: mv /tmp/alarmprovince.jar /tmp/alarmprovince.jar.bak

          ignore_errors: true

        - name: 拷贝jar包到目标机器

          copy: src="{{ file_name.stdout }}" dest=/tmp/alarmprovince.jar

        - name: 关闭java进程

          shell: ps -ef|grep alarmprovince|grep jar|grep -v grep |awk '{print $2}' |xargs kill -9

          ignore_errors: true

        - name: 后台不挂起启动

          shell: nohup java -jar /tmp/alarmprovince*.jar &

        - name: 删除本地jar包

          local_action: shell rm -f /var/lib/jenkins/workspace/ttt/target/alarmprovince*.jar

    五、配置jenkens

      1、配置项目git路径

     

      2、配置mvn构建

      

      3、新增ansible剧本执行(配置操作主机(别名)及指定执行剧本)

    六、构建及发布

      点击构建,发布成功

    (ps:修改ansible_config配置文件,将ssh_timeout时间调大,避免超时)

  • 相关阅读:
    vs2017 项目调试浏览器网页闪退Bug
    “WebPageBase”在未引用的程序集中定义。必须添加对程序集“System.Web.WebPages, Version=1.0.0.0,Culture=neutral....."的引用
    SQL Server判断日期是否为周六 周日
    获取各国的日期时间
    .net Api项目初步搭建并移除XML格式
    鼠标滚轮事件
    js中if表达式判断规则
    原生轮播图
    C# uri
    SqlServer 备份还原教程
  • 原文地址:https://www.cnblogs.com/jianwei-dai/p/11278202.html
Copyright © 2020-2023  润新知