WSL2 配置记录
基础环境配置更换源使用中科大的源: https://mirrors.ustc.edu.cn/help/ubuntu.html
1sudo sed -i 's@//.*.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
安装常用的包12sudo apt update && sudo apt upgrade -ysudo apt install -y libmysqlclient-dev build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev lrzsz
当前用户免sudo密码1234sudo tee /etc/sudoers.d/iuxt <<-EOF%sudo ALL=(ALL:ALL) NOPAS ...
Linux终端复用器Screen和tmux
参考阮一峰的博客https://www.ruanyifeng.com/blog/2019/10/tmux.html
作用想象一下, 我在自己电脑远程SSH连接服务器, 正在命令行执行mysqldump, 突然(断网\电脑蓝屏)了, 那么终端就断了, mysqldump也就断了, 就需要重新来过. 终端复用器就是创建一个虚拟的终端, 可以挂在后台, 随时想进就进, 还有其他好用的功能, 比如将终端日志保存到文件内.
常用的工具有tmux和screen, tmux类似于screen, 但是功能更强大, screen 的记录日志功能很好用, 两者各有千秋. 另外终端复用器对rz/sz这种工具的兼容性都不好, 建议不要用来进行rz/sz传文件
tmux安装12345# centosyum install -y tmux# ubuntuapt-get install -y tmux
快速使用输入 tmux 即可启动, 在终端下面有一条状态栏, 显示当前的终端编号.
退出输入: exit 或者按下 Ctrl + d查看后台运行的会话: tmux ls进入会话: tmux attach -t 0
...
Jenkins pipeline中正确使用git
看到很多jenkins使用都是直接执行git clone命令, 这么做有以下几个缺点.
需要耗费时间去处理git分支, 代码冲突等工作, 还需要判断是使用 git clone 还是 git pull
账号密码(或者ssh秘钥)需要存储在构建机器上, 如果更换了构建节点, 那么需要重新配置, 即对构建环境有依赖, 构建环境是个黑盒子, 因为你不知道上个维护者在这台构建机器上做了什么.
不受jenkins管理, 比如删除流水线, 拉取的代码任然存在机器上
做个分支选项框是个痛苦的事情将代码交给jenkins管理则省去了这些操作.
使用凭据管理账号密码在 系统管理 – 凭据 – 系统 – 全局凭据 里面增加一个新的凭据
成功后记录一下ID
编写流水线1234567891011121314151617pipeline { agent any parameters { gitParameter branch: '', branchFilter: '.*', defaultValue: '', ...
Jenkins升级插件引发的血案
我们公司用的jenkins是老版本, 不知道什么时候谁点了升级插件, 但是没有重启jenkins, 一直用者好好的, 突然有一天有个倒霉蛋重启了jenkins,然后就报错了.
搜索了一圈的解决方案:关闭认证, 配置文件在.jenkins/config.xml目录中, 需要先切换到jenkins用户, 先备份 cp .jenkins/config.xml .jenkins/config.xml.bak 然后再修改
将 authorizationStrategy 这一块改为
123<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"> <denyAnonymousReadAccess>false</denyAnonymousReadAccess></authorizationStrategy>
将 securityRealm 块 删除, 保存后重启jenkins, 日志里会打印账号密码, ...
记录一次生产环境数据库迁移
迁移要求不要清理目标数据
迁移是老环境迁移到新环境, 新环境之前有过使用记录了, 要求不删除现有的数据, 将老数据导入。有以下几个问题:
导出的sql里面不能带drop table语句,所以在mysqldump的时候需要加上--skip-add-drop-table参数
主键或唯一键重复的问题,需要增加参数 --skip-extended-insert
sql执行失败了需要继续, 因为现有数据可能和老环境冲突, 所以插入失败不能影响其他数据的插入, 这里选择在mysql控制台执行source命令。
备份源数据库1mysqldump -h192.168.21.26 -P3306 -uroot -p<password> --skip-add-drop-table --skip-extended-insert --databases idk_base > hezhong_idk_base.sql
–skip-add-drop-table 这个参数为了不在sql文件里面增加drop语句,不加的话,执行这个sql会先将表删掉,再重新创建。–skip-extended-i ...
mac下实现快速登陆带有两步验证的ssh跳板机
我们有个堡垒机当前的登陆流程是: ssh username@ip -p port –> 输入密码 –> 打开手机 –> 查看两部验证码 –> 输入 –> 连接成功
解决输入密码的问题mac因为安全问题使用brew已经无法安装sshpass这个包了, 我们可以使用ssh key来进行免密登陆并提高安全性。不同的跳板机平台设置方式不太一样,基本都是在个人信息设置里面增加。
解决输入两步验证码的问题
两步验证码就是TOTP,基于生成的6位数字, 30s更换一次, 我们需要先拿到TOTP的seed, 一般都会给一个二维码,用二维码解析工具解析, 解析出来的内容大致类似于:
1otpauth://totp/Microsoft:iuxt@outlook.com?secret=XUHHW5TKKTYGMJYM&issuer=Microsoft
secret= 后面的内容就是TOTP的seed
使用脚本来生成两步验证码可以使用python的pyotp包
12345import pyotpimport systotp = pyotp.TOTP(sys. ...
使用echo server测试ingress-nginx服务
这个是灰度的方案
创建正式环境的服务1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677# DeploymentapiVersion: apps/v1kind: Deploymentmetadata: name: production labels: app: productionspec: replicas: 1 selector: matchLabels: app: production template: metadata: labels: app: production spec: containers: - name: production image: registry.k8s.io/ingress-nginx/e2e-test-echo@ ...
Prometheus标签处理
元标签在被监控端纳入普罗米修斯里面定义了一些元数据标签在Prometheus所有的Target实例中,都包含一些默认的Metadata标签信息。可以通过Prometheus UI的 Status 里面的 Service Discovery 查看
Metadata标签
说明
address
当前Target实例的访问地址 host:port
scheme
采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS
metrics_path
采集目标服务访问地址的访问路径
上面这些标签将会告诉Prometheus如何从该Target实例中获取监控数据。除了这些默认的标签以外,我们还可以为Target添加自定义的标签。
元标签是不会写到数据库当中的,使用promql是查询不到这些标签的,如果需要源标签的数据(比如k8s部署的Prometheus使用自动发现获取pod监控),这个时候就需要把一些元标签重新打标签来使用。
比如上图,监控k8s的pod状态, 因为pod是动态的,所以需要pod名字和pod的namespace信息,就可以从元标签中取值。
自定义 ...
在Windows下以服务方式运行MySQL
下载本文安装的是zip包, 安装方式更灵活
下载地址: https://dev.mysql.com/downloads/mysql/
创建配置文件在mysql根目录下创建my.ini文件,输入以下内容(根据自己需求调整, 如果不知道参数是做什么的, 那就不要配置, 不要瞎”调优”):
123456789101112131415161718192021[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]#设置3306端口port = 13306# 设置mysql的安装目录, 这里也可以用相对路径表示, 如 . 表示当前目录basedir=C:\Users\iuxt\OneDrive\1\mysqld# 设置mysql数据库的数据的存放目录, 也可以用相对路径, 如 datadatadir=C:\Users\iuxt\OneDrive\1\mysqld\data# 允许最大连接数max_connections=200# 设置服务端使用的字符集character-set-server=utf8mb4# 创建新表时将使用的 ...
编译安装Redis记录
下载解压123wget https://download.redis.io/releases/redis-6.0.9.tar.gztar xf redis-6.0.9.tar.gzcd redis-6.2.13
编译编译需要gcc
1make
安装123sudo mkdir -p /usr/local/redis/{bin,conf}sudo cp src/{redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-server} /usr/local/redis/bin/sudo cp redis.conf /usr/local/redis/conf/redis.conf
启动1/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
通过systemd管理vim /usr/lib/systemd/system/redis.service
12 ...