自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

原创 Terraform 规模化代码组织结构

Terraform

2023-03-07 21:34:49 158

原创 Artifact path pattern

artifact:[orgPath]/ [module]/ [baseRev](-[folderItegRev])/ [module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]org/eclipse/jetty/ jetty-ajp/ 7.0.2/ jetty-ajp-7.0.2.jarorg/eclipse/jetty/ jetty-ajp/ 7.0.2-SNAPSHOT/ jetty-ajp-7.0.2-20201211.

2020-12-15 09:32:50 206

原创 shell wait

[root@node01 server]# cat parallel.sh#!/bin/bashbeginTime=date +%snum=1for i in seq 1 3do{echo $i “业务逻辑 开始执行,当前时间:” date "+%Y-%m-%d %H:%M:%S"sleep 2secho $i “业务逻辑 执行完成,当前时间:” date "+%Y-%m-%d %H:%M:%S"echo “--------------------------------------

2020-11-21 17:51:39 348

原创 msbuild

dotnet vstest mytestproject.dll --logger:"trx;LogFileName=custom_file_name.trx" --ResultsDirectory:custom/file/pathdotnet vstest mytestproject.dll myothertestproject.exedotnet build command is equivalent to dotnet msbuild -restore.dotnet vstest comman

2020-11-20 22:37:46 229

原创 maven

maven 的生命周期有哪些阶段?[validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process

2020-11-20 21:58:28 70

原创 linux-expect

#!/usr/bin/expectif { $argc != 2 } {puts "Usage: $argv0 "exit 1}set USER [lindex $argv 0]set COMMAND [lindex $argv 1]set prompt “(%|#|\$)”set timeout 3600spawn sudo su - $USERexpect -re promptsend"prompt send "promptsend"COMMAND\r"expect -re

2020-10-31 12:16:58 43

原创 CDN

1.静态资源域名添加CNAME指向CDN专用域名服务器2.访问静态资源域名时将由CDN专用域名服务器进行域名解析2.CDN专用域名服务器解析返回用户访问最近的IP

2020-10-31 11:41:10 121

原创 HTTPS/SSH

对称加密,用同一个密钥加密和解密非对称加密,用不同的密钥进行加密解密–密钥对(如private key,public key)https第一阶段,(密钥通过服务器证书中的公钥进行非对称加密安全传输)协商对称加密算法和密钥。第二阶段,(用对称加密)进行数据通信。ssh第一阶段,(明文传输)ssh协议版本协商第二阶段,(主机公钥体系进行会话密钥的非对称加密安全传输)算法和密钥协商,生成会话密钥第三阶段,(会话密钥进行对称加密传输)认证,密码认证和密钥认证第四阶段,(会话密钥进行对称加密传输)会

2020-10-31 11:28:34 186 1

原创 shell trap

trap捕捉信号有三种形式第一种:trap “commands” signal-list当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.第二种:trap signal-listtrap不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.第三种:trap ’ ’ signal-listtrap命令指定一个空命令串,允许忽视信号.# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SI

2020-09-26 18:55:45 184

原创 微服务为失败而设计原则

当在微服务进程中不能访问一个依赖的外部服务时,需要通过重试、降级、超时、断路等策略对异常进行容错处理,以尽可能保证系统的正常运行或启动,解耦微服务之间的强依赖关系。

2020-09-24 22:11:55 81

原创 DevOps工具链

添加链接描述

2020-09-19 19:06:32 109

原创 Shell - Shell脚本调试方法

添加链接描述

2020-09-19 18:46:12 86

原创 Devops 度量指标

指标体系

2020-09-19 18:17:51 1385

原创 windows - tee

tee.bat@if (@X)==(@Y) @end /* Begin of JScript comment::--- Batch section within JScript comment that calls the internal JScript ----@echo offcscript //E:JScript //nologo "%~f0" %*exit /b@if (@x)==(@y) @end End of JScript comment */var mode=2;if (

2020-09-19 12:57:47 260 1

原创 Jenkins linter

Jenkinsfile linterhttps://www.jenkins.io/doc/book/pipeline/development/#linterJenkinsfile unit test framworkhttps://github.com/jenkinsci/JenkinsPipelineUnitJenkins job linthttps://plugins.jenkins.io/jenkinslint/

2020-09-13 16:21:46 396

原创 Devops-质量内建

内建质量定义内建质量作用在开发过程中,要求软件生命周期之间参与的各个角色都需要实时的对软件的质量负责。确保软件在交付到下一环节前已经有了基础的质量保证。其核心目的就是减少因为质量问题导致的返工,而浪费大量人力成本。内建质量实践制定开发规范结对编程需要时代码重构左移测试左移,把质量问题从源头开始进行检查。如单元测试。安全左移-安全扫描,尽早发现提示安全风险。代码审查/评审机制门禁为了贯彻内建质量是否在开发体系中落实,我们需要设置一些质量度量标准,所以在软件生命周期的每个阶段设置质量门

2020-09-09 00:01:43 774

原创 python

python -m SimpleHTTPServer 8080cat json | python -c 'import sys.json; data=json.load(sys.stdin.read()); print data["id"];'cat json | python -m json.tool

2020-07-22 22:07:50 87

原创 linter

jsonlintyamllintpylintansible-lint,ansible-playbook --syntax-checkLint4jhttp://www.jutils.com/maven-plugin/https://www.coveros.com/maven-pom-lint-plugin/SonarQubeSonarLintJenkinslinthttps://plugins.jenkins.io/jenkinslint/https://www.jenkins.io/d

2020-07-18 11:06:18 112

原创 Jenkins Script

def withEnvironment(closure) { def returnVal = null def workdir= "${System.currentTimeMillis()}" sh returnStdout: true, script: "mkdir -p ${workdir}" withEnv(["ROOT=${pwd()}/${workdir}", "PATH=/sbin:/usr/sbin:/bin:/usr/bin" ])

2020-07-18 10:10:59 925

原创 Groovy closure

import groovy.json.JsonSlurperdef withtargetenv(env,closesure) { def file = new File('test.json'); println(file.getText()); def jsonSlurper = new JsonSlurper(); def json = jsonSlurper.parseText(file.getText()); targetenv = json.get("en

2020-07-18 09:52:13 54

原创 Jenkins script

https://www.jenkins.io/doc/book/managing/script-console/http://hudson-ci.org/javadoc/hudson/model/Hudson.htmlhttp://javadoc.jenkins-ci.org/hudson/model/Hudson.htmlhttp://javadoc.jenkins-ci.org/jenkins/model/Jenkins.htmlhttp://javadoc.jenkins-ci.org/hud

2020-06-29 22:21:40 537 1

原创 命名规范

驼峰式命名法camel 驼峰式命名法,又叫小驼峰式命名法(所以自然就存在大驼峰命名法啦……)。驼峰式命名法要求第一个单词首字母小写,后面其他单词首字母大写。[中间不需要空格 - _等分割符]帕斯卡命名法Pascal 帕斯卡命名法,又叫大驼峰式命名法。与小驼峰式命名法的最大区别在于,每个单词的第一个字母都要大写。[中间不需要空格 - _等分割符]下划线命名法下划线命名法并不如大小驼峰式命名法那么备受推崇,但是也是浓墨重彩的一笔。尤其在宏定义和常量中使用比较多,通过下划线来分割全部都是大写的单词。

2020-06-06 10:17:43 308

原创 语义化版本号

semver 是 Semantic Versioning 的缩写,即语义化版本号:https://semver.org/https://semver.org/lang/zh-CN/

2020-06-06 09:39:40 132

原创 Jenkins: MPL - 模块化的流水线库

http://jenkins-zh.cn/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/https://github.com/griddynamics/mplhttps://github.com/jenkinsci/JenkinsPipelineUnit

2020-06-03 21:55:03 412

原创 Jenkins: Jenkins Templating Engine

Jenkins Templating Engine (JTE) :https://plugins.jenkins.io/templating-enginehttps://boozallen.github.io/sdp-docs/jte/1.7.1/index.html

2020-06-03 21:42:59 341

原创 curl chek http status code

while truedo status_code=$(curl 'http://localhost:8153/go/api/v1/health' -o /dev/null -w \"%{http_code}\") if [ $status_code == 200 ]; then break fi sleep 10done

2020-05-22 13:23:17 108

原创 Helm和kustomize

Helm 基本概念Helm 是由 Deis 发起的一个开源工具,有助于简化部署和管理 Kubernetes 应用。Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为 Kubernetes 构建的应用,它包含几个基本概念Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula、APT 的 dpkg 或者 Yum 的 rpm 文件。Releas

2020-05-21 21:26:25 654

原创 istio 理解1

Istio 中负责流量管理的核心组件是:控制平面的 Pilot:负责管理 Service Mesh 中的所有 Envoy 实例,制定服 务的规范模型,分配路由规则。数据平面的 Envoy:负责路由、负载均衡和上报遥测信息。检查下当前 Service Mesh(注入到pod中的envoy 代理)$ istioctl proxy-statusNAME CDS LDS ED

2020-05-21 18:47:47 469

原创 shell 存入数组

命令输出存入数组:images=($(ls -l|awk '!/localhost/ {n=split($0,A,".");printf "%s=%s\n",$0,A[n]}'))echo ${#images[@]}文件内容存入数组:images=($(cat docker-images.txt))echo ${#images[@]}遍历数组for i in "${images[@]}" ; do echo $i ; donefor i in "${!images[@]}"

2020-05-21 09:34:10 3781

原创 笔记:Cloud Natice云原生的理解

云原生说明为云而生,云原生应用被设计为最适合云的方式运行,充分利用云的特点和优势。

2020-05-18 18:46:37 81

原创 Django 自带数据库文件db.sqlite3删除重建

重建db.sqlite3方法:删除数据库文件db.sqlite3删除migrations下面除__init__.py外所有文件运行: python manage.py makemigrations python manage.py migrate

2020-05-18 12:17:13 2677

原创 Docker 容器是什么

Docker 容器实际上是共享主机内核,资源被隔离和限制,拥有自己的独立根文件系统的进程。容器~=进程,基本没有虚拟的开销,启动几乎跟进程一样快。

2020-05-15 19:43:41 95

原创 TCP 3次握手4次挥手理解

图片引用自http://blog.csdn.net/xifeijian/article/details/12777187建立连接:3次握手(客户端对服务器说: ”你好,我可以跟你连接吗?“)客户端发送报文给服务器端:SYN=1 ACK = 0 SEQ=x进入 SYN_SEND 状态。(服务器向客户端确认: ”好的,让我们开始吧,你准备好了吗?”)服务器端收到 SYN 报文后,回应报文给客户端:SYN=1 ACK=1 ack=x+1 SEQ=y进入 SYN_RECV 状态。(客户端向服.

2020-05-14 12:33:44 93

原创 kunbernetes Service/ingress/istio gateway

kunbernetes ServiceServiceType字段的合法值是:l ClusterIP: 仅仅使用一个集群内部的IP地址 - 这是默认值。选择这个值意味着你只希望这个服务在集群内部才可以被访问到。以下面形式访问:spec.clusterIp:spec.ports[*].portl NodePort: 在集群内部ClusterIP的基础上,在集群的每一个节点的端口上开放这个服务。每一个Node都会将这个端口(在每一个Node上相同的端口)代理到你的Service–iptables来实

2020-05-11 14:30:40 321

原创 shell 变量操作

字符串长度${#var}字符串替换${var/str1/str2} #str2替换左边算起第一个str1${var//str1/str2} #str2替换所有str1${var:-string} var为空,则取值string,否则取var值${var:=string} var为空,则取值string并赋值给var,否则取var值${var:+string} var不为空,则替换为string...

2020-05-11 11:35:35 76

原创 shell 字符串分割

str="a,b,c,d"array=(${str//,/ })for var in ${array[@]}do echo $vardone

2020-05-11 10:37:57 537

原创 shell 字符串截取

截取分隔符右边的字符串:${var#*/} 截取左边算起第一个“/”右边的所有字符${var#*/} 截取左边算起最后一个“/”右边的所有字符截取分隔符左边的字符串:${var%/*} 截取右边算起第一个“/”左边的所有字符${var%%/*} 截取右边算起最后一个“/”左边的所有字符按字符位置截取字符串:index 从0开始, 负数表示从右边算起的位置${var:index:number} 位置index开始number个字符${var:index} 位置index开

2020-05-11 10:23:01 245

原创 awk

awk 排除匹配行 !/pattern/ ,pattern可以是正在表达式。awk 分割字符串为数组 n=split(str,array,separator), separator可以是正在表达式。 array[n] == arry[-1]docker images --format "{{.Repository}}:{{.Tag}}"|awk '!/localhost/ {n=split($0,A,"/");printf "%s=localhost:5000/%s\n",$0,A[n]}' &gt.

2020-05-11 09:51:33 63

原创 shell 输入重定向

1. “< file”从文件中读取输入:while read line; do echo $line; done < server.key2. “<<”称之为 “Here Documents”, 作为文件参数:cat << 'EOF'contents of the fileEOF3. “<<<”称之为 “Here Stri...

2020-05-02 12:35:02 156

原创 openssl 自签证书

生成CA证书生成ca秘钥,得到ca.key$ openssl genrsa -out ca.key 4096生成ca证书签发请求,得到ca.csr$ cat << 'EOF' > ca.conf[ req ]default_bits = 4096distinguished_name = req_distinguished_name[ req...

2020-05-01 22:28:43 302

State-of-DevOps-Report-2020.pdf

State-of-DevOps-Report-2020.pdf

2021-05-09

中国DevOps现状调查报告(2020).pdf

中国DevOps现状调查报告(2020).pdf

2021-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除