1. 程式人生 > >jenkins集成pipeline,ansible流程

jenkins集成pipeline,ansible流程

圖形 false 步驟 play 技術 語法 郵件 bsp end

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": "[email protected]",  "way": "mail" , "mail_type":"html"}
        status_code: 200
        body_format: json

jenkins集成pipeline,ansible流程