码迷,mamicode.com
首页 > 其他好文 > 详细

jenkins集成pipeline,ansible流程

时间:2018-10-11 13:38:55      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:ati   命令   img   ram   ash   特殊   mes   环境   ansible   

1.配置jenkins环境

 

   命令参考前一篇《docker自行构建jenkin》。单机部署即可。本实例中。jenkins,ansible安装在同一机器 。

   jenkins需要配置/etc/sudoers.还需要给/bin/bash,以及jenkins的home目录下的.ssh下需要复制一份ansible的ssh私钥

    1.配置/etc/sudoers

root    ALL=(ALL)       ALL
#增加
jenkins  ALL=(ALL) NOPASSWD: ALL

    2.vim /etc/passwd改jenkin给bash权限,注意家目录。一会要把rsa私钥考过去

jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

    3.复制一份私钥给jenkins调用ansible用

ssh-keygen -t rsa

cp ~/.ssh/id_rsa /var/lib/jenkins/.ssh/res.jenkins

  

 

 

2.配置pipeline

   新建一个pipeline流水线项目(貌似只有流水线才可以插入pipeline脚本)

  技术分享图片  

脚本 需要严格参考pipeline语法。

pipeline {
    agent any
    stages {      
      stage(开始部署通知) {
            steps {
                script {
                   hostname = hostname         #前一个为定义变量住后面build job传参,后一个为上面图形界面定义输入的变量
                   region = sdasdf+region     #字符拼接有严格要求。用于拼接的字符串内不可以有空格或者/n换行等特殊字符。否则pipeline语法无法不识别 
                }
                sh echo "注意:在进行后续操作之前,请通过JOB-get-hosts-info检查即将发布的目标服务器是否匹配?"
                timeout(time: 10, unit: MINUTES) {
                   input(message: 信息正确,继续后续发布操作?)   #这三行可以忽略
                build job: ansible-alter, parameters: [string(name: hostname, value: hostname),string(name: region, value: region)]
                }
            }
        }
    }
}

新建自由风格项目。用于调用ansible

技术分享图片

 

构建步骤选择执行Shell

 

#!/bin/bash

#echo "注意:您正在操作的主机名为:${hostname}, 主机所在区域为:regin = ${region}"

cd /var/lib/jenkins/loan-cd && ansible-playbook -e "title=${hostname} content=${region}" ./post_message.yml --private-key=/var/lib/jenkins/.ssh/res.jenkins
#此处可以改成自己想要的命令行。不一定要ansible了。也可以是salt脚本等等。

 

3.配置ansible

此处是一个ansible发送的的post请求。发给一个邮件服务接口。

- name: send mail
  gather_facts: False
  hosts: "localhost"
  user: root
  vars:
    start_time: {{ lookup("pipe","date +%s") }}
    task_id: {{lookup("pipe","echo " + groups.newprosfs|string +"|md5sum")}}
  tasks:
    - name: send mail
      uri:
        url: http://115.159.112.97:2020
        method: POST
        body: {"title":"{{ title }}", "content":"{{ content }}", "mail_receiver": "feigerlan@xwfintech.com",  "way": "mail" , "mail_type":"html"}
        status_code: 200
        body_format: json

 

jenkins集成pipeline,ansible流程

标签:ati   命令   img   ram   ash   特殊   mes   环境   ansible   

原文地址:https://www.cnblogs.com/feigerlan/p/9771385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!