跨地区三地机房互联OpenVpn
跨地区三地机房互联OpenVpn部署方案一丶环境介绍
阿里云服务端VPN网关:47.98.63.78
IDC客户端VPN网关:192.168.99.5
公司客户端VPN网关:192.168.17.212
思路:阿里云一台有公网ip的主机作为OpenVpn的server端并作为阿里云VPC的VPN网关,IDC和公司内部分别一台主机作为client端并冲到各地区的VPN互联网关。
二丶各节点服务部署server端Openvpn服务配置
上传openvpn一键部署脚本至阿里云服务器并执行脚本进行安装GitHub地址:https://github.com/Nyr/openvpn-install脚本地址:https://gitee.com/wbdevops/openvpn-install/blob/master/openvpn-install.sh
123456789101112131415161718192021222324252627282930313233343536373839404142~]# sh openvpn-install.shWelcome to this OpenV ...
shell脚本sort排序详解
sort排序,在处理单个域排序时基本没有什么问题,都能正确显示我们期望的结果,但是在涉及到多个域进行排序是就有很多小细节需要注意了。先看看示例的文档:
12345yu@yu-vm:~/0510$ cat test4google 110 5000baidu 100 10000guge 50 3000sohu 100 4500
第一列表示公司名称,第二列表示人数,第三列表示工资现在按照人数进行排序下:
12345yu@yu-vm:~/0510$ cat test4|sort -k2baidu 100 10000sohu 100 4500google 110 5000guge 50 3000
好像不太像我们想象的那样,原因就是此处是按照字符串进行排序的,5比1大,所以50排在后面。
12345yu@yu-vm:~/0510$ cat test4|sort -n -k2guge 50 3000baidu 100 10000sohu 100 4500google 110 5000
指定一个-n,要求以数值进行排序,OK。这时候我们希望按照人数及待遇排序
12345yu@yu-vm:~/05 ...
maven私服nexus清理释放磁盘空间
maven私服nexus清理释放磁盘空间应用背景:
自建的maven私服(或者叫私仓)nexus在使用过程中,因很多服务不断迭代更新上传jar包至nexus中,底层存放在一个叫Blob Stores的存储中,开发通知maven只能下载依赖不能上传依赖了,登录nexus服务器发现该存储已增大至好几百G。
浏览器页面上传依赖报错:
1Error occurred while executing a write operation to database 'component' due to limited free space on the disk (4058 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required sp ...
二进制部署prometheus+Grafana+Altermanager实现监控数据可视化与报警
1.部署前简介1.1 本次监控部署应用到的相关软件如下123456789prometheus 数据采集和存储 提供PromQL语法查询alertmanager 警告管理 进行报警node_exporter 收集主机的基本性能监控指标blackbox_exporter 收集http,https,tcp等监控指标redis_exporter 收集redis相关的监控指标mysqld_exporter 收集mysql相关的监控指标pushgateway 向prometheus推送监控指标PrometheusAlert 运维告警转发系统 结合alertmanagergrafana 监控数据大盘展示
1.2 部署规划123主机prometheus(172.19.120.164) 部署 prometheus alertmanager PrometheusAlert grafana 这四个服务部署在了一台上 也可以分开单独部署主机game(172.19.120.4) 部署 node_exporter redis_exporter pushgateway mysqld_ ...
Jenkins自动化部署dev-uat-preprd-prd环境服务,并实现发布失败回滚。
一、安装基础环境1.1 安装JDK1.8上传JDK1.8二进制包至服务器
解压二进制包并添加java环境变量
123456789~]$ tar xzvf jdk-8u211-linux-x64.tar.gz~]$ mv jdk1.8.0_211/ /usr/local/~]$ sudo vim /etc/profile# Java环境变量export JAVA_HOME=/usr/local/jdk1.8.0_211export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}
加载环境变量并验证
12345~]$ source /etc/profile ~]$ java -versio ...
SpringCloud seata Nacos环境部署
seata集成Nacos安装Nacos1.下载地址
1https://github.com/alibaba/nacos/releases
2.解压修改配置文件
123456vim nacos/conf/application.properties ###添加配置文件数据库spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=nacosdb.password=nacos
3.创建nacos数据库并导入数据库结构(数据库官方建议5.6以上)
121.创建nacos数据库2.导入$Nacos_HOME/conf/nacos-mysql.sql
4.启动Nacos
Windows直接双击$Nacos_HOME/bin/startup.cmd
linux不要直接sh sta ...
Helm chart仓库官方仓库不能使用解决方法
k8s中的官方helm chart仓库在国内可能使用不了,但是我们又需要使用,这里推荐几个方法。使用其他的chart仓库
微软的chart仓库http://mirror.azure.cn/kubernetes/charts/这个仓库强烈推荐,基本上官网有的chart这里都有。
阿里的cahrt仓库,网址https://developer.aliyun.com/hub#/?_k=bfaiychelm repo add apphub https://apphub.aliyuncs.com/
Kubeapps Hubhttps://hub.kubeapps.com/charts/incubator官方chart仓库,国内有点不好使
找一台海外的中转机自己做一个梯子,将官方的chart仓库拖下来,然后自己搭建一个私有的chart仓库。参考: https://github.com/BurdenBear/kube-charts-mirror
Centos7部署alibaba-sentinel
1.1 安装JDK1.8上传JDK1.8二进制包至服务器
解压二进制包并添加java环境变量
123456789~]$ tar xzvf jdk-8u211-linux-x64.tar.gz~]$ mv jdk1.8.0_211/ /usr/local/~]$ sudo vim /etc/profile# Java环境变量export JAVA_HOME=/usr/local/jdk1.8.0_211export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}
加载环境变量并验证
12345~]$ source /etc/profile ~]$ java -version java v ...
利用sshpass批量导入本机ssh-key至目标主机
脚本内容如下:
12345678910111213141516171819#!/bin/bashset +xbase_dir=$(pwd)ip_txt="/tmp/ip.txt"USER='root'PASSWD='putianhui'INSTALL(){echo "开始导入public-key到目标主机..."sleep 1sfor IP in `cat $ip_txt` do sshpass -p ${PASSWD} ssh-copy-id -o StrictHostKeyChecking=no ${USER}@${IP} echo "${IP}服务器完成"done}INSTALL
Jenkins常用的优化功能
1.1 Pipeline控制台输出前加时间戳1.Jenkins安装Timestamper插件。
2.开启pipeline的Timestamper插件功能
Manage Jenkins –> Configure System –> Timestamper –> Enabled for all Pipeline builds
3.构建一个Pipeline验证日志是否有时间戳
1.2 去掉pipeline中shell命令的调试信息在Jenkins的Console Output中有时会看到‘+’开头的shell命令调试信息,看起来比较混乱。原因是Jenkins默认用‘-xe’的选项去运行‘sh’命令。例如如下pipeline的输出。
1.我们在pipeline脚本中一个sh处理函数
123def mysh(cmd) { sh('#!/bin/sh -e\n' + cmd)}
2.将pipeline脚本中原来使用sh来执行的shell命令,替换成我们新建的mysh函数
3.再次构建验证是否还有调试信息,类似于+号的内 ...