jenkins整合pipeline,ansible流程

來源:互聯網
上載者:User

標籤: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 rsacp ~/.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]com",  "way": "mail" , "mail_type":"html"}        status_code: 200        body_format: json

 

jenkins整合pipeline,ansible流程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.