docker+jenkins自動化部署

寫在前面,jenkis不建議用docker安裝,因爲會涉及到很多環境參數,很麻煩,以及像gogs這種開源git服務器,最好老老實實傳統

安裝一下,因爲這種軟件基本是一次性的,不會到處安裝,不像很多服務或者類似做政府項目的,一套代碼需要部署到各個地市。

那麼用docker就非常方便了。

另外linux下rz命令很好用。不是默認支持的,請自行百度。

衆所周知,java生態中比較重要的就是軟件的版本。因此瞭解各個軟件的版本非常重要。

而docker需要在linux系統上安裝,因此瞭解當前操作系統的版本很重要。

若是centos7或者以上,最好。若是centos6.5那麼最好升級內核。然後安裝docker1.8及以上。

Docker只支持64-bit的內核爲3.10以上的Linux系統,不升級內核會特別卡,可以通過下面命令查看當前系統內核版本

uname -r 

以及查看當前linux版本 cat /etc/issue  linux版本在6.5沒關係,但是一定要保證內核版本在3.10以上。

# 查看當前版本:
cat /etc/issue
# 導入public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安裝ELRepo到CentOS-6.8中   
rpm -ivh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
# 安裝**kernel-lt(lt=long-term)**
yum --enablerepo=elrepo-kernel install kernel-lt -y
# 或者安裝kernel-ml(ml=mainline) 
yum --enablerepo=elrepo-kernel install kernel-ml -y
# 編輯/etc/grub.conf文件,修改Grub引導順序
# 確認剛安裝好的內核在哪個位置,然後設置default值(從0開始),一般新安裝的內核在第一個位置,所以設置default=0
# 重啓,查看內核版本號
reboot
uname -r
安裝docker

或者參考下面這個

https://www.cnblogs.com/tymagic/p/10794477.html
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

另外不建議安裝這個版本的docker 只不過我開始不知道被很多版本繞暈了 已經騎虎難下。

建議升級內核可以參考上面 安裝docker網上隨便找篇博客,必須是docker-ce版本。也就是說一旦你看到的博客介紹的不是

docker-ce那麼就可以不用看了,因爲會缺失很多特性。

docker-io docker-engine docker-ce docker-ee 這麼多版本你們分清了嗎。

 

# 1、查看安裝過的docker:
yum list installed | grep docker
docker.x86_64                           2:1.13.1-74.git6e3bb8e.el7.centos
docker-client.x86_64                    2:1.13.1-74.git6e3bb8e.el7.centos
docker-common.x86_64                    2:1.13.1-74.git6e3bb8e.el7.centos
# 2、卸載docker:
sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_64
# 3、刪除容器鏡像:
sudo rm -rf /var/lib/docker
# 4、 重新安裝docker
sudo yum install docker-ce

 

 

若是安裝的是docker1.7,docker1.7不支持在鏡像容器向宿主機cp文件,只支持宿主機向鏡像容器cp文件。

即docker cp命令在1.7版本上是單向的。建議有條件儘量安裝docker1.8以上。爲了解決docker1.7不能向宿主機傳輸文件的問題。

我暫時只能想到的是linux scp命令並且通過建立宿主機和鏡像容器免ssh登陸。這樣就不用輸密碼了。

Linux服務器之間建立信任關係,ssh免密碼登錄。

https://blog.csdn.net/chichuduxing/article/details/68491134

ssh root@IP  /root/test.shell  這樣就能在鏡像容器內執行宿主機 root目錄下的shell腳本。

也能用scp命令從宿主機下載文件

scp [email protected]:/root/test.shell /root/  下載宿主機的test.shell腳本到 docker容器內

docker

service docker stop 停止docker

service docker start 啓動docker

記得將jenkins安裝publish over插件。參考如下博客。

Jenkins入門教程之安裝Publish over SSH插件並配置(六)用於自動部署Spring Boot應用

https://blog.csdn.net/zjh_746140129/article/details/80904789

另外常用docker命令 參考如下博客

https://www.cnblogs.com/sitoi/p/10971356.html

centos忘記mysql密碼方法 參考如下博客

https://blog.csdn.net/Swust_Zeng_zhuo_K/article/details/81989040

有的時候會缺失jar包,需要自己手動把jar包打到倉庫裏面

cd /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.1/bin
./mvn install:install-file -Dfile=/root/ojdbc6-12.1.0.1-atlassian-hosted.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.1-atlassian-hosted -Dpackaging=jar 
./mvn install:install-file -Dfile=/root/sqljdbc4-4.0.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar  

mvn install:install-file -Dfile=/root/jenkins/alipay-sdk-java-20161215.jar   -DgroupId=com.alipay -DartifactId=alipay-sdk-java -Dversion=20161215 -Dpackaging=jar

mvn install:install-file -Dfile=/root/jenkins/alipay-trade-sdk-20161215.jar   -DgroupId=com.alipay -DartifactId=alipay-trade-sdk -Dversion=20161215 -Dpackaging=jar

遇到的問題和踩過的坑如下

網上搜索jenkins自動化部署,能搜索很多。流程都差不多,不在此重複敘述。

想敘述一個重要的點,就是linux是有用戶這麼一個說法的,每安裝一個軟件就會默認給這個軟件創建一個用戶,

比如你安裝electsearch就會創建一個electsearch用戶,那麼你安裝一個jenkins時候就會創建一個jenkins用戶

cat /etc/passwd 查看所有用戶列表

就會看到很多軟件都會有一個和自己軟件名稱一樣的用戶。

那麼就需要把這個用戶加入到root用戶組中使得其有root權限,這樣做的目的是爲了,該軟件有對服務器包括jdk maven

加入到用戶組具體百度一下 因爲一旦弄反了 就會出大事 因爲相當於把root加入到jenkins後 那麼系統上很多服務都起不來了 切記

不能弄反!!!

有使用權限,如果不這樣做,就會報找不到的錯誤。 

  

         gpasswd -a jenkins root
         vi /etc/sysconfig/jenkins               

        service jenkins stop
        service jenkins start  

 

還需要將java路徑添加到jenkins的初始化文件中,在vi /etc/init.d/jenkins 中

其實安裝一個軟件最好 的方式 是安裝完以後看它到底生成了多少個目錄  每個目錄裏面大致看下 做到心中有數

即瞭解一下它的架構,這樣即使在網上搜索,也能做到有的放矢。不會漫無目的。

參考下面網址

http://www.bubuko.com/infodetail-3319816.html

https://blog.csdn.net/huangchao064/article/details/73616320

需要安裝的插件

Maven Integration

Publish Over SSH

Git Parameter

 

參考以下網址

多環境發佈指的是多服務器發佈  https://www.jianshu.com/p/6288703532cf

https://blog.csdn.net/u012547633/article/details/98505231

https://blog.csdn.net/weixin_43742184/article/details/100513733

jenkins多分支選擇 https://www.cnblogs.com/peng-lan/p/12001977.html

centos7防火牆配置  https://www.cnblogs.com/xxoome/p/7115614.html  

多環境 多分支git https://www.cnblogs.com/jiangds/p/10844853.html

jenkins替換鏡像加速 https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html 

清華鏡像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

centos7安裝jenkins rpm方式  https://www.cnblogs.com/li-zhi-long/p/12026499.html

jenkins 各種鏡像地址 http://mirrors.jenkins-ci.org/status.html

jenkins 系列教程 https://blog.csdn.net/zjh_746140129/category_9276512.html

jenkins Process leaked file descriptors  https://blog.csdn.net/weixin_36816337/article/details/82055217

 

 (1) /usr/lib/jenkins/:jenkins安裝目錄,WAR包會放在這裏。
 (2) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在這裏配置。
 (3) /var/lib/jenkins/:默認的JENKINS_HOME。
 (4) /var/log/jenkins/jenkins.log:Jenkins日誌文件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章