?(一) 服務器采購 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 退出容器?
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
至此服務器初始化環境設置完成
清理廢棄容器,鏡像和網絡
docker system prune -a
WARNING! This will remove:- all stopped containers- all volumes not used by at least one container- all networks not used by at least one container- all images without at least one container associated to them