Linux企业运维——持续集成与持续交付(下)jenkins节点与用户管理、jenkins结合ansible

本文详细介绍了如何在Linux环境中使用Jenkins进行持续集成与持续交付,包括Jenkins节点与用户管理,以及Jenkins与Ansible的结合使用。在节点管理部分,创建了agent节点进行工作,调整了master节点的角色。用户管理中,创建并限制了用户权限。最后,通过Ansible自动化部署项目到多个服务器节点,实现了CI/CD流程。
摘要由CSDN通过智能技术生成

Linux企业运维——持续集成与持续交付(下)jenkins节点与用户管理、jenkins结合ansible

一、jenkins节点管理

实际工作中master节点只负责调度,需要创建agent节点进行工作,本文创建server4作为agent节点进行工作

server1进入harbor仓库下,查看运行的容器
在这里插入图片描述
server3将jdk发送给server4
在这里插入图片描述
server4安装jdk和git
在这里插入图片描述
jenkins安装SSH Build Agents插件
在这里插入图片描述
进入节点管理界面
在这里插入图片描述
选择新建节点,选择固定节点属性
在这里插入图片描述
编辑agent节点的信息,执行器设为5,远程工作目录在/tmp,设为常用节点,启动方式为ssh
在这里插入图片描述
为SSH添加证书,选择不校验,尽量保持代理在线
在这里插入图片描述
为master节点配置从节点
在这里插入图片描述
将master的构建队列改为0,只负责调度
在这里插入图片描述
server4正常访问外网
在这里插入图片描述
配置docker项目,关闭ssh shell使用shell
在这里插入图片描述
查看控制台输出可以看到成功构建
在这里插入图片描述
docker项目执行报错:因为已经调度到了server4上,不能再通过ssh的方式,已经在本机上了,冲突
在这里插入图片描述
demo项目选择手动构建
在这里插入图片描述
server4查看正在运行的容器可以看到demo正常运行,测试访问正常
在这里插入图片描述

二、jenkins用户管理

在页面点击选择管理用户
在这里插入图片描述
选择新建用户,填写注册信息
在这里插入图片描述
使用刚才创建的用户进行登录
在这里插入图片描述
可以看到新创建的用户拥有管理员权限,可以进行全部操作,我们需要将其改为普通权限用户
在这里插入图片描述
使用管理员账户登录
在这里插入图片描述
安装基于角色的访问控制插件
在这里插入图片描述
在系统管理中选择全局安全配置
在这里插入图片描述
授权策略由用户可以做任何事改为基于角色权限
在这里插入图片描述
然后会出现角色的管理和分配模块
在这里插入图片描述
进入,选择角色管理
在这里插入图片描述
添加全局角色users,只为其赋予读的权限
在这里插入图片描述
添加项目角色demo,赋予其查看凭据,以及任务和运行的相关操作,对所有以demo开头(westos .*)的项目都生效
在这里插入图片描述
点击角色分配
在这里插入图片描述
为刚才创建的yao用户分配users全局角色和demo项目角色
在这里插入图片描述
现在再使用yao这个用户进行登录
在这里插入图片描述
现在只能看到demo项目且无法进行配置了
在这里插入图片描述
登入admin用户创建一个demo开头的项目
在这里插入图片描述
创建完毕
在这里插入图片描述
再登入yao用户,也可以看到demo01这个项目
在这里插入图片描述
使用yao用户对demo01项目进行删除
在这里插入图片描述
删除完成,剩下demo项目
在这里插入图片描述

三、jenkins结合ansible

3.1、实验环境准备

真实主机开启虚拟机server5
在这里插入图片描述
查看正在运行的虚拟机
在这里插入图片描述
在真实主机上为server5添加域名解析
在这里插入图片描述
jenkins配置中将agent1节点断开连接
在这里插入图片描述
删除agent1节点
在这里插入图片描述
点击配置master节点
在这里插入图片描述
将执行器数量改为2
在这里插入图片描述
禁用docker项目
在这里插入图片描述

3.2、项目部署

创建一个新的项目,名为ansible
在这里插入图片描述
查看正在运行的虚拟机
server2为gitlab仓库
server3为jenkins,ansible主机
server4和server5是ansible的受控节点
在这里插入图片描述
真实主机进入到ansible目录下
在这里插入图片描述
server3编辑ansible.repo文件,将baseurl地址设为真实主机的absible目录,然后安装ansible
在这里插入图片描述
在gitlab新建playbook代码仓库,设为私有,使用自述文件初始化仓库
在这里插入图片描述
选择使用ssh克隆
在这里插入图片描述
server2克隆gitlab的项目playbook,可以看到克隆成功
在这里插入图片描述
进入到playbook目录,编辑playbook.yaml配置文件
在这里插入图片描述

[root@server1 playbook] cat playbook.yaml
---
- hosts: all
  tasks:
  - name: install apache
    yum:
      name: httpd
      state: present
  - name: configure apache
    template:
      src: httpd.conf.j2
      dest: /etc/httpd/conf/httpd.conf
    notify: restart apache
  - name: start apache
    service:
      name: httpd
      enabled: yes
      state: started
  handlers:
  - name: restart apache
    service:
      name: httpd
      state: restarted

在playbook目录中创建inventory目录并进入。
inventory是ansible中的部署对象主机,即playbook.yaml中的hosts包含的对象
创建并编辑prod文件,写入server5节点和端口信息,用于部署
创建并编辑test文件,写入server4节点和端口信息,用于测试
在这里插入图片描述
在playbook目录下创建并编辑ansible.cfg配置文件
在这里插入图片描述

[root@server1 playbook] cat ansible.cfg 
[defaults]
command_warnings=False
remote_user=devops

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

server4安装httpd服务
在这里插入图片描述
将httpd.conf文件发送给server2
在这里插入图片描述
使用变量方式定义httpd的端口
在这里插入图片描述
将httpd.conf文件改名为httpd.conf.j2
在这里插入图片描述
server2使用tree命令查看playbook目录结构如图
在这里插入图片描述
server2使用git命令添加并提交上传playbook至gitlab
在这里插入图片描述
访问gitlab页面可以看到项目
在这里插入图片描述
复制项目的克隆链接
在这里插入图片描述
只需指定git仓库即可,无需gitlab主动触发,因为需要手动选择inventory构建参数
jenkins页面中配置ansible项目,指定源码的URL,使用ssh证书,指定分支为main
在这里插入图片描述
触发器的执行命令写个简单的命令ls -l
在这里插入图片描述
在ansible的控制台输出日志中可以看到执行正常
在这里插入图片描述
现在为节点之间创建ssh免密
server3切换到/var/lib/jenkins/workspace目录下,查看ansible.cfg文件详细信息
在这里插入图片描述
进入jenkens用户,查看密码
在这里插入图片描述
在这里插入图片描述
为jenkins创建交互式bash,进入jenkins,设置远端用户为devops
在这里插入图片描述
server4添加devops用户,并修改密码
在这里插入图片描述
server5也添加devops用户,修改密码,用户id要和server4的一致
在这里插入图片描述
server3生成ssh密钥
在这里插入图片描述
将server3的jenkens用户创建的ssh密钥给server4和server5的devops用户都发一份
在这里插入图片描述
测试ssh登录,现在server3的jenkens用户可以免密登陆server4和server5的devops用户
在这里插入图片描述
server4和server5为devops用户授权
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在jenkins页面配置ansible项目,勾选参数化构建,填写选项参数,变量名称为deploy,选项是prod和test
在这里插入图片描述
编写执行shell:
先切换到工作目录,根据playbook.yaml文件的配置,ansible会自动部署在inventory目录下的test或prod
在这里插入图片描述
先使用test测试构建项目
在这里插入图片描述
在控制台输出日志中可以看到执行成功
在这里插入图片描述
server4查看端口状态可以看到8080端口处于开放状态
在这里插入图片描述
现在使用prod参数构建项目
在这里插入图片描述
查看控制台输出日志,显示部署成功
在这里插入图片描述
在server5上查看端口状态,可以看到80端口开放
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值