【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
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
3) 检查安装结果
docker --version
Docker version 1.13.1, build 7d71120/1.13.1
4 启动 Docker 后台服务
service docker start
5 配置docker镜像加速器
修改Docker配置文件
创建或编辑/etc/docker/daemon.json文件,添加镜像加速器地址:
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
# 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
3) 创建目录
mkdir /mnt/data/mysql/conf
mkdir /mnt/data/mysql/data
mkdir /mnt/data/mysql/log
mkdir /mnt/data/mysql/mysql-files
4) 创建文件
touch my.cnf
5) 修改文件
[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/bashsu rootapt-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" != "" ] ; thendocker stop $containerdocker rm $container
fi
image=`docker images |grep mochat | awk '{print $3}'`
echo image
if [ "$image" != "" ] ; thendocker rmi $image
fi
docker build -t helloworld:v1 .
docker run -d --name helloworld -p 8081:8081 mochat-app:v1
docker image prune -f
至此服务器初始化环境设置完成