Misc Notes

重建vCenter

一、构建 DSwitch

建完之后的 DSwitch 如下图,其中 DPortGroup 全默认,啥都不用设置:

二、从原有主机中去除分布式交换机

  1. 先断开老的分布式交换机的上行链路端口,见下面两图: 变为: 然后再移除这个分布式交换机:
  2. 再删除使用老的分布式交换机的 VMkernel 适配器:
  3. 然后重建新的vmk;
  4. 把所有虚拟机的网络改成新的就行了。

HTTPS相关

HTTPS相关

SSL证书

Reference: https://letsencrypt.org/

通过 Certbot 来自动安装证书

先安装 snapd:

1
2
sudo apt update
sudo apt install snapd

再安装 Certbot:

1
2
3
4
5
6
7
8
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 自动配置nginx
sudo certbot --nginx
# 只下载证书
sudo certbot certonly --nginx
# 验证renew策略
sudo certbot renew --dry-run

关于 mongodb

建管理员账号

修改 /etc/mongod.conf

1
2
security:
authorization: enabled

改成 disabled,重启服务,进 mongosh 建账号

1
2
3
4
5
6
7
8
9
10
11
use admin
db.createUser(
{
user: "admin",
pwd: passwordPrompt(), // or cleartext password
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

配置文件改回去,用 admin 登录 mongosh

1
2
3
4
5
6
7
8
9
use test
db.createUser(
{
user: "myTester",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)

用户与数据库

用户是绑定到数据库的,mongosh 登录的时候需要同时指定数据库和用户

1
mongosh --authenticationDatabase dbname --username user

建库建表

  • 建库直接 use dbname 就好了
  • 建表直接 db.tablename.insertOne({ XXX }) 就好了

Install oracle11g on oracle linux 7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# official preinstall
sudo yum install oracle-rdbms-server-11gR2-preinstall

# other prerequirments
sudo yum install binutils compat-libcap1 compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat cpp elfutils elfutils-libelf elfutils-libelf-devel elfutils-libs glibc-common glibc-headers libgomp mpfrnss-softokn-freebl sysstat tzdata-java unixODBC unixODBC-devel cloog-ppl kernel-headers libtool-ltdl ppl

# folders
sudo mkdir -p /opt/oracle
sudo mkdir -p /opt/oracle/product/112010/db_1
sudo mkdir /opt/oracle/oradata
sudo mkdir /opt/oracle/inventory
sudo mkdir /opt/oracle/flash_recovery_area
sudo chown -R oracle:oinstall /opt/oracle
sudo chmod -R 775 /opt/oracle

# db_install.rsp
vi /home/oracle/database/response/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=xxxx
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/oracle/product/112010/db_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=oinstall
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=1024
oracle.install.db.config.starterdb.password.ALL=xxxx
DECLINE_SECURITY_UPDATES=true

./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereq

# create listener
vi /home/oracle/database/response/netca.rsp

INSTALL_TYPE=""custom""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""

export DISPLAY=127.0.0.1:0.0
netca -silent -responseFile /home/oracle/database/response/netca.rsp

# create database
vi /home/oracle/database/response/dbca.rsp

RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl"
SID = "ORCL"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "sys"
SYSMANPASSWORD = "sys"
DBSNMPPASSWORD = "sys"
DATAFILEDESTINATION = /opt/oracle/oradata
RECOVERYAREADESTINATION = /opt/oracle/flash_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "10240"

dbca -silent -responseFile /home/oracle/database/response/dbca.rsp

# edit scripts
vi /opt/oracle/product/112010/db_1/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME

vi /opt/oracle/product/112010/db_1/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME

vi /etc/oratab
orcl:/opt/oracle/product/112010/db_1:Y

# other
sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent
sudo firewall-cmd --reload

vCetner安装完后的常规配置

一、VM Cluster 配置

按下面步骤操作:

  • Datacenter 上右键,选择 New Cluster...
  • 输入名字,下面的 RDSHAvSan 可以先不开,点 OK
  • 在新建的 Cluster 上右键,选 Add Hosts...
  • 输入 IP和用户名、密码,点击 ADD HOST 可以添加主机
  • 勾选需要添加的主机
  • 确认后继续即可

二、分布式交换机配置 (DSwitch)

按下面步骤操作:

  • DSwitch 上点右键,选择 Add and Manage Hosts...
  • 选择 Add hosts
  • 点击 New hosts...
  • 选择要加入的主机,打上勾
  • 设置上行端口,选择一块网卡,点击 Assgin uplink
  • 勾上 Apply this uplink assignment to the rest of the hosts 可以把其余主机一样设置
  • NEXT
  • 继续 NEXT
  • 不要 Migrate 后面手工搞比较安全
  • 确认后点 FINISH

三、配置分布式端口组属性

  • 在分布式端口组上点右键,选择 Edit Settings...
  • 选择 VLAN,在 VLAN type 中选择 VLAN,在 VLAN ID 中填入vlan号

四、映射网络驱动器

按下面步骤操作:

  • 在NFS存储上点右键,选择 Mount Datastore to Additional Hosts...
  • 选择相应的主机,打上勾:

关于CentOS的操作和坑

CentOS7以上的firewalld

1
2
3
4
5
6
7
8
9
10
11
sudo firewall-cmd --query-port=8080/tcp # 查询端口是否开放

sudo firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)
sudo firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)
sudo firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局)

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent #永久添加80端口例外(区域public)
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent #永久删除80端口例外(区域public)
sudo firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public)

sudo firewall-cmd --reload #重启防火墙(修改配置后要重启防火墙)

使用systemctl安装自动启服务

/usr/lib/systemd/system 文件夹下建立文件 shadowsocks.service,文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Shadowsocks Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/shadowsocks/pid
ExecStart=/usr/bin/ssserver -c /var/shadowsocks/conf.json -d start
ExecReload=/usr/bin/ssserver -c /var/shadowsocks/conf.json -d restart
ExecStop=/usr/bin/ssserver -d stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

给文件加上754权限:chmod +754 shadowsocks.service

  • systemctl start shadowsocks.service 就可以启动服务。
  • systemctl enable shadowsocks.service 就可以启用自动启服务。

apache死活报AH00035

比如www是放在/home/xxx下的,是因为/home/xxx没有加上组和访客的x。

1
sudo chmod 711 /home/xxx

SELinux和Apache的配置

1
2
chcon -R -t httpd_sys_content_t /path
setsebool -P httpd_can_network_connect 1

关于Joomla的应用与部署

Ubuntu 20.04 和 php 的相关准备

1
2
sudo apt install php-pgsql
sudo apt install php-mysql

处理 www-data 的权限

建立www文件夹,比如/home/xxx/www

1
2
3
4
sudo chown -R xxx.www-data /home/xxx/www
cd /home/xxx/www
find . -type d -exec chmod 2775 {} \;
find . -type f -exec chmod 0664 {} \;

修改 apache 配置,加主文件夹操作权限

1
2
3
4
5
6
<Directory "/home/yangxc/www/crca">
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

安装需要的php组件

1
sudo apt install php-xml php-zip php-mbstring php-json php-gd php-intl

记些关于MAC的事

配置多个网络

MAC总共连了三个网络:

  • USB+iPhone热点共享;
  • Wifi接测试环境网络;
  • 网线接开发环境网络。

首先把三个网络都接上,在网络管理里调整顺序,把iPhone USB放到第一个。
然后删除默认网关:

1
sudo route -n delete 0.0.0.0

设置默认网关:

1
sudo route -n add 0.0.0.0 172.20.10.1

然后拔掉iPhone,再设置下一个路径:

1
sudo route -n add 172.16.13.0/16 172.16.8.1

再断开这个网络,设置下一个路由:

1
sudo route -n add 192.168.0.0/24 192.168.0.1

通过Automator添加Finder里的右键菜单

  1. 运行 Automator
  2. New -> Quick Action
  3. 选择 Run Shell Script
  4. Workflow receives current 选择 files or folders, in any application
  5. Shell 选择 /bin/bash
  6. Pass input 选择 as arguments
  7. 脚本内容:
    1
    2
    3
    4
    if [[ $# -ge 1 ]]; then
    filename=$1
    open -a "SafePacker.app" --args -p ${filename%/*} "$@"
    fi
  8. Save, Pack with SafePacker

记点关于vim的东西

普通操作

  • cc 删除当前行,光标不动,进入插入模式
  • h j k l 左 下 上 右
  • w 下个单词头
  • e 本单词尾
  • b 本单词头
  • u undo
  • ^r redo
  • { 下段首
  • } 本段首
  • _ 行首
  • $ 行尾
  • gg 顶部
  • o 新建一行
  • C 删除光标后面的,并进入插入模式
  • v 可视选择
  • V 行可视选择
  • gh 选择模式,可以直接被覆盖

文件操作

  • :e filename
  • :ls 列出当前打开的文件
  • :b1 :b2 切换到第几个文件
  • :b name 模糊匹配,切换文件
  • :b name tab循环
  • :Ex 浏览文件夹
  • 在:Ex下 D 删除
  • 在:Ex下 R 重命名
  • 在:Ex下 - 上级目录

窗口操作

  • :sp [filename]
  • :vs [filename]
  • ^w,q 关闭当前窗口
  • ^wh ^wj ^wk ^wl 跳转窗口
  • ^w,H ^w,J ^w,K ^w,L 移动窗口
  • :newtab 新建标签页
  • :gt :gT 切换标签页
  • :tabmove N 移到位置N

搜索

  • set hlsearch 高亮所有关键字
  • :noh 清除高亮
  • s/// g 全局,c 确认, i 忽略大小写,I 区分大小写,e 没有匹配时不显示错误
  • /<word> 整词匹配

复制粘贴

  • y[x] 复制
  • yw 复制一个词
  • ye 复制到行尾
  • p 粘贴
  • “* 系统粘贴板

关于windows的一些坑

powershell执行脚本的权限

1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

删除本地office的key

1
2
cd 'C:\Program Files\Microsoft Office\Office16'
cscript ospp.vbs /dstatus

寻找key: Last 5 characters of installed product key:XXXXX

删除key: cscript ospp.vbs /unpkey:XXXXX

删除自带软件

1
Get-AppxPackage *music* | Remove-AppxPackage

SSH 通过密钥文件远程访问 Windows 服务器

如果使用的账号在管理员组中,需要把公钥放在 C:\ProgramData\ssh\administrators_authorized_keys 中,然后运行:

1
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"