Jenkins Pipeline局部变量
变量未定义在编写Jenkinsfile时,经常会遇到变量问题,明明已经定义过了,但是函数是就是无法读取。例如: 123456789101112131415161718def some_var = "some value"def pr() { def another_var = "another " + some_var echo "${another_var}"}pipeline { agent any stages { stage ("Run") { steps { pr() } } }} 将获得如下错误: 1groovy.lang.MissingPropertyException: No such property: some_var for cla...
nginx stream代理多个网站
在一些特殊场景下,尤其是多网络区的环境中,难免使用proxy来代理请求。其中HTTPS会提供更安全的数据传输,同时也添加了代理配置的复杂性(特别是证书的管理)。 通过nginx ngx_stream_ssl_preread_module模块,可以使用四层代理代理不同的服务。它允许从 ClientHello 消息中提取信息,而不会终止 SSL/TLS,例如提取通过 SNI 请求的服务器名称并保存在变量$ssl_preread_server_name中,于是我们可以通过对该变量进行转发请求到对应的上游服务。 配置示例如下: proxy 1配置: 12345678stream { server { listen 443; resolver 8.8.8.8; proxy_pass 10.0.0.4:10443; ssl_preread on; }} proxy 2 配置 123456789101112131415161718192021stream ...
Ansible kubernetes.core 模块的使用
介绍Ansible Guide: https://docs.ansible.com/ansible/latest/collections/kubernetes/core/index.html#description code: https://github.com/ansible-collections/kubernetes.core 模块列表:https://github.com/ansible-collections/kubernetes.core#modules kubernetes.core可以自动化管理kubernetes或openshift集群的应用与资源对象,以及集群的运维管理。 该collection环境要求:kubernetes >= 1.19python >= 3.6ansible >= 2.9.17 Moduleskubernetes.core collection包含有多个模块插件:inventory plugin, lookup plugin, connection plugin, K8s filter p...
Bash中的换行
换行在平常的shell编程中是经常遇到的,但是有时也会忽略掉一些问题。本篇中将会介绍多种方式实现输出换行的方法。 使用 echoecho 自带换行echo 命令输出字符串,在最后后会添加一个换行 123root@Michael:~# echo hello worldhello worldroot@Michael:~# 添加 -n 可以禁用echo最后的换行 12root@Michael:~# echo -n hello worldhello worldroot@Michael:~# 换行符”\n”但是当我们使用bash执行以下命令时,发现它并没有换行 123root@Michael:~# bash -c "echo \"\n\""\nroot@Michael:~# 而是需要加一个 -e 1234root@Michael:~# bash -c "echo -e \"\n\""root@Michael:~# 从echo的说明中可以看到 -e 指的是让转义符生效,其中有: 1234567891011121...
OpenResty
什么是OpenRestyOpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。可用于实现: 路由控制 高并发入口 动态服务降级 动态负载均衡 WAF应用防火墙 安装OpenResty 二进制安装 123[root@localhost ~]# yum-config-manager --add-repo https://openresty.org/yum/cn/centos/OpenResty.repo[root@localhost ~]# yum install openresty -y[root@localhost ~]# systemctl start openresty Docker 安装 1docker run -e KEY_ENV --name proxy --rm -p 443:443 -p 80:80 -v ~/openresty/:/etc/nginx/ docker.io/op...
Github使用技巧
快捷键Github快捷键官方文档 S, 快速搜索 T, 搜索当前项目文件 L, 跳转文件行号 B, 查看文件历史改动记录 ., 代码库将会在vscode online中打开,方便代码阅读 Ctrl + K, 命令面板 高级搜索 仓库搜索限定符Github上搜索仓库官方说明go in:name star:>=1000 pushed:>2022-06-01 language:gojenkins in:readme in 限定符范围: in:name, jquery in:name 匹配名称中带有“jquery”的存储库。 in:description, jquery in:name,description 匹配名称或说明中带有“jquery”的存储库。 in:topics, jquery in:topics 将带“jquery”标签的存储库匹配为主题。 in:readme, jquery in:readme 匹配自述文件中提及“jquery”的存储库。 repo:owner/name, repo:octocat/hello-world...
docker in docker测试docker的proxy功能
docker in docker是什么?顾名思义,docker in docker就是在docker容器中运行docker服务端。这种技术通常用于CI/CD流水线中,因为它可以提供一个干净的环境来运行构建和测试。例如,如果您正在使用Jenkins作为CI/CD工具,您可以使用DinD来运行构建和测试,而无需在Jenkins服务器上安装Docker。这样可以避免与Jenkins服务器上的其他应用程序发生冲突。使用DinD时,需要注意的是,它会增加容器的复杂性,并且可能会导致性能下降。此外,由于容器内部运行的是另一个容器,因此可能会出现一些安全问题。本篇中用DinD来完成对docker proxy功能的验证。 为什么docker要使用代理?Docker使用代理的原因有很多,其中一些原因包括: 访问公司私有化部署的镜像仓库,对网络环境有限制。 对于一些公共仓库,下载速度很慢,通过代理实现加速上传与下载。 在本测试环境中,docker容器所在环境与目标docker 镜像仓库是网络隔离的,同时两个网络之间可以通过一个http proxy来进行通信。 如何配置prox...
Hexo + Butterfly + Github Page + Github Action 配置自己的个人网站
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。Butterfly 是 Hexo 的一个流行的主题,它的用户量很大,使其扩展丰富,使用方便。Github Action 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道,而且可以免费使用。Github Page 是免费的静态站点,只需要一个代码库,就可以免费构建自己的网站。 本文将以上四者相结合,构建个人博客网站。部署流水线,让我们只需要关注内容的产出,而无需关心 hexo 的部署与博客的发布。Let’s go. 1. 预准备 github 上创建账号,并创建两个 git repo。 一个 repo 用来保存平时编辑的博客文件 一个用来保存 hexo 生成的静态文件,并为其设置为 github page. 本机安装 docker 与 vscode 软件。 docker 用来运行 hexor 容器,用来本地开发与调试 vscode 用来日常编写博客文本 安装 vscode 插件 docker...
晒一晒Jenkins那些常用插件
作为 CI/CD 的调度中心,Jenkins 具有十八般武艺,目前已有 1700 多个插件,功能强大到似乎有点过分了。本文主要列出平时我们常用的插件。 以下这两个网站是 Jenkins 所有的插件及说明 Jenkins Plugins https://plugins.jenkins.ioJinkins Plugins Wiki https://wiki.jenkins.io ConfigurationJenkins CASC: configuration-as-code将Jenkins的配置以Code的方式进行保存,方便Jenkins的迁移与重建。该插件对于敏捷管理Jenkins服务非常有用。 jobConfigHistory记录和跟踪Jenkins作业配置的历史变更,方便查看配置修改记录和回滚操作。 ParameterGit Parameter这是一个参数构建扩展,可以在构建的时候选择git的某一个分支来构建服务。 file-parameters这个让Jenkinsfile支持将文件作为参数。 Hidden Parameter参数化构建时,隐藏相关参数。可用于设置默...
SciKit-Learn机器学习入门(二)——Pipeline
在我们平常的机器学习得到的数据并不能直接使用,必须先对它进行预处理后才能正常使用。以股票数据为例,当前的股价并不是独立的,它与之前的股价是有关系的,一个可用的方法是对对股价处理转为增长幅度。 12time1, price1time2, price2 转为 12time1, Nantime2, (price2-price1)/price1 SKLear提供了Pipeline工具方便数据处理。 12345678910111213141516171819202122232425262728293031323334353637## 定义数据处理类ColumnExtractor,获取指定列的数据class ColumnExtractor(BaseEstimator, TransformerMixin): def __init__(self, column_name): self.column_name = column_name def fit(self, X, y=None): return self def transform(self, ...









