jenkins集成pipeline,ansible流程

1.配置jenkins環境html

 

   命令參考前一篇《docker自行構建jenkin》。單機部署便可。本實例中。jenkins,ansible安裝在同一機器 。docker

   jenkins須要配置/etc/sudoers.還須要給/bin/bash,以及jenkins的home目錄下的.ssh下須要複製一份ansible的ssh私鑰json

    1.配置/etc/sudoersvim

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

    2.vim /etc/passwd改jenkin給bash權限,注意家目錄。一會要把rsa私鑰考過去bash

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.配置pipelinessh

   新建一個pipeline流水線項目(貌似只有流水線才能夠插入pipeline腳本)post

    

腳本 須要嚴格參考pipeline語法。ui

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)] } } } } }

新建自由風格項目。用於調用ansibleurl

 

構建步驟選擇執行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
相關文章
相關標籤/搜索