寫在前面,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
(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日誌文件。