目录

  • 二. Jenkins
  • 1 jenkins节点管理–添加agent节点
  • 2 用户管理
  • 3 jenkins结合ansible
  • 4 jenkins结合k8s


二. Jenkins

1 jenkins节点管理–添加agent节点

不建议在jenkins的master(server6)构建任务,server7作为agent节点,构建任务放在agent端

jenkins是java开发的,agent端安装jdk和git

jenkins构建云节点 乱码 jenkins节点管理_apache

jenkins构建云节点 乱码 jenkins节点管理_系统管理_02


保证上网

jenkins构建云节点 乱码 jenkins节点管理_git_03

安装插件 ssh agent

jenkins构建云节点 乱码 jenkins节点管理_apache_04


节点管理中----新建节点

jenkins构建云节点 乱码 jenkins节点管理_git_05


此时只有master节点

jenkins构建云节点 乱码 jenkins节点管理_apache_06


master取消构建,只作调度

jenkins构建云节点 乱码 jenkins节点管理_git_07

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_08


交由agent构建

jenkins构建云节点 乱码 jenkins节点管理_系统管理_09


安装插件后,会成功显示agent节点

jenkins构建云节点 乱码 jenkins节点管理_系统管理_10

None verifying 无需校验key

jenkins构建云节点 乱码 jenkins节点管理_apache_11

jenkins构建云节点 乱码 jenkins节点管理_git_12

jenkins构建云节点 乱码 jenkins节点管理_系统管理_13

取消ssh,使用shell命令

jenkins构建云节点 乱码 jenkins节点管理_系统管理_14


docker项目选择手动构建

jenkins构建云节点 乱码 jenkins节点管理_git_15


构建成功

jenkins构建云节点 乱码 jenkins节点管理_系统管理_16


查看控制台输出,此时已经由agent节点构建

jenkins构建云节点 乱码 jenkins节点管理_系统管理_17


server7上,查看镜像,此镜像是:删除之前的镜像,新建镜像

jenkins构建云节点 乱码 jenkins节点管理_系统管理_18

2 用户管理

系统管理----> 管理用户

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_19


新建用户

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_20


创建新用户 jiaojiao ,补全信息

jenkins构建云节点 乱码 jenkins节点管理_git_21


查看用户列表,会有新的用户jiaojiao

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_22


以新建用户jiaojiao身份登陆,发现此用户具有全部权限

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_23

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_24


原因

系统管理—>全局安全配置中

jenkins构建云节点 乱码 jenkins节点管理_git_25


默认的是登陆用户可以左任何事!!!

jenkins构建云节点 乱码 jenkins节点管理_apache_26


安装插件Role 安装后通过插件授权

jenkins构建云节点 乱码 jenkins节点管理_apache_27

jenkins构建云节点 乱码 jenkins节点管理_git_28

系统管理--->全局安全配置

jenkins构建云节点 乱码 jenkins节点管理_系统管理_29


选择Role-Based Strategy(类似rbac),设置后除了admin用户以外,其他用户均需要授权才可进行操作

jenkins构建云节点 乱码 jenkins节点管理_git_30


系统管理--->安全配置中会新增 Manager and Assign Roles

jenkins构建云节点 乱码 jenkins节点管理_git_31


重新以jiaojiao用户登陆,发现没有任何权限!!!

jenkins构建云节点 乱码 jenkins节点管理_apache_32


系统管理--->安全--->Manager and Assign Roles中选择管理角色

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_33


管理角色:jiaojiao用户

jenkins构建云节点 乱码 jenkins节点管理_系统管理_34


设定所有以westos开头(westos .*)的项目jiaojiao用户具有以下权限

jenkins构建云节点 乱码 jenkins节点管理_apache_35

分配角色

jenkins构建云节点 乱码 jenkins节点管理_git_36


设定jiaojiao为user用户

jenkins构建云节点 乱码 jenkins节点管理_git_37


重新以jiaojiao用户身份登陆,可以看到westos项目!!!

jenkins构建云节点 乱码 jenkins节点管理_系统管理_38


admin用户,创建项目westos01 ,自由风格

jenkins构建云节点 乱码 jenkins节点管理_apache_39


此时有三个项目

jenkins构建云节点 乱码 jenkins节点管理_系统管理_40


测试查看用户jiaojiao的权限

jenkins构建云节点 乱码 jenkins节点管理_apache_41


可以删除westos01项目

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_42

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_43


admin用户登陆查看,已不存在westos01项目

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_44

3 jenkins结合ansible

在ansible和saltstack之间,通常几百个节点用ansible,因为ansible用ssh连接、几万个节点用saltstack,消息队列更加轻量级。

新建server8主机

jenkins构建云节点 乱码 jenkins节点管理_git_45


查看正在运行的虚拟机:

server1为harbor仓库
server5为gitlab
server6为jenkins,ansible主机
server7为ansible的受控主机
server8为ansible的受控主机

jenkins构建云节点 乱码 jenkins节点管理_系统管理_46


取消agent构建,构建还是交由master

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_47


成功删除agent节点

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_48


master节点将原来的0修改

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_49

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_50


master关联项目成功

jenkins构建云节点 乱码 jenkins节点管理_系统管理_51

jenkins构建云节点 乱码 jenkins节点管理_系统管理_52


禁掉docker项目

jenkins构建云节点 乱码 jenkins节点管理_git_53

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_54

创建自由风格的ansible项目

jenkins构建云节点 乱码 jenkins节点管理_apache_55


查看项目

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_56


server6配置ansible仓库,可以使用epel源下载

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_57

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_58

jenkins构建云节点 乱码 jenkins节点管理_git_59


安装ansible

jenkins构建云节点 乱码 jenkins节点管理_git_60


gitlab远程私有代码仓库中新建仓库

jenkins构建云节点 乱码 jenkins节点管理_系统管理_61

jenkins构建云节点 乱码 jenkins节点管理_apache_62


新建playbook仓库,选择私有,初始化自动生成readme文件

jenkins构建云节点 乱码 jenkins节点管理_git_63


查看playbook仓库

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_64


本地git端ssh方式克隆远程私有代码仓库gitlab中的playbook仓库

jenkins构建云节点 乱码 jenkins节点管理_apache_65

编写playbook.yaml文件

template:
      src: httpd.conf.j2 %模板文件:j2
      dest: /etc/httpd/conf/httpd.conf
模板更改需要触发:notify,重启apache
配置触发器:handlers,

jenkins构建云节点 乱码 jenkins节点管理_apache_66


任一主机安apache,为ansible主机准备j2模板文件

jenkins构建云节点 乱码 jenkins节点管理_apache_67


jenkins构建云节点 乱码 jenkins节点管理_apache_68


复制httpd.conf文件,修改为j2模板

jenkins构建云节点 乱码 jenkins节点管理_系统管理_69


此模板中使用变量方式定义httpd的端口

jenkins构建云节点 乱码 jenkins节点管理_apache_70

参数化构建prod和test分别为不同的主机

jenkins构建云节点 乱码 jenkins节点管理_系统管理_71


编辑ansible.cfg配置文件

jenkins构建云节点 乱码 jenkins节点管理_系统管理_72


创建清单,server8用于测试,server7用于部署,使用不同的端口(可以写ip,域名一定要解析)

jenkins构建云节点 乱码 jenkins节点管理_git_73


查看目录整体结构

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_74

将本地git端的数据上传到gitlab的playbook仓库中

jenkins构建云节点 乱码 jenkins节点管理_系统管理_75

jenkins构建云节点 乱码 jenkins节点管理_apache_76


gitlab中查看playbook仓库中的文件,上传成功!!!

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_77


jenkins构建云节点 乱码 jenkins节点管理_git_78

jenkins中的ansible项目构建:
jenkins与gitlab数据同步

jenkins构建云节点 乱码 jenkins节点管理_git_79

jenkins构建云节点 乱码 jenkins节点管理_git_80


ansible项目,手动构建

jenkins构建云节点 乱码 jenkins节点管理_git_81


查看构建历史

jenkins构建云节点 乱码 jenkins节点管理_系统管理_82


查看ansible项目的控制台输出

jenkins构建云节点 乱码 jenkins节点管理_apache_83


jenkins端查看,说明gitlab中的ansible项目与jenkins连接成功!!!

jenkins构建云节点 乱码 jenkins节点管理_系统管理_84

jenkins端,使用jenkins用户进行操作,需要给一个交互式bash

jenkins构建云节点 乱码 jenkins节点管理_apache_85

jenkins构建云节点 乱码 jenkins节点管理_git_86


server7,server8

创建devops用户并修改密码,需要两节点的用户id相同

jenkins构建云节点 乱码 jenkins节点管理_系统管理_87

jenkins构建云节点 乱码 jenkins节点管理_apache_88


由于是以jenkins用户调用ansible命令,所以需要设置jenkins用户到目标主机的免密

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_89


jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_90

jenkins构建云节点 乱码 jenkins节点管理_git_91


测试免密

jenkins构建云节点 乱码 jenkins节点管理_apache_92


server7,server8

sudo授权

jenkins构建云节点 乱码 jenkins节点管理_git_93

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_94

只需指定git仓库即可,无需gitlab主动触发,因为需要手动选择inventory构建参数 选择 参数化构建---选项参数

jenkins构建云节点 乱码 jenkins节点管理_系统管理_95


构建执行shell

执行playbook时可以指定inventory文件: test、prod

jenkins构建云节点 乱码 jenkins节点管理_apache_96


选择参数执行项目先测试test

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_97


查看构建历史

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_98


查看控制台输出

jenkins构建云节点 乱码 jenkins节点管理_git_99


test为server7,成功部署apache,使用的是8080端口

jenkins构建云节点 乱码 jenkins节点管理_apache_100


选择参数执行项目测试prod

jenkins构建云节点 乱码 jenkins节点管理_系统管理_101


查看构建历史

jenkins构建云节点 乱码 jenkins节点管理_jenkins构建云节点 乱码_102

查看控制台输出

jenkins构建云节点 乱码 jenkins节点管理_apache_103


prod为server8,成功部署apache,使用的是80端口

jenkins构建云节点 乱码 jenkins节点管理_apache_104

4 jenkins结合k8s

jenkins构建云节点 乱码 jenkins节点管理_git_105

方法一:

ssh方式连接k8s master节点,然后执行kubectl命令即可。

方法二:

使用插件的方式管理k8s。