Elasticsearch-+-Kibana添加到Systemctl
/usr/lib/systemd/system/kibana.service
1234567891011[Unit]Description=Elasticsearch[Service]PIDFile=/home/vagrant/kibana-5.1.1-linux-x86_64/kibana.pidExecStart=/home/vagrant/kibana-5.1.1-linux-x86_64/bin/kibanaUser=vagrantRestart=alwaysLimitMEMLOCK=infinityLimitNOFILE=1048576LimitNPROC=1048576
/usr/lib/systemd/system/elasticsearch.service
1234567891011[Unit]Description=Elasticsearch[Service]PIDFile=/home/vagrant/elasticsearch-rtf/elasticsearch.p ...
Git-+-Jenkins-提交Git-触发Jenkins-Job
利用git的Hook机制
.git/hooks/pre-push123#!/bin/bashecho ====== trigger jenkins job: maglev-verify in 10s =======(sleep 10 && .git/hooks/post-push) &
.git/hooks/post-push123#!/bin/bashbranch=$(git rev-parse --abbrev-ref @{upstream})curl -k --user ${USER}=${TOKEN} http://${JENKINS_URL}/job/${JOB_NAME}/buildWithParameters --data-urlencode TAG=$branch
Gitea访问使用KeyCloak作为用户管理
一、安装keyCloak
二、配置KeyCloak,添加ClientsClients -> createClient ID: devops-oidcEnabled: trueClient Protocol: openid-connectAccess Type: confidentialValid Redirect URIs: /*
三、配置Gitea,添加Authentication SourcesSite Administration -> Authentication Sources -> Add Authentication SourceOAuth2 Provider: OpenID ConnectClient ID(key): devops-oidcClient Secret: <keycload 中 devops-oidc Credentials中查询>OpenID Connect Auto Discovery URL: http:///auth/realms/master/. ...
Jenkins-Pipeline触发机制
设置好了功能强大的流水线后,接下来我们要做的就是去执行流水线,如果都靠手动去触发流水线,显然不符合带着自动化基因新一代工程师的风格,必须自动触发。那么Jenkins的Pipeline支持哪些触发机制呢。一起来看一下。
定时触发:croncron规则与crontab的规则是一样的
12345678910111213pipeline{ agent any triggers{ cron('0 0 * * *') } stages{ stage('半夜触发'){ steps{ echo "凌晨执行" } } }}
轮询代码仓库周期性检查代码,看代码是否有更新。这种方式需要使用
12345678910111213pipeline{ agent any triggers{ pollSCM('* * * * *') } stages{ stage(' ...
Jenkins-Pipeline语法实例
Jenkins Pipeline支持的指令
指令名
说明
作用域
agent
定义执行任务的代理
stage 或pipeline
environment
设置环境变量
stage或pipeline
tools
自动下载并安装指定的工具,并将其加入到PATH变量中
stage或pipeline
input
暂停pipeline,提示输入内容
stage
options
配置Jenkins pipeline本身,如options{retry(3}},指pipeline失败时再重试2次
stage 或 pipeline
parallel
并行执行多个step
stage
parameters
执行pipeline前传入一些参数
pipeline
triggers
定义执行pipeline的触发器
pipeline
when
定义阶段执行的条件
stage
build
触发其他的job
steps
options Jenkins Pipeline配置参数
参数名
说明
例子
buildDiscarder
保留最近历史构建记录的数量
b ...
Jmeter简单配置使用
创建Test Plan 测试计划File->New或者直接点击New图标
添加Thread Group 测试任务右击测试计划,Add->Threads(Users)->Thread Group
添加HTTP Cookie 请求Cookie管理右击Thread Group,Add->Config Element->HTTP Cookie Manager
添加HTTP Header 请求头管理右击Thread Group,Add->Config Element->HTTP Header Manager
添加HTTP Request 请求右击Thread Group,Add->Sampler->HTTP Request
添加User Defined Variables 用户定义变量右击Thread Group,Add->Config Element->User Defined Variable
添加报告Result Tree 结果树右击Thread Group,Add->Listener->View Resu ...
Mysql瓶颈分析方法
数据库往往会成为应用的最终瓶颈,而Mysql是被使用得最多的开源关系型数据库。如何分析执行Mysql数据库语句的性能就非常重要。但是很多开发人员并没有相关的意识与能力,但其实掌握了一些简单的常用手段,就可以让我们自己分析出数据库语句的问题。曾经看到过有对数据库查询语句中出现7个Select的语句,当时完全被震惊到了,这根本就是往系统里注入了一个大雷呀,数据量一旦增多,数据库挂,应用挂,服务挂,客户挂,公司挂。。。。还是不做破了一个鸡蛋就想着毁了一个养鸡场的推断了。我们收集下常见的数据库的分析手段。
查看当前数据库执行命令12mysql> select count(*) from information_schema.processlist where COMMAND != 'Sleep';mysql> select * from information_schema.processlist where COMMAND != 'Sleep' limit 5;
慢查询查看慢查询时间定义12345678910mysql> show ...
Nginx性能优化配置参考
系统优化
系统内核优化参考123456789101112131415161718192021222324$ cat /etc/sysctl.confnet.ipv4.tcp_max_syn_backlog = 65536net.core.netdev_max_backlog = 36768net.core.somaxconn = 36768 net.core.wmem_default = 8588608net.core.rmem_default = 8588608net.core.rmem_max = 16877216net.core.wmem_max = 16877216 net.ipv4.tcp_synack_retries = 2net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_max_orphans = 3376800net.ipv4.ip_lo ...
SOPS对配置文件数据进行加密
SOPS 是由Mozilla 开发的一款开源的文本编辑工具,它支持对YAML, JSON, ENV, INI 和BINARY 文本格式的文件进行编辑,并利用AWS KMS, GCP KMS, Azure Key Vault 或PGP 等加密方式对编辑的文件进行加密和解密。在当前它还可以与heml secret作用,为Kubernetes的secret资源数据进行加密。本篇主要介绍sops的基本用法,而helm secret的使用不做介绍。
##GPG进行加密
生成GPG文件1$ gpg --generate-key # 根据引导生成gpg加密文件
或者自动生成123456789101112131415gpg --batch --generate-key <<EOF%echo Generating a basic OpenPGP key for HELM SecretKey-Type: RSAKey-Length: 4096Subkey-Type: RSASubkey-Length: 4096Name-Real: MichaelName-Comment: Personal ...
Openshift上使用Nginx-Pod作灰度发布
参考文章:使用 Nginx 实现灰度发布
什么是灰度发布
【百度百科】灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。 在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
除了AB test灰度发布另一种思想是,只发布给一小部分用户,如:App在发布之前,针对性的给一小批用户测试下新版本,用小流量发布的方式来检验新版会不会有问题。
灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
Openshift上实现蓝绿部署
在openshift上的部署两个版本的Service:service01, service02。在创建Route的时候,可以非常简单地指定同一个Route流量访问两个service的百分比service01(25%流量), service02(75%流量)。所有请求该Route的流量会被按指定的比例访问后service。
对应的Route yaml配置文件如下:
12 ...