本篇主要涉及理论知识,附带一些实战练习
我没有记录全部的内容,这个课多少有点逆天了,只记录我觉得有意思的知识,真的太粪了,真有神人会用ansible-navigator吗
RHAAP介绍RHAAP(RedHat Ansible Automation Platform)红帽Ansible自动化平台,其实就是开源的Ansible
由Ansible Core和Ansible Content Collections组成
Ansible Core提供了Ansible playbook的基本功能,比如循环、条件等
相当于Ansible阉割版本
Ansible Content Collections为...
这是一个系统初始化中的配置,一般会集成到PXE,或者ansible中使用
在较新的Linux发行版(特别是从RHEL 7/CentOS 7和基于这些版本的发行版,如Fedora)开始,网络接口采用了基于硬件特性的预测性命名规则(Predictable Network Interface Names)。这意味着网络接口不再使用传统的 eth0, eth1 等命名方式,而是使用如 enp0s3, ens33 等更具描述性的名称。
兼容性:一些旧软件或脚本可能依赖于传统的网络接口命名方式。
简化配置:对于管理员来说,传统的命名方式可能更直观和简单。
自动化部署:在自动化部署环境中,...
项目概述场景概述公有云gitlab存放dockerfile,公有云jenkins现在要求公有gitlab更新时,自动构建dockerfile镜像并部署到公有、私有两套k8s
现有条件
允许创建新git仓库jenkins现有shell项目,拉取git代码后构建,使用容器ssh部署到公有环境
主要问题
不允许打vpn可以用jenkins webhook感知gitlab更新,但jenkins无法连接私有k8s即私有k8s无法感知gitlab更新
解决方案
创建新的B git,根据容器要求创建helm chart存放在B中
构建声明式jenkinsfile
当gitlab更新时,触发jenkin...
现在如果我想要在生产环境中对jenkins流水线的webhook进行测试该怎么做?
难道要反复改生产git,然后等jenkins流水线启动吗?
有没有更方便的方法
有,就是它Generic Webhook Trigger
https://plugins.jenkins.io/generic-webhook-trigger/
Generic Webhook Trigger它也是一种webhook 相当于jenkins原生的webhook来讲,它更加通用与方便,毕竟是”Generic”的
它有三种触发方式:
Query parameter /invoke?token=T...
这两天在做jenkins流水线,在从节点中构建,但是出现一个奇怪的现象
我的流水线需要拉取多个凭证,对多个git仓库进行操作,但是经常出现A git可以拉取但B git无法拉取的问题
报错信息
stderr: remote: The project you were looking for could not be found or you don’t have permission to view it.fatal: repository ‘https://xxxx.git/‘ not found
正常情况下git会使用jenkins提供的凭证进行访问,那就不该出现这种问题
出现这种现...
jenkins与k8s的对接有多种方法:
jenkins与k8s的插件对接说明
使用clouds插件对接在jenkins执行构建时,k8s上会运行一个jnlp节点,本质上是一种jenkins主从架构的slave节点
jnlp节点通过调用k8s的API,在k8s中创建资源
这种方法比较复杂,因为很多时候jnlp镜像都是需要自己装docker、maven和jdk环境的,还要调整jenkins的设置
jenkins与k8s的脚本对接说明
在k8s的master节点上创建jenkins的工作目录,将其作为jenkins-slave使用,写入脚本创建资源
流程说明:添加jenkins-slave→...
pipeline相当于是将自由风格、maven项目等全部流程通过pipeline脚本进行串联
流程概述
gitlab(checkout)→jenkins→maven编译→docker镜像构建→推送私仓→docker测试→docker发布
环境说明
123456789101112131415161718192021222324252627282930313233343536373839404142434445软件版本:CentOS 7.9.2009jenkins 2.462.3gitlab 17.4maven 3.9.9jdk 17.0.12 2024-07-16 LTSjdk 11.0...
准备工作
在jenkins的工作节点上安装maven与jdk环境准备一个git,里面包含一个java项目jenkins安装maven插件
安装maven1234567891011wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gztar -xf apache-maven-3.9.9-bin.tar.gzmv apache-maven-3.9.9 /usr/local/mavenecho "export PATH=/usr/local/maven/bin/:...
连接gitlab使用http连接git仓库
在凭据中添加git项目开发者的账号密码
执行构建后,代码就会被自动拉取到对应项目的工作目录下
123ls /var/lib/jenkins/workspace/free_style_jobbin conf lib NOTICE RELEASE-NOTES tempBUILDING.txt CONTRIBUTING.md LICENSE README.md RUNNING.txt webapps
shell脚本上传代码准备脚本
1234567891011121314...
减轻主节点压力
构建完成的成果会放在从节点,也可以使用脚本将其移动位置
连接从节点配置
代理需要安装jdk环境不然就会报错
我使用的是jenkins-2.462.3-LTS
需要安装jdk11,如果装jdk8会报错
123456rpm -ivh jdk-11.0.24_linux-x64_bin.rpmjava -versionjava version "11.0.24" 2024-07-16 LTSJava(TM) SE Runtime Environment 18.9 (build 11.0.24+7-LTS-271)Java HotSpot(TM) 64-Bit...