多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 服務器 > 一步一步用jenkins,ansible,supervisor打造一個web構建發布系統

一步一步用jenkins,ansible,supervisor打造一個web構建發布系統

來源:程序員人生   發布時間:2015-03-31 08:35:25 閱讀次數:4936次

新blog地址:http://hengyunabc.github.io/deploy-system-build-with-jenkins-ansible-supervisor/


1步1步用jenkins,ansible,supervisor打造1個web構建發布系統。

本來應當還有gitlab這1環節的,但是感覺加上,內容會增加很多。所以直接用github上的spring-mvc-showcase項目來做演示。

https://github.com/spring-projects/spring-mvc-showcase

本文的環境用docker來構建。固然也能夠任意linux環境下搭建。

如果沒有安裝docker,可以參考官方的文檔:
https://docs.docker.com/installation/ubuntulinux/#ubuntu-trusty⑴404-lts⑹4-bit

下面將要介紹的完全流程是:

  1. github作為源代碼倉庫
    • jenkins做為打包服務器,Web控制服務器
    • ansible把war包,發布到遠程機器
      1. 安裝python-pip
      2. 用pip安裝supervisor
      3. 安裝jdk
      4. 下載,部署tomcat
      5. 把tomcat交由supervisor托管
      6. 把jenkins生成的war包發布到遠程服務器
      7. supervisor啟動tomcat
      8. 在http端口等待tomcat啟動成功
    • supervisor托管app進程,提供1個web界面可以查看進程狀態,日志,控制重啟等。

在文章的最后,會給出1個完全的docker鏡像,大家可以自己運行查看實際效果。

安裝jenkins

  • 先用docker來啟動1個名為“jenkins”的容器:
sudo docker run -i -t -p 8080:8080 -p 8101:8101 -p 9001:9001 --name='jenkins' ubuntu /bin/bash

8080是jenkins的端口,8101是spring-mvc-showcase的端口,9001是supervisor的web界面端口

履行完以后,會得到1個container的shell。接著在這個shell里安裝其它組件。

  • 安裝open jdk 和 git:
sudo apt-get update sudo apt-get install openjdk-7-jdk git
  • 下載配置tomcat:
apt-get install wget mkdir /opt/jenkins cd /opt/jenkins wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.18/bin/apache-tomcat-8.0.18.tar.gz tar xzf apache-tomcat-8.0.18.tar.gz
  • 安裝jenkins:
cd /opt/jenkins/apache-tomcat-8.0.18/webapps wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war rm -rf ROOT* mv jenkins.war ROOT.war
  • 啟動jenkins:
/opt/jenkins/apache-tomcat-8.0.18/bin/startup.sh

然后在本機用閱讀器訪問:http://localhost:8080/ ,可以看到jenkins的界面了。

配置jenkins

安裝git插件

安裝git插件:
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

在“系統管理”,“插件管理”,“可選插件”列表里,搜索“Git Plugin”,這樣比較快可以找到。

由于jenkins用google來檢查網絡的連通性,所以可能在開始安裝插件時會卡住1段時間。

配置maven, java

打開 http://localhost:8080/configure,
在jenkins的系統配置里,可以找到maven,git,java相干的配置,只要勾選了,在開時履行job時,會自動下載。
jenkins-config-maven

JDK可以選擇剛才安裝好的openjdk,也能夠選擇自動安裝oracle jdk。
jenkins-config-openjdk7

Git會自動配置好。

配置ssh服務

安裝sshd服務:

sudo apt-get install openssh-server sshpass

編輯
vi /etc/ssh/sshd_config

PermitRootLogin without-password

改成:

PermitRootLogin yes

重啟ssh服務:

sudo /etc/init.d/ssh restart

為root用戶配置密碼,設置為12345:

passwd

最后嘗試登陸下:

ssh root@127.0.0.1

安裝ansible

在jenkins這個container里,繼續安裝ansible,用來做遠程發布用。

先安裝pip,再用pip安裝ansible:

sudo apt-get install python-pip python-dev build-essential git sudo pip install ansible

配置ansible playbook

把自動發布的ansible playbook clone到本地:

https://github.com/hengyunabc/jenkins-ansible-supervisor-deploy

mkdir -p /opt/ansible cd /opt/ansible git clone https://github.com/hengyunabc/jenkins-ansible-supervisor-deploy

在jenkins上建立deploy job

  • 新建1個maven的項目/job,名為spring-mvc-showcase
    jenkins-new-job-maven

  • 在配置頁面里,勾選“參數化構建進程”,再順次增加“String”類型的參數

jenkins-new-job-parameters

共有這些參數:

app 要發布的app的名字 http_port tomcat的http端口 https_port tomcat的https端口 server_port tomcat的server port JAVA_OPTS tomcat啟動的Java參數 deploy_path tomcat的目錄 target_host 要發布到哪臺機器 war_path jenkins生成的war包的目錄
  • “源碼管理”,選擇Git,再填入代碼地址

https://github.com/spring-projects/spring-mvc-showcase.git

jenkins-new-job-git

  • 在“Post Steps”里,增加調用ansible playbook的shell命令
    jenkins-new-job-shell-ansible
cd /opt/ansible/jenkins-ansible-supervisor-deploy ansible-playbook -i hosts site.yml --verbose --extra-vars "target_host=$target_host app=$app http_port=$http_port https_port=$https_port server_port=$server_port deploy_path=$deploy_path JAVA_HOME=/usr JAVA_OPTS=$JAVA_OPTS deploy_war_path=$WORKSPACE/$war_path"

最后,保存。

測試構建

1切都配置好以后,可以在jenkins界面上,在左側,選擇“Build with Parameters”,“開始”來構建項目了。

如果構建成功的話,就能夠打開 http://localhost:8101 ,就能夠看到spring-mvc-showcase的界面了。

spring-mvc-showcase-webui

打開 http://localhost:9001 可以看到superviosr的控制網頁,可以查看tomcat進程的狀態,重啟,查看日志等。

supervisor-webui

如果想要發布到其它機器上的話,只要在


/opt/ansible/jenkins-ansible-supervisor-deploy/hosts

文件里增加相應的host配置就能夠了。

其它的1些東東

如果提示

to use the 'ssh' connection type with passwords, you must install the sshpass program

則安裝:

sudo apt-get install sshpass

演示的docker image

如果只是想查看實際運行效果,可以直接把 hengyunabc/jenkins-ansible-supervisor 這個image拉下來,運行便可。

docker run -it -p 8080:8080 -p 8101:8101 -p 9001:9001 --name='jenkins' hengyunabc/jenkins-ansible-supervisor

總結

  • jenkins提供了豐富的插件,可以定制自己的打包這進程,并可以提供完善的權限控制
  • ansible可以輕松實現遠程部署,配置環境等工作,輕量簡潔,功能強大
  • supervisor托管了tomcat進程,提供了web控制界面,所有運行的程序1目了然,很好用
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美亚洲天堂网 | 欧美乱大交xxxxx在线观看 | 国产一区二区在线观看麻豆 | 最新更新国内自拍视频 | 黄色a网站| purnhurb国产在线观看 | 国产91区精品福利在线社区 | www视频网站| 亚洲色图视频在线 | 久久精品久久精品久久精品 | 亚洲一区二区三区免费 | 久久大香伊蕉在人线国产联合 | 亚洲国产精品久久久久久网站 | 午夜性色福利视频 | 成人免费久久精品国产片久久影院 | 另类老妇性bbwbbw | 国产91精品久久久久久 | 日本女人一级片 | 中文字幕一区二区三区亚洲精品 | 91porn丨首页入口 | 久久久国产成人精品 | 日本三级黄视频 | 一级白嫩美女毛片免费 | 性做久久久久久蜜桃花 | 欧美日韩亚洲一区 | 亚洲天堂三区 | 久久综合精品国产一区二区三区 | 亚洲人成高清 | 国产亚洲精品一区二区在线观看 | 欧美精品xx| 国产精品亚洲精品不卡 | 在线免费观看h视频 | 欧美成人18| 国产第一页在线观看 | 亚洲激情中文字幕 | 欧美精品福利 | 久草在线网址 | 欧美日韩国产另类一区二区三区 | 一区二区在线欧美日韩中文 | 图片小说亚洲 | 成人国产免费 |