【CentOs】构建云服务器部署环境

(一) 服务器采购 2 CPU4G 内存40G 系统盘 80G 数据盘

(二) 服务器安全组和端口配置

(三) 磁盘挂载

1 登录

root

2 查看目前磁盘使用情况

df -h

3 查看磁盘挂载情况 识别哪些磁盘没挂载

fdisk -l

4 对未挂载磁盘做分区

fdisk /dev/vdb

输入m,

根据提示依次输入"n","p","1",两次回车,"wq",分区就开始了

5 查看所有分区,vdb分区已经建立

fdisk -l

6 格式化新分区

输入命令 mkfs.ext4 /dev/vdb ##实际分区名

7 添加分区信息

输入命令:echo "/dev/vdb /mnt/data ext4 defaults 0 0" >> /etc/fstab

8挂载数据盘

输入命令:mount /dev/vdb /mnt/data

9 验证挂载情况 输入df -h 查看是否挂载成功.

(四) 安装 jdk

手动解压JDK的压缩包,然后设置环境变量

1.在/usr/目录下创建java目录

root@localhost \~# mkdir/usr/java

root@localhost \~# cd /usr/java

2.下载jdk,然后解压

root@localhost java# curl -O http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz

root@localhost java# tar -zxvf jdk-7u79-linux-x64.tar.gz

3.设置环境变量

root@localhost java# vi /etc/profile

在profile中添加如下内容:

#set java environment

Lua 复制代码
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

让修改生效:

root@localhost java# source /etc/profile

4.验证JDK有效性

root@localhost java# java -version

java version "1.7.0_79"

Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

(五) 安装docker

  1. Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

uname -r

2)安装 Docker

Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

yum -y install docker

  1. 检查安装结果

docker --version

Docker version 1.13.1, build 7d71120/1.13.1

4 启动 Docker 后台服务

service docker start

5 配置docker镜像加速器

‌修改Docker配置文件‌

创建或编辑/etc/docker/daemon.json文件,添加镜像加速器地址:

Lua 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://<加速器地址>"]
}
EOF

‌重启Docker服务

sudo systemctl daemon-reload

sudo systemctl restart docker

(六) docker安装redis

1 拉取redis镜像

docker pull redis:6.2.6

2 查看镜像

docker images

3 创建redis配置文件数据卷

root@syf/# mkdir -p /mnt/data/redis/conf

root@syf/# cd /mnt/data/redis/conf

4-创建文件

root@syf conf# touch redis.conf

root@syf conf# ls

redis.conf

5-编写文件内容 (进入后 i 子母键插入,黏贴下面配置,:wq! 保存并退出)

root@syf conf# vim redis.conf

Lua 复制代码
# Redis服务器配置 
# 绑定IP地址
#解除本地限制 注释bind 127.0.0.1  
#bind 127.0.0.1  

# 服务器端口号  
port 6379 
 
#配置密码,不要可以删掉
requirepass syf133618
  
#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no

#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid  
 
#默认为no,redis持久化,可以改为yes
appendonly yes
 
 
#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300
 
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000
 
# 按需求调整 Redis 线程数
tcp-backlog 511
 
# 设置数据库数量,这里设置为16个数据库  
databases 16

# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
  
# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128
 
# 是否记录系统日志,默认为yes  
syslog-enabled yes  
 
#指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice
  
# 日志输出文件,默认为stdout,也可以指定文件路径  
logfile stdout
 
# 日志文件
#logfile /var/log/redis/redis-server.log
 
 
# 系统内存调优参数   
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

6 启动redis容器

docker run -p 6379:6379 --name redis -d redis:latest --restart=always \

-v /mnt/data/redis/conf/redis.conf:/etc/redis/redis.conf \

-v /mnt/data/redis/data:/data \

-v /mnt/data/redis/logs:/logs \

redis-server /etc/redis/redis.conf

(七) docker安装mysql

1)拉取镜像

docker pull mysql:8.0.27

2)查看所拉取的镜像

docker images

  1. 创建目录

mkdir /mnt/data/mysql/conf

mkdir /mnt/data/mysql/data

mkdir /mnt/data/mysql/log

mkdir /mnt/data/mysql/mysql-files

  1. 创建文件

touch my.cnf

  1. 修改文件
php 复制代码
[client]
# 端口号
port=3306
 
[mysql]
no-beep
default-character-set=utf8mb4
 
[mysqld]
bind-address = 0.0.0.0
# 端口号
port=3306
# 数据目录
datadir=/var/lib/mysql
# 新模式或表时将使用的默认字符集
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
# 将 SQL 模式设置为严格
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
#  最大连接数
max_connections=1024
# 表缓存
table_open_cache=2000
# 表内存
tmp_table_size=16M
# 线程缓存
thread_cache_size=10
# 设置大小写不敏感
lower_case_table_names=1
 
# myisam设置
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=0
read_rnd_buffer_size=0
 
# innodb设置
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=48M
innodb_thread_concurrency=33
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
# 其他设置
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000 

6 重新创建容器

docker run \

-p 3306:3306 \

--restart=always \

--name mysql \

-v /mnt/data/mysql/logs:/var/log/mysql \

-v /mnt/data/mysql/data:/var/lib/mysql \

-v /mnt/data/mysql/conf:/etc/mysql \

-v /mnt/data/mysql/data/mysql-files:/var/lib/mysql-files \

-e MYSQL_ROOT_PASSWORD=1qaz2wsx \

-d mysql:8.0.24

7 进入容器

docker exec -ti mysql /bin/bash

8 连接mysql

mysql -u root -p

entern 回车

9 执行修改root任何ip可以连接并定义密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';

FLUSH PRIVILEGES;

exit 退出容器

10 docker restart mysql

(八) docker安装jenkins

1)拉取jenkins镜像

复制代码
docker pull jenkins/jenkins

2)构建jenkins_home作为安装目录

复制代码
[root@localhost /] mkdir /mnt/data/jenkins_home
[root@localhost /] chmod 777 -R /mnt/data/jenkins_home

3)关闭 selinux

复制代码
[root@localhost /] getenforce
Enforcing
[root@localhost /] setenforce 0
[root@localhost /] getenforce
Permissive

4 启动容器,映射对应端口号

复制代码
docker run -u root \
-d --name=jenkins \
-p 8088:8080 \
-p 10240:50000 \
-v /mnt/data/jenkins_home:/var/jenkins_home \
-e JAVA_OPTS="-Dhudson.model.DownloadService.noSignatureCheck=true" \
jenkins/jenkins:lts-jdk8

5 上传jdk,maven 包到/mnt/data/jenkins_home目录下

6 安装git

复制代码
    docker exec -it <jenkins容器名称或ID> /bin/bash
    su root
    apt-get update && apt-get install -y git

7 配置构建环境

配置插件镜像地址 https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

8 全局配置jdk home || maven home

JAVA /var/jenkins_home/jdk1.8.0_333

Maven /var/jenkins_home/apache-maven-3.9.9

9 新建项目配置 Source Code Management

https://gitee.com/xxxx/xxxx.git

配置username/password

10 安装Publish over SSH插件

Manage Jenkins->System Configuration->Publish over SSH (配置并设置宿主机密码)

11 post build action->set build artifacts over ssh

复制代码
rm -rf /mnt/data/app/*.jar
rm -rf /mnt/data/app/Dockerfile
mv /mnt/data/jenkins_home/workspace/mochat-app/mochat-app/target/*.jar /mnt/data/app/
mv /mnt/data/jenkins_home/workspace/mochat-app/Dockerfile /mnt/data/app/
cd  /mnt/data/app
./deploy.sh

container=`docker ps -a |grep helloworld | awk '{print $1}'`
echo $container
if [ "$container" != "" ] ; then
    docker stop $container
    docker rm $container
fi
image=`docker images |grep mochat | awk '{print $3}'`
echo image
if [ "$image" != "" ] ; then
    docker rmi $image
fi
docker build -t helloworld:v1 .
docker run -d --name helloworld -p 8081:8081 mochat-app:v1
docker image prune -f

至此服务器初始化环境设置完成

相关推荐
程序员龙叔6 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
大树889 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
用户8356290780519 小时前
使用 Python 操作 Word 内容控件
后端·python
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质9 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz10 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工10 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
码云骑士10 小时前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python
酣大智11 小时前
ARP代理--工作原理
运维·网络·arp·arp代理