摘要:測(cè)試環(huán)境和產(chǎn)品環(huán)境應(yīng)該使用不同的任務(wù),因?yàn)榉?wù)會(huì)部署到不同的機(jī)器。使用部署設(shè)置時(shí)區(qū)加入程序并安裝包發(fā)布其他資料持續(xù)集成執(zhí)行讀不到環(huán)境變量問(wèn)題文檔
docker run -u root -itd --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins
根據(jù)指導(dǎo)完成注冊(cè)
安裝插件。一定要安裝插件: Publish Over SSH
使用 Jenkins 做集群部署流程
client 發(fā)送編譯指令到 Jenkins Server.
Jenkins Server 從 Git repo 拉取代碼
編譯,打包
把編譯后的結(jié)果通過(guò) ssh push 到業(yè)務(wù)服務(wù)器 server1、server2、server3
配置業(yè)務(wù)服務(wù)器安裝插件 Publish Over SSH
進(jìn)入到 /configure 頁(yè)面。配置 jenknis 的私鑰,和遠(yuǎn)程服務(wù)地址和端口等等。
特別留意Remote Directory,jenkins 推送過(guò)去的文件都會(huì)出現(xiàn)在這個(gè)目錄,設(shè)置遠(yuǎn)程服務(wù)器的絕對(duì)路徑有可能無(wú)效。使用相對(duì)路徑即可。
如果有多臺(tái)機(jī)器,都在這里進(jìn)行配置。另外,需要把 Jenkins 的公鑰,添加到 server1-3 的 ~/.ssh/authorized_keys。
1. ssh jenkins 宿主機(jī) 2. cat /var/jenkins_home/.ssh/id_rsa.pub 3. 把公鑰存放到 server1-3 的`~/.ssh/authorized_keys` 4. 這樣 jenkins 這臺(tái)機(jī)器就可以免密登陸到 server1-3 5. 如果 Jenkins 機(jī)器沒(méi)有 /var/jenkins_home/.ssh/,那么就通過(guò)`ssh-keygen`生成
測(cè)試機(jī)器的連接。
配置發(fā)布任務(wù)。測(cè)試環(huán)境和產(chǎn)品環(huán)境應(yīng)該使用不同的任務(wù),因?yàn)榉?wù)會(huì)部署到不同的機(jī)器。執(zhí)行流程也可能有差異。
1.新建 FreeStyle 項(xiàng)目2. 配置倉(cāng)庫(kù)
配置代碼倉(cāng)庫(kù),git,svn 等等都 ok
Repositories 使用 ssh 的模式。
需要把 /var/jenkins_home/.ssh/id_rsa.pub 添加到倉(cāng)庫(kù)的 access_key 里面。保證 jenkins 可以免密獲取到代碼,這個(gè)是最簡(jiǎn)單那的配置
3. 配置任務(wù)
以 node 項(xiàng)目為例,Jenkins shell 默認(rèn)使用 非交互+非登陸式,所以獲取不到環(huán)境變量。解決辦法第一行需要寫成 #!/bin/bash -l
編譯任務(wù)都在這里完成了。
4. 發(fā)布到遠(yuǎn)程服務(wù)器
添加一個(gè)構(gòu)建后的操作,Send build artifacts over SSH
推送文件到遠(yuǎn)程機(jī)器,在遠(yuǎn)程機(jī)器執(zhí)行備份和重啟