基于Kubernetes(不推荐) 服务器环境基于中标麒麟v7.4;
服务器设置 修改服务器名
hostnamectl set-hostname xxx
修改日期
# 修改系统时间
date -s "2019-11-01 17:28:00"
# 修改硬件时间
hwclock --set --date "2019-11-01 17:28:00"
# 同步系统时间和硬件时间
hwclock --hctosys
# 保存(永久生效,不保存重启后失效)
hwclock -w 或者 clock -w
# 重启系统
reboot
修改时区
# 修改时区(创建软连接)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 将硬件写入主板
hwclock -w
Docker
tar zxvf docker-20.10.8.tgz
sudo cp docker/* /usr/bin/
vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
chmod +x /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl status docker
systemctl enable docker
docker --version
### Docker version 20.10.8, build 3967b7d
Gitlab
docker load < gitlab.tar
mkdir -p /root/docker_store/gitlab/data
mkdir -p /root/docker_store/gitlab/config
mkdir -p /root/docker_store/gitlab/logs
chmod -R 777 /root/docker_store/gitlab/
docker run -d --name gitlab \
--restart always \
--hostname 192.168.124.242 \
-p 443:443 -p 80:80 -p 23:22 \
-v /etc/localtime:/etc/localtime \
-v /root/docker_store/gitlab/config:/etc/gitlab \
-v /root/docker_store/gitlab/logs:/var/log/gitlab \
-v /root/docker_store/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:12.7.5-ce.0
Nexus 启动Nexus
docker load < nexus3.tar
#mkdir -p /root/docker_store/nexus/data
#chmod -R 777 /root/docker_store/nexus/
mkdir -p /root/docker_store
tar -xvf nexusdata.tar -C /root/docker_store
chmod -R 777 /root/docker_store/nexus/
docker run -d --restart=always --name nexus -p 8081:8081 \
--privileged=true \
-v /etc/localtime:/etc/localtime \
-e INSTALL4J_ADD_VM_PARAMS="-Xms2048M -Xmx2048M -XX:MaxDirectMemorySize=2048M" \
-v /root/docker_store/nexus/data:/nexus-data \
sonatype/nexus3:3.49.0
docker exec -it nexus /bin/bash
cat /nexus-data/admin.password
配置Nexus 创建仓库 jar 的 hosted
hosted 名称为 maven-netwisd
npm 的 hosted
hosted 的名称为 npm-netwisd
npm 的 public
public 的名称为 npm-public
安装Jdk
rpm -ivh jdk-17_linux-x64_bin.rpm
安装maven 解压maven安装包到/root/dev目录下,并在环境变量中添加执行下面命令:
#修改当前用户环境变量:
vi ~/.bashrc
#添加下面路径:
MAVEN_HOME=/root/dev/apache-maven-3.8.5
export PATH=$PATH:$MAVEN_HOME/bin
#:wq保存退出后执行:
source ~/.bashrc
安装git 在线服务器下载安装包方式 这个是在线服务器上提前下载的命令,不是离线服务器部署方式,可忽略,离线部署看下面
#使用yumdownloader,yumdownloader在yum-utils软件包里面
yum install yum-utils -y
#比如需要下载git的安装包和依赖
# yumdownloader --destdir=指定下载的软件包存放路径 --resolve 要安装的软件包
yumdownloader --destdir=/root/git --resolve git
#进入/root/git目录执行:
rpm -Uvh --force --nodeps *.rpm
离线安装git 解压git_offline.tar,并进入相应目录执行以下命令:
rpm -Uvh --force --nodeps *.rpm
安装nodejs环境 安装nodejs 解压缩包node-v16.14.2-linux-x64.tar.xz到/root/dev目录下,并在环境变量中添加下面内容:
export PATH=$PATH:/root/dev/node-v16.14.2-linux-x64/bin
安装pnpm
#解压缩包pnpm.tar,并copy目录到相应目录
tar -xvf pnpm.tar
mv pnpm /root/dev/node-v16.14.2-linux-x64/lib/node_modules
#做一个pnpm软链接到node的bin目录下
cd /root/dev/node-v16.14.2-linux-x64/bin
ln -s ../lib/node_modules/pnpm/bin/pnpm.cjs pnpm
安装JCR Jcr做为私服镜像中心和helm包管理中心,为项目提供拉取镜像和helm包的作用,在华北油田项目中,只做为轻量的helm包管理仓库;
安装离线包 安装离线依赖包:
rpm -ivh net-tools-2.0-0.22.20131004git.el7.x86_64.rpm
解压jfrog-artifactory-jcr-7.35.2-linux.tar.gz
tar -xvf jfrog-artifactory-jcr-7.35.2-linux.tar.gz
把解压后的文件夹放到/home目录中去;因为artifactory安装服务的脚本里会默认把当前目录的用户组和用户名设置为:artifactory
mv artifactory-jcr-7.35.2 /home
默认创建的用户artifactory为不能shell登录的用户,使用root用户进入
vi /etc/passwd ,把artifactory的:/sbin/nologin修改为:/bin/bash
安装系统服务 运行installService.sh,注意只能使用root用户,su切换到用户,或再起一个shell
/home/artifactory-jcr-7.35.2/app/bin/installService.sh
启动服务 安装成功后,启动服务 ,注意查看installService的相关日志,有错误会打印 切换用户到artifactory
su artifactory
systemctl start artifactory
systemctl enable artifactory
:::info 注意:一定要根据提示的信息,来解决具体可能的问题;不用百度,百度解决不了你的问题; :::
配置目标docker服务器的配置 这个在华北油田项目上,需要换成配置成华为云的 SWR(镜像中心),此处以JCR方式展现
vi /etc/docker/daemon.json
#增加:(注意json格式加逗号)—— arti.local为artifactory的地址,在/etc/hosts中配置上;
"insecure-registries": ["arti.local:8082"]
#重启docker
systemctl restart docker
#使用docker登录artifactory;
docker login arti.local:8082
#如果出现503错误,使用下面命令先Post请求
#命令连起来录入
curl -XPOST -vu admin:Netwisd*8 http://arti.local:8082/artifactory/ui/jcr/eula/accept
#最后出现Login Succeeded成功!
安装helm 安装
#移动可造势文件helm到/usr/local/bin
mv helm /usr/local/bin
chmod +x /usr/local/bin/*
配置 需要在/etc/hosts中增加相应的配置 Ipxxx arti.io
#添加仓库
helm repo add incloud4 http://arti.io:8081/artifactory/api/helm/helm --username admin --password Netwisd*8
#刷新下本地库
helm repo update
安装kubectl 安装
#移动可造势文件helm到/usr/local/bin
mv kubectl /usr/local/bin
chmod +x /usr/local/bin/*
配置 copy k8s集群的config配置文件到当前用户的工作目录下,如果没有,则创建
mkdir -p /root/.kube
#copy配置文件到此目录下;
配置完成后,测试k8s客户端是否完成,完成后,配置相应的别名,方便操作k8s集群,在当前用户环境变量中增加配置:
alias kc='kubectl'
alias kco='kubectl get pod'
alias kcs='kubectl get svc'
alias kcl='kubectl logs -f'
alias kcd='kubectl describe po'
安装gitlab-runner Gitlab-runner相当于一个监听器,用来监听gitlab的操作钩子,执行其自定义的脚本; 在构建的runner机器上(不要同gitlab在同一台服务器上,会影响gitlab性能)
安装
#移动可造势文件helm到/usr/local/bin
mv gitlab-runner /usr/local/bin
chmod +x /usr/local/bin/*
配置 安装并设置--user(设置为root)——不要按官网的使用特定用户,否则权限不够;
gitlab-runner install --working-directory /root/gitlab-runner --user root
gitlab-runner start
#查看
ps aux|grep gitlab-runner
在gitlab中相应的项目中CI/CD配置其runner,里面有相应的host和token 在构建的runner机器上执行如下,按提示录入相应的数据
gitlab-runner register
......
Mysql
docker load < mysql.tar
mkdir -p /root/docker_store/mysql/data
mkdir -p /root/docker_store/mysql/log
chmod -R 777 /root/docker_store/mysql/
docker run -d --name db \
--privileged=true --restart=always -p 3306:3306 \
-v /root/docker_store/mysql/data:/var/lib/mysql \
-v /root/docker_store/mysql/log:/var/log/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD="Netwisd*8" \
percona:8.0.18-9-centos \
--lower-case-table-names=1
docker exec -it -u root db /bin/bash
### 进入容器后操作
mysql -u root -p
use mysql;
select host,user from user where user='root';
update user set host = '%' where user ='root' and host='::1';
alter user 'root'@'localhost' identified by 'password' password expire never;
alter user 'root'@'localhost' identified with mysql_native_password by 'Netwisd*8';
flush privileges;
quit;
其他 Docker登录一下jcr 第一次登录成功后,会在~/.docker目录下创建config文件,用来记录jcr的凭证;
docker login arit.io:8082
输入用户名:admin 密码:Netwisd*8
Last modified: 20 一月 2025