运维相关🔥
Jack Zheng 2023/9/26 nodenpmvuecmdbpythongo
centos容器部署cmdb
### 创建centos容器,取名cmdb
docker run -itd --name cmdb -p 8088:8088 centos:latest
### 修改系统安装包源,进入yum.repos.d 目录下
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
### 安装git、python、gcc等依赖包
yum -y install vim git python38
yum -y install gcc gcc-c++ automake autoconf libtool make
### 编辑profile文件
vim /etc/profile
# customer alias
alias ll='ls -l'
alias lla='ls -al'
# config go env
export GOROOT=/opt/go
export GOPATH=/opt/packages
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# config node env
export NODE_HOME=/opt/node
export PATH=$NODE_HOME/bin:$PATH
TZ='Asia/Shanghai'; export TZ
### 安装node和npm
cd /opt
wget https://cdn.npmmirror.com/binaries/node/v18.16.1/node-v18.16.1-linux-x64.tar.gz
tar -xzf node-v18.16.1-linux-x64.tar.gz
cd /usr/local/src
mv node-v18.16.1-linux-x64 /usr/local/src/nodejs
ln -s /usr/local/src/nodejs/bin/npm /usr/local/bin
ln -s /usr/local/src/nodejs/bin/node /usr/local/bin
ln -s /usr/local/src/nodejs/bin/cnpm /usr/local/bin
ln -s /usr/local/src/nodejs/bin/npm /usr/bin
ln -s /usr/local/src/nodejs/bin/node /usr/bin
ln -s /usr/local/src/nodejs/bin/cnpm /usr/bin
npm install -g cnpm@7.1.0 --registry=https://registry.npm.taobao.org
### 安装Go
cd /opt
mkdir packages
wget https://studygolang.com/dl/golang/go1.16.5.linux-amd64.tar.gz
tar -xf go1.16.5.linux-amd64.tar.gz
### 启用profile
source /etc/profile
### 安装zookeeper
docker run --name cmdb-zookeeper --env=PATH=/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/apache-zookeeper-3.7.0-bin/bin --env=JAVA_HOME=/usr/local/openjdk-11 --env=LANG=C.UTF-8 --env=JAVA_VERSION=11.0.13 --env=ZOO_CONF_DIR=/conf --env=ZOO_DATA_DIR=/data --env=ZOO_DATA_LOG_DIR=/datalog --env=ZOO_LOG_DIR=/logs --env=ZOO_TICK_TIME=2000 --env=ZOO_INIT_LIMIT=5 --env=ZOO_SYNC_LIMIT=2 --env=ZOO_AUTOPURGE_PURGEINTERVAL=0 --env=ZOO_AUTOPURGE_SNAPRETAINCOUNT=3 --env=ZOO_MAX_CLIENT_CNXNS=60 --env=ZOO_STANDALONE_ENABLED=true --env=ZOO_ADMINSERVER_ENABLED=true --env=ZOOCFGDIR=/conf --volume=/data --volume=/datalog --volume=/logs --privileged --workdir=/apache-zookeeper-3.7.0-bin -p 2181:2181 --restart=no --runtime=runc -d zookeeper-3.7.0 /docker-entrypoint.sh zkServer.sh start-foreground
### 安装MongGo
# docker run -d -p 27017:27017 --name cmdb-mongodb -e MONGO_INITDB_ROOT_USERNAME=cmdb_mogo -e MONGO_INITDB_ROOT_PASSWORD=cmdb_mogo mongo --replSet rs0
docker run -d -p 27017:27017 --name cmdb-mongodb mongo --replSet rs0
docker run -d -p 27018:27017 --name cmdb-mongodb2 mongo --replSet rs0
config = { _id : "rs0", members : [{_id : 0, host : "容器cmdb-mongodb的ip:27017"}]}
rs.initiate(config)
rs.status()
rs.add("容器cmdb-mongodb2的ip:27017")
use cmdb
db.createUser({user: "cmdb_mogo",pwd: "cmdb_mogo",roles: [ { role: "readWrite", db: "cmdb" },{ role: "readWrite", db: "monstache" } ]})
### cmdb服务配置,假设容器所在主机ip为 xx.xx.xx.xx
python init.py \
--discovery xx.xx.xx.xx:2181 \
--database cmdb \
--redis_ip xx.xx.xx.xx \
--redis_port 6379 \
--redis_pass wxPassword \
--mongo_ip xx.xx.xx.xx \
--mongo_port 27017 \
--mongo_user cmdb_mogo \
--mongo_pass cmdb_mogo \
--blueking_cmdb_url http://xx.xx.xx.xx:8808 \
--listen_port 8808 \
--user_info admin:admin \
--auth_enabled false
### 后台执行命令
go env -w GO111MODULE="on"
cd cmdb & go mod tidy
cd cmdb/src & make server VERSION=v1.0.0
### 前端执行命令
npm install --legacy-peer-deps
npm run build BUILD_OUTPUT=web1
### 远程调试的cmdb容器
docker run --name cmdb-code -p 3000:3000 -p 8808:8808 -v /home/admin/jack/images/cmdb/bk-cmdb:/opt/cmdb -v /home/admin/jack/images/cmdb/go:/opt/go -v /home/admin/jack/images/cmdb/packages:/opt/packages -t -d centos:latest /bin/bash
### 关闭yum ssl认证
vim /etc/yum.conf
sslverify=false
### go proxy
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOINSECURE=private.repo.com
### git 关闭 ssl认证
git config --global http.sslVerify false
### go根据系统编译的二进制文件
go env -w GOOS=linux
go env -w GOOS=windows
### go 代理安装依赖包,导入代理软件charles的证书,pem格式的内容贴到下边文件里最后
vim /etc/pki/tls/certs/ca-bundle.crt
### 启动ssh服务:
/usr/sbin/sshd -D &
### 查看go 依赖包
go list -m -json all
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151