导航网站 win8风格,百度搜索热词排行榜,物联网工程专业就业方向及前景,网站开发项目范围说明书意义目录
一、实验
1.蓝绿发布准备
2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布
二、问题
1.手动构建Jenkins前端项目CI流水线报错
2.如何优化手动构建流水线选项参数 一、实验
1.蓝绿发布准备
#xff08;1#xff09;环境
表1 蓝绿发布…目录
一、实验
1.蓝绿发布准备
2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布
二、问题
1.手动构建Jenkins前端项目CI流水线报错
2.如何优化手动构建流水线选项参数 一、实验
1.蓝绿发布准备
1环境
表1 蓝绿发布相关主机
服务IP地址端口主机名LB192.168.204.138017tomcatservice1192.168.204.1808019K8S master1service2192.168.204.1818019K8S) node1service3192.168.204.1828019(K8S) node2
2策略
service1服务 1.1.2 CD部署制品 升级1.1.3先CI下载制品再CD部署制品
service2服务 1.1.2 CD部署制品升级 1.1.3先CI下载制品再CD部署制品
service3服务 1.1.2 CD部署制品服务下线升级 1.1.3先CI下载制品再CD部署制品服务上线
3修改3台service服务的nginx配置文件 root目录 1 user nginx;2 worker_processes auto;3 4 error_log /var/log/nginx/error.log notice;5 pid /var/run/nginx.pid;6 7 8 events {9 worker_connections 1024;10 }11 12 13 http {14 include /etc/nginx/mime.types;15 default_type application/octet-stream;16 17 log_format main $remote_addr - $remote_user [$time_local] $request 18 $status $body_bytes_sent $http_referer 19 $http_user_agent $http_x_forwarded_for;20 21 access_log /var/log/nginx/access.log main;22 23 sendfile on;24 tcp_nopush on;25 tcp_nodelay on;26 types_hash_max_size 2048;27 28 29 keepalive_timeout 65;30 31 #gzip on;32 33 include /etc/nginx/conf.d/*.conf;34 35 36 server {37 listen 8099;38 server_name _;39 root /usr/share/nginx/html/devops03-devops-ui;40 41 # Load configuration files for the default server block.42 include /etc/nginx/default.d/*.conf;43 44 location / {45 }46 47 error_page 404 /404.html;48 location /40x.html {49 }50 51 error_page 500 502 503 504 /50x.html;52 location /50x.html {53 }54 }55 4Jenkins手动构建前端项目CD流水线 5成功 6LB主机修改nginx配置文件
# vim /etc/nginx/nginx.conf 1 2 user nginx;3 worker_processes auto;4 5 error_log /var/log/nginx/error.log notice;6 pid /var/run/nginx.pid;7 8 9 events {10 worker_connections 1024;11 }12 13 14 http {15 upstream webservers {16 server 192.168.204.180:8099 weight100;17 server 192.168.204.181:8099 weight100;18 server 192.168.204.182:8099 weight100;19 }20 include /etc/nginx/mime.types;21 default_type application/octet-stream;22 23 log_format main $remote_addr - $remote_user [$time_local] $request 24 $status $body_bytes_sent $http_referer 25 $http_user_agent $http_x_forwarded_for;26 27 access_log /var/log/nginx/access.log main;28 29 sendfile on;30 #tcp_nopush on;31 32 33 keepalive_timeout 65;34 35 #gzip on;36 37 include /etc/nginx/conf.d/*.conf;38 39 40 server {41 listen 8017;42 location / {43 proxy_pass http://webservers;44 }45 }46 }7重启服务监听8017端口
# vim /etc/nginx/nginx.conf # nginx -t# netstat -antlp | grep 8017# service nginx restart# systemctl restart nginx.service (8) 测试负载均衡
curl http://127.0.0.1:8017 9watch命令观察service版本变化
# watch -n 1 curl http://127.0.0.1:8017/ -s 2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布
1GitLab前端项目添加RELEASE-1.1.3分支 (2) Jenkins修改共享库流水线脚本路径 3Jenkins手动构建前端项目CI流水线 4成功 5Nexus查看制品 6 修改LB的nginx配置文件service3下线K8S node2 节点
# vim /etc/nginx/nginx.conf
……
server 192.168.204.181:8099 down;
……# service nginx restart# systemctl restart nginx.service (7) Jenkins手动构建前端项目CD流水线到node1 节点 8 watch命令观察service版本变化
# watch -n 1 curl http://127.0.0.1:8017/ -s 9Jenkins手动构建前端项目CD流水线到node2节点 10 修改LB的nginx配置文件service3上线K8S node2 节点
# vim /etc/nginx/nginx.conf# service nginx restart# systemctl restart nginx.service 11Jenkins手动构建前端项目CD流水线到master1节点 12 watch命令观察service版本变化
# watch -n 1 curl http://127.0.0.1:8017/ -s 二、问题
1.手动构建Jenkins前端项目CI流水线报错
1报错
ERROR: Couldnt find any revision to build. Verify the repository and branch configuration for this job.2原因分析
分支名错误 3解决方法 GitLab前端项目确认添加RELEASE-1.1.3分支 构建时输入正确的分支名称 2.如何优化手动构建流水线选项参数
1Active Choices 插件
Active Choices 插件用于自由式Jenkins参数化工作创建脚本化、动态和交互式作业参数。主动选择参数可以动态更新并可以呈现为组合框复选框单选按钮或丰富的HTML UI小部件。主动选择参数使用Groovy编写脚本或者(可选)Scriptler Groovy脚本。这些定制脚本支持使用Jenkins Java API、系统环境变量、全局节点属性以及可能的外部Java和Javascript库。安装插件后有三种新的参数类型可用:
1主动选择参数
2主动选择反应参数
3主动选择反应引用参数2三种 Active Choices parameter 类型的行为和呈现特征 3安装插件 3更新前效果 4更新
return [
ansible,
saltstack
] if (deployTool.equals(ansible)){return [192.168.204.180,192.168.204.181,192.168.204.182]
}
if (deployTool.equals(saltstack)){return [tomcat,jenkins]
} 5更新后效果