jenkins + ansible + docker 代碼集成發佈

来源:https://www.cnblogs.com/mushou/archive/2018/09/29/9713741.html
-Advertisement-
Play Games

一、環境搭建 1. 安裝Java 配java_home, /etc/profile 2.安裝Jenkins 下載war包,用 Java -jar Jenkins.war或者 把war包放tomcat的webapps下 http://ip:8080或者 http://ip:8080/jenkins 3 ...


一、環境搭建

1. 安裝Java

配java_home, /etc/profile

2.安裝Jenkins

下載war包,用 Java -jar  Jenkins.war或者  把war包放tomcat的webapps下

http://ip:8080或者 http://ip:8080/jenkins

3.安裝ansible

使用Python安裝

先安依賴yum -y install gcc gcc-c++ openssl-devel openssl

下載Python包

tar xf Python-3.5.2.tgz -C /usr/src/

cd /usr/src/Python-3.5.2/

./configure --prefix=/usr/local/python/

make && make install

ln -s /usr/local/python/bin/python3 /usr/bin/python3

/usr/local/python/bin/pip3 install ansible

ln -s /usr/local/python/bin/ansible /usr/local/bin/

4.設置主機無密登錄及hosts文件設置

mkdir -p /etc/ansible

vim /etc/ansible/hosts

cat /etc/ansible/hosts   #ansible主機管理配置文件

[nginx]         #被管理的主機組名稱,比如nginx

webA ansible_ssh_host=192.168.200.132 ansible_ssh_port=22 ansible_ssh_user=root #第一臺主機

webB ansible_ssh_host=192.168.200.138 ansible_ssh_port=22 ansible_ssh_user=root  ansible_ssh_pass=666666    #第二台主機

如果我們已經設置了ssh免密鑰了。那麼就不需要寫密碼了。例如:webA
我們要是沒有設置免密鑰,那麼就需要安裝sshpass工具,併在/etc/ansible/hosts文件里寫上主機的連接密碼。例如webB

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum -y install sshpass

二、配置私有docker容器倉庫

docker run -d -p 5000:5000 --name registry --restart=always  --privileged=true  -v /docker/registry:/var/lib/registry  registry

vim /etc/docker/daemon.json,添加(在每一個客戶機上同樣要進行這一步驟)

{"insecure-registries":["192.168.1.30:5000"]},其中ip地址為設置為私有倉庫伺服器的IP地址

#重啟服務

systemctl restart docker

三、配置Jenkins

1.安裝插件 ansible

2.創建項目

3.在構建中,添加ansible  command

因為是測試,而且代碼拉取打包涉及到開發使用ant打包工具,其中會使用build.xml文件,我不方便取得,所以我們採取了簡化方式,加入我們已經取得了war包,我們簡化拉取,打包為war包的步驟,為了構建docker鏡像,我們採用ansible 把需要打包到tomcat中的war包和要生成鏡像的dockerfile文件發給需要部署的伺服器。

其中dockerfile 文件為docker.tomcat,

from tomcat:8
expose 8080
add ~/docker/SmartMarket115c1.war  /usr/local/tomcat/webapps/
cmd ['catalina.sh','run']

同時在jenkins 的系統管理  -   管理插件 -  更新 Publish over SSH

在上圖中配置好你要操作的遠程伺服器

回到項目構建,在構建步驟添加

在Exec  command 中填寫你在遠程伺服器需要執行的腳本內容,

docker build -t tomcat_test -f ~/docker/docker.tomcat

其中 tomcat_test  為要構建的鏡像名字,  docker.tomcat 為dockerfile 文件的路徑及名字

同時構建完成後我們在遠程伺服器啟動容器,開放8080埠,

docker run -d -p 8080:8080 --name tomcat_test  tomcat_test

我們在瀏覽器就可以訪問 ip:8080/項目名,來訪問我們已經在遠程伺服器上部署好的項目了。

以上 只是我的一些初步測試,後續我會結合k8s構建集群式的項目測試環境

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文參考鏈接:http://www.runoob.com/linux/linux-shell.html 基本說明 Shell腳本(shell script)是一種為shell編寫的腳本程式。其中shell常見的種類包括: Bourne Shell:對應的命令(/usr/bin/sh或/bin/sh) ...
  • title: 動態鏈接庫函數內的靜態變數,奇妙的UNIQUE Bind date: 2018 09 28 09:28:22 tags: 介紹 模板函數和內斂函數中的靜態變數,在跨so中的表現,和定義在其他函數中的靜態變數的表現稍微有所不同。使用不慎,會造成預期之外的結果。本文對該現象進行了探討。 多 ...
  • 一、介紹Jenkins 1、Jenkins概念 Jenkins是一個功能強大的應用程式,允許持續集成和持續交付項目,無論用的是什麼平臺。這是一個免費的源代碼,可以處理任何類型的構建或持續集成。集成Jenkins可以用於一些測試和部署技術。Jenkins是一種軟體允許持續集成。 2、Jenkins目的 ...
  • Microbit藍芽配對 (Bluetooth Pairing) Microbit 可以像手機或平板與其他藍芽裝置一樣,一旦做完第一次配對完就可以使用”藍芽服務” paired with the micro:bit,再與行動裝置去交換數據。 什麼是配對 ? 配對就是讓你的Microbit 去信任(t ...
  • 轉載:http://www.safecdn.cn/2018/09/hping-install/ Hping的主要功能有: 測試防火牆實用的埠掃描網路檢測,可以用不同的協議,服務類型(TOS),IP片分手工探測MTU(最大傳輸單元)路徑的先進性的路由跟蹤,所有請立即獲取iTunes的協議遠程操作系統 ...
  • 問題描述 我有2個Tomcat 一個埠開啟(8021),一個埠未開啟(8022),在nginx里用upstream模塊進行代理 ,代理的負載演算法採用的是預設的輪詢演算法,配置成功後,訪問頁面時並沒有出現輪詢的效果 ,頁面一直顯示是正常訪問的頁面,原則上會有一次出現502界面或者報錯的頁面的,但是通 ...
  • L2TP連接嘗試失敗,因為安全層在初始化與遠程電腦的協商時遇到了一個處理錯誤 錯誤描述:“ L2TP連接嘗試失敗,因為安全層在初始化與遠程電腦的協商時遇到了一個處理錯誤” 只有這個沒有錯誤碼。 從網上參考 Bob Hou: http://blog.csdn.net/minxihou 博客 首先連 ...
  • 本文介紹一下 shell 的語法。 一、變數 在 shell 里,使用變數之前通常並不需要事先為他們做出聲明,需要使用的時候直接創建就行了。預設情況下,所有變數都被看做字元串並以字元串來存儲,即使它們被賦值為數值時也是如此。shell 和一些工具會在需要時把數值型字元串轉換成對應的數值以對它們進行操 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...