Followme Devops step by step
接著上次分享的devops歷程[Followme Devops實(shí)踐之路], 大家希望能夠出一個(gè)step by step手冊, 那今天我就來和手把手來一起搭建這么一套環(huán)境, 演示整個(gè)過程!
實(shí)驗(yàn)環(huán)境需要準(zhǔn)備docker /docker compose
建議大家使用國外的vps學(xué)習(xí),?不需要考慮網(wǎng)絡(luò)/gwf的問題/方便
(本demo搭建在linode上面,?注冊可以免費(fèi)使用2個(gè)月)https://www.linode.com/?r=548a820eda1d06ec584ea4b0c72ce02db6f5910c
先clone下代碼
Git clone?https://github.com/FollowmeTech/jenkins-cicd.git
相關(guān)的文件和解釋如下:
架構(gòu)圖如下
我們需要依賴 docker register 和?portainer
為此,我們寫了一個(gè)簡單的
register-portainer-docker-compose.yaml文件, 方便快熟演示一件啟動(dòng)
(生產(chǎn)環(huán)境中請使用harbor替代docker-register)
docker-compose -f?register-portainer-docker-compose.yaml?-d 啟動(dòng)
成功啟動(dòng)之后, 我們需要設(shè)置portainer的用戶名密碼
需要登陸下http://ip:9000設(shè)置portainer的用戶名密碼(12345678)
到此, docker register 和portainer就以及搭建完成了!!!
接下來準(zhǔn)備啟動(dòng)Jenkins docker鏡像
我們需要先修改配置文件docker-compose.ci.env,把相關(guān)的信息注入到j(luò)enkins-ci中
編輯dev環(huán)境下的portainer, docker register相關(guān)信息
(Ps:?由于是演示demo,?所以,我們就只配置了dev的相關(guān)配置
在真實(shí)場景中,?配置好, beta /prod?就可以支持發(fā)布到beta和prod相關(guān)的環(huán)境了)
Docker-compose up -d 啟動(dòng)Jenkins
待Jenkins安裝完成之后
登陸http://ip:8080設(shè)置Jenkins用戶名密碼
這個(gè)時(shí)候不要選擇安裝任何plugins
我們通過工具來導(dǎo)入plugins, tools文件下面有一個(gè)butler用來導(dǎo)入plugins
先設(shè)置tools下面的運(yùn)行權(quán)限, 然后執(zhí)行命令
等待導(dǎo)入完成相關(guān)的Jenkins需要使用的插件
Jenkins相關(guān)的配置就全部完成了之后
登陸到Jenkins.
---------配置git auth--------
(由于我這里用的是github上的一個(gè)demo,所以可以不用配置, 具體大家搜索下配置私有倉庫的方式)
---------創(chuàng)建項(xiàng)目------------
選擇[]this project is parameterized !
我們需要配合使用git-flow ,和之前配置的docker-compose-ci.env
發(fā)布系統(tǒng)可以簡化為
”完成了一個(gè)功能, 發(fā)布到指定的環(huán)境”
那么這里就有2個(gè)變量
1. 完成的功能, 我們使用分支來解決, 某個(gè)分支來承載某個(gè)功能
2. 發(fā)布到指定的環(huán)境, 我們采用環(huán)境變量來解決
所以這里要使用兩個(gè)Jenkins插件, 分別來解決上面的問題
編寫execute-shell;
Execute-shell 分成四個(gè)部分
1. Build source code
a. 例如donet publish ,npm buid:env… 得到二進(jìn)制包
2. Build docker image
a. 依賴CHANGELOG ,來生成docker image的版本號
docker build -t $local_docker_image_name .
3. Push docker image to register
a. docker tag $local_docker_image_name $full_docker_image_name
b. docker push $full_docker_image_name
4. Deploy docker by portainer-api
a. python /root/pubtool/main.py
--deploy_env=$env //把相關(guān)的部署環(huán)境傳遞進(jìn)去
--docker_env="ASPNETCORE_ENVIRONMENT=Development"?//docker env傳遞
--node=1 //要部署在portainer的那個(gè)節(jié)點(diǎn)上!
--container_name="$dockerImgName" //container_name
--docker_image="$local_docker_image_name" //要部署的dockerimage
--net="bridge" //網(wǎng)絡(luò)模式
--port="6666:80" //網(wǎng)絡(luò)映射
一切配置完成, 就可以進(jìn)行build-deploy了
項(xiàng)目發(fā)布完成!!!
:
本環(huán)境demo:
為了方便大家快熟感受, 我搭建了一個(gè)play環(huán)境
大家可以向?https://github.com/FollowmeTech/jenkins-cicd-practise?提交代碼
再登陸?https://ci.rileme.club?,選擇相應(yīng)的分支進(jìn)行build發(fā)布 (play/123456)
項(xiàng)目發(fā)布完成, 快熟預(yù)覽效果?http://demo.rileme.club
如有感興趣的同志
也可以加入微信群進(jìn)行討論
Ps:招聘中
有興趣的小伙伴read more(https://github.com/FollowmeTech/hire/blob/master/dotnet.md)
相關(guān)文章:
Followme Devops實(shí)踐之路
持續(xù)集成配置之Nuget
VSTS + XX云服務(wù)器構(gòu)建netcore+docker持續(xù)集成交付部署
ASP.NET Core + Docker + Jenkins + gogs + CentOS 從零開始搭建持續(xù)集成
原文地址:?https://github.com/FollowmeTech/jenkins-cicd
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的Followme Devops step by step的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core应用程序容器化、
- 下一篇: 开源若要天下闻,掌声须给教育人