CI/CD持续集成与持续交付(下)-------- jenkins的节点管理,用户管理,结合ansible和k8s
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CI/CD持续集成与持续交付(下)-------- jenkins的节点管理,用户管理,结合ansible和k8s相关的知识,希望对你有一定的参考价值。
目录
二. Jenkins
实验环境基于上篇笔记:https://editor.csdn.net/md/?articleId=119616169
1 jenkins节点管理–添加agent节点
不建议在jenkins的master(server6)构建任务,server7作为agent节点,构建任务放在agent端
jenkins是java开发的,agent端安装jdk和git
保证上网
安装插件 ssh agent
节点管理中----新建节点
此时只有master节点
master取消构建,只作调度
交由agent构建
安装插件后,会成功显示agent节点
None verifying 无需校验key
取消ssh,使用shell命令
docker项目选择手动构建
构建成功
查看控制台输出,此时已经由agent节点构建
server7上,查看镜像,此镜像是:删除之前的镜像,新建镜像
2 用户管理
系统管理----> 管理用户
新建用户
创建新用户 jiaojiao ,补全信息
查看用户列表,会有新的用户jiaojiao
以新建用户jiaojiao身份登陆,发现此用户具有全部权限
原因
:
系统管理—>全局安全配置中
默认的是登陆用户可以左任何事
!!!
安装插件Role
安装后通过插件授权
系统管理--->全局安全配置
选择Role-Based Strategy
(类似rbac),设置后除了admin用户以外,其他用户均需要授权才可进行操作
系统管理--->安全
配置中会新增 Manager and Assign Roles
重新以jiaojiao用户登陆,发现没有任何权限!!!
系统管理--->安全--->Manager and Assign Roles
中选择管理角色
管理角色:jiaojiao用户
设定所有以westos开头(westos .*)
的项目jiaojiao用户具有以下权限
分配角色
:
设定jiaojiao为user用户
重新以jiaojiao用户身份登陆,可以看到westos项目!!!
admin用户,创建项目westos01 ,自由风格
此时有三个项目
测试查看用户jiaojiao的权限
可以删除westos01项目
admin用户登陆查看,已不存在westos01项目
3 jenkins结合ansible
在ansible和saltstack之间,通常几百个节点用ansible,因为ansible用ssh连接、几万个节点用saltstack,消息队列更加轻量级。
新建server8主机
查看正在运行的虚拟机:
server1为harbor仓库
server5为gitlab
server6为jenkins,ansible主机
server7为ansible的受控主机
server8为ansible的受控主机
取消agent构建,构建还是交由master
成功删除agent节点
master节点将原来的0修改
master关联项目成功
禁掉docker项目
创建自由风格的ansible项目
查看项目
server6配置ansible仓库,可以使用epel源下载
安装ansible
gitlab远程私有代码仓库中新建仓库
新建playbook仓库,选择私有,初始化自动生成readme文件
查看playbook仓库
本地git端ssh方式克隆远程私有代码仓库gitlab中的playbook仓库
编写playbook.yaml文件
template:
src: httpd.conf.j2 %模板文件:j2
dest: /etc/httpd/conf/httpd.conf
模板更改需要触发:notify,重启apache
配置触发器:handlers,
任一主机安apache,为ansible主机准备j2模板文件
复制httpd.conf文件,修改为j2模板
此模板中使用变量方式定义httpd的端口
参数化构建
prod和test分别为不同的主机
编辑ansible.cfg配置文件
创建清单,server8用于测试,server7用于部署,使用不同的端口
(可以写ip,域名一定要解析)
查看目录整体结构
将本地git端的数据上传到gitlab的playbook仓库中
gitlab中查看playbook仓库中的文件,上传成功!!!
jenkins中的ansible项目构建:
jenkins与gitlab数据同步
ansible项目,手动构建
查看构建历史
查看ansible项目的控制台输出
jenkins端查看,说明gitlab中的ansible项目与jenkins连接成功
!!!
jenkins端,使用jenkins用户进行操作,需要给一个交互式bash
server7,server8
创建devops用户
并修改密码,需要两节点的用户id相同
由于是以jenkins用户调用ansible命令,所以需要设置jenkins用户到目标主机的免密
。
测试免密
server7,server8
sudo授权
只需指定git仓库即可,无需gitlab主动触发
,因为需要手动选择inventory构建参数
选择 参数化构建---选项参数
构建执行shell
在执行playbook时可以指定inventory文件: test、prod
选择参数执行项目先测试test
查看构建历史
查看控制台输出
test为server7,成功部署apache,使用的是8080端口
选择参数执行项目测试prod
查看构建历史
查看控制台输出
prod为server8,成功部署apache,使用的是80端口
4 jenkins结合k8s
方法一:
ssh方式连接k8s master节点,然后执行kubectl命令即可。
方法二:
使用插件的方式管理k8s。
方法二可以查看:
https://blog.csdn.net/weixin_38320674/article/details/106654689?ops_request_misc=&request_id=&biz_id=102&utm_term=jenkins%E7%BB%93%E5%90%88k8s&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-4-.nonecase&spm=1018.2226.3001.4187
以上是关于CI/CD持续集成与持续交付(下)-------- jenkins的节点管理,用户管理,结合ansible和k8s的主要内容,如果未能解决你的问题,请参考以下文章
CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins
CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins