有钱真好 发布的文章

一些powsershell脚本

1:powershell下载jdk
powershell (new-object System.Net.WebClient).DownloadFile( 'https://dl.softmgr.qq.com/original/Development/jdk-8u191-windows-x64-8.0.1910.12.exe','c:\j.exe')

2:windows上静默安装jdk
c:\j.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature"

注意:上面的地址根据实际情况更换。在windows server 2012上测试通过

ansible控制windows机器

windows上准备:
我的环境是windows server 2012,上面的powershell和winrm都是现成可用的。简单配置winrm即可:

winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'

上面如果没有执行,在ping的时候可能会报:the specified credentials were rejected by the server

ubuntu16.04上准备:
首先确保已经安装了ansible
如果是报错:winrm or requests is not installed: No module named winrm。则安装下面

apt install python-pip
pip install "pywinrm>=0.1.1"

如果报错:AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

rm -rf /usr/lib/python2.7/dist-packages/OpenSSL
rm -rf /usr/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.egg-info
sudo pip install pyopenssl

最后使用ansible ping一下看看,如果通了就说明是OK的。

ubuntu测量机器的温度

商业用电太贵了,公司机房24小时开机,若干台PC服务器,交换机,路由器,光猫等等,专门开一个空调不太划算。所以现在用电扇代替了,出了物理温度计来测量温度外,PC机器还可用测量CPU的温度,大概过程如下:

sudo apt-get install lm-sensors 
sudo sensors-detect
sudo service kmod start
sensors

输出如下:

Adapter: Virtual device
temp1:        +27.8°C  (crit = +105.0°C)
temp2:        +29.8°C  (crit = +105.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +45.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:         +42.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:         +41.0°C  (high = +80.0°C, crit = +100.0°C)
Core 2:         +42.0°C  (high = +80.0°C, crit = +100.0°C)
Core 3:         +40.0°C  (high = +80.0°C, crit = +100.0°C)

利用ngrok搭建内网穿透

需求:由于涉及到一个敏感的数据,所以公司有个后台系统没有放再公网上,平时这个系统大部分时间是再家里使用,但是回家的时候偶尔也需要访问。
实验环境ubuntu16.04

apt update -y
apt install git -y
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
tar -C /usr/local/ -zxvf go1.8.linux-amd64.tar.gz

vi /etc/profile最后添加

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
source /etc/profile
go version

下载ngrok

cd /usr/local/src
git clone https://github.com/inconshreveable/ngrok.git

准备证书,这一步非常重要

NGROK_DOMAIN="ciika.com"

openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

cp base.pem assets/client/tls/ngrokroot.crt

生成服务端

make release-server

生成linux客户端

GOOS=linux GOARCH=amd64 make release-client

生成之后再bin目录下多出了几个可允许的程序
后台启动服务端,其中我直接使用了80,注意开放指定的防火墙httpsAddr,httpsAddr以及4443

nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="maxads.xyz" -httpAddr=":80" -httpsAddr=":8082" &

把上面生成的bin/ngrok客户端程序复制到你需要穿透的内网环境
编写ngrok.cfg

server_addr: ciika.com:4443
trust_host_root_certs: false

做上面之前确保ciika.com这个指向了穿透的服务器
subdomain和代理的内网端口是对应的
后台启动

nohup ./ngrok -subdomain admin -proto=http -config=ngrok.cfg -log=stdout 80 &

常见错误:
go环境是否设置错误
证书设置错误(Failed to read message: remote error: tls: bad certificate)