从零开始的云计算生活——项目实战

该文章已生成可运行项目,

目录

一.项目需求

二.主机清单与角色分配 

三.基础环境部署(所有节点)

系统初始化

安全加固与工具集

内核参数优化(所有节点)

四.各主机需要安装的应用列表

五.NFS存储服务器和ELK日志系统部署(在elk_nfs节点上操作)

1.安装NFS服务

2. 创建共享目录

3. 配置NFS共享

4. 启动NFS服务

5.安装Elasticsearch,logstash,kibana

6.配置elk参数

六.Web服务器部署(在web_01和web_02上操作)

1. 安装NFS客户端并挂载共享目录

2. 部署PHP环境(用于Discuz)

3. 部署Tomcat环境(用于Java商城)(java8,tomcat8)

​编辑​编辑​编辑

4.部署Nginx

5. 部署应用(示例,实际需要下载应用代码)

七.负载均衡器部署(在lb_01和lb_02上操作)

1. 安装HAProxy和Keepalived

2. 配置HAProxy(两台负载均衡器配置相同)

3. 配置Keepalived(实现高可用)

八.Redis高可用部署(在redis_01和redis_02上操作)

1. 安装Redis

2. 配置主从复制

​编辑​编辑

3. 启动Redis

4. 验证主从

九.MySQL高可用部署(在db_01和db_02上操作)

6.1 安装MySQL

6.2 初始化MySQL

6.3 配置主主复制

6.4 配置主主复制

6.5 检查复制状态

十.Zabbix监控部署(在zas_00节点上操作)

1. 安装Zabbix Server

2. 创建数据库(在MySQL主节点上操作,比如db_01)

3. 导入初始数据(在zas_00上操作)

验证导入结果

4. 配置Zabbix Server连接数据库

5. 启动Zabbix Server

6. 配置PHP时区(Zabbix前端)

监控全部服务器

十一.Rsync备份服务器(在rbk_00节点上操作)

1. 安装Rsync

2. 配置Rsync服务端

3. 创建备份目录

4. 启动Rsync服务

5.在NFS服务器(elk_nfs)上设置实时同步

任务2代理层可以通过HAproxy基于ACL实现不同的域名访问到不同的应用上。

任务五部署ELK日志监控系统,收集所有服务器的日志信息。被监控端使用filebeat采集日志信息

任务八采用role角色方式实现自动化部署

创建主机清单

设置全局变量(group_vars/all.yml)

创建角色(Roles)

编写主剧本(site.yml)

执行部署


一.项目需求

1.WEB服务器层部署nginx与php环境;tomcat环境;分别部署Discuz(基于PHP)和线上商城应用(基于java),业务应用的数据存储在nfs服务器中。
2.代理层可以通过HAproxy基于ACL实现不同的域名访问到不同的应用上。
3. Reids缓存层实现高可用。
4.MySQL数据库层实现高可用。
5.部署ELK日志监控系统,收集所有服务器的日志信息。被监控端使用filebeat采集日志信息
6.部署Zabbix监控系统,监控:系统、中间件等
7.部署Rsync备份系统,使得nfs服务的数据能够实时备份。
8.整套项目最终汇写成Ansible部署的Plavbook脚本,采用role角色方式实现自动化部署

二.主机清单与角色分配 

主机名 IP地址 角色 核心应用
lb_01 192.168.71.111 主负载均衡调度器 HAproxy + Keepalived
lb_02 192.168.71.112 备负载均衡调度器 HAproxy + Keepalived
web_01 192.168.71.113 应用服务器1 Nginx + PHP + Tomcat
web_02 192.168.71.114 应用服务器2 Nginx + PHP + Tomcat
redis_01 192.168.71.115 Redis主节点 Redis-Server + Sentinel
redis_02 192.168.71.116 Redis从节点 Redis-Server + Sentinel
db_01 192.168.71.117 MySQL主数据库 MySQL-Server 
db_02 192.168.71.118 MySQL从数据库 MySQL-Server 
elk_nfs 192.168.71.119 日志存储与共享 NFS-Server + Elasticsearch + Logstash + Kibana
zab_ans 192.168.71.120 监控与自动化中心 Zabbix-Server + Ansible
rsy_bk 192.168.71.121 备份服务器 Rsync-Server + Inotify

三.基础环境部署(所有节点)

系统初始化
# 设置主机名(以lb_01为例)
sudo hostnamectl set-hostname lb_01

# 配置静态IP(所有节点)
sudo tee /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.71.111
PREFIX=24
GATEWAY=192.168.71.2
DNS1=8.8.8.8

EOF

# 全局hosts解析
sudo tee -a /etc/hosts <<EOF
192.168.71.111 lb_01
192.168.71.112 lb_02
192.168.71.113 web_01
192.168.71.114 web_02
192.168.71.115 redis_01
192.168.71.116 redis_02
192.168.71.117 db_01
192.168.71.118 db_02
192.168.71.119 elk_nfs
192.168.71.120 zab_ans
192.168.71.121 rsy_bk
EOF
安全加固与工具集
# 关闭防火墙(测试环境)
sudo systemctl stop firewalld && sudo systemctl disable firewalld

# 禁用SELinux
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# 安装基础工具
sudo yum install -y epel-release
sudo yum install -y vim net-tools wget curl telnet chrony sshpass

# 时间同步
sudo systemctl enable chronyd && sudo systemctl start chronyd
sudo chronyc sources
内核参数优化(所有节点)
# 增加文件描述符限制
sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF

# 内核参数优化
sudo tee -a /etc/sysctl.conf <<EOF
net.core.somaxconn = 2048
net.ipv4.tcp_max_syn_backlog = 4096
vm.swappiness = 10
vm.overcommit_memory = 1
EOF
sudo sysctl -p

四.各主机需要安装的应用列表

主机类型 必需安装包
调度器 haproxy keepalived
Web节点 nginx php-fpm php-mysqlnd tomcat8 java-8
Redis节点 redis sentinel keepalived (VIP管理)
DB节点 mysql-server 
ELK/NFS nfs-utils elasticsearch logstash kibana filebeat
监控中心 zabbix-server-mysql zabbix-web-mysql zabbix-agent2 ansible
备份节点 rsync inotify-tools

根据项目需求,我们为每台主机规划需要安装的软件:

  1. 调度器 (lb_01, lb_02)​:

    • HAProxy(用于负载均衡)
    • Keepalived(用于VIP高可用)
  2. 应用服务器 (web_01, web_02)​:

    • Nginx(Web服务器)
    • PHP(运行Discuz)
    • Tomcat(运行Java商城应用)
    • 其他依赖:PHP扩展(如php-fpm, php-mysqlnd等)、JDK
  3. Redis服务器 (redis_01, redis_02)​:

    • Redis(缓存服务)
    • Redis Sentinel(实现高可用)
    • Keepalived(用于VIP漂移,可选,但需求中要求高可用,通常使用Sentinel+VIP方式)
  4. 数据库服务器 (db_01, db_02)​:

    • MySQL(数据库服务)
    • MHA或Galera Cluster相关软件(实现高可用)
    • 如果使用MHA,则需要额外的管理节点(但这里没有单独节点,可能安装在db_01或db_02上,或者利用zas_00)
  5. ELK与NFS服务器 (elk_nfs)​:

    • NFS服务端(共享存储)
    • Elasticsearch(日志存储)
    • Logstash(日志处理)
    • Kibana(日志展示)
    • 同时,该主机需要配置为NFS服务器
  6. Zabbix与Ansible服务器 (zas_00)​:

    • Zabbix Server(监控服务)
    • Zabbix Agent(自身监控)
    • Ansible(自动化部署)
    • 可能还需要安装Zabbix Web前端(需要Web服务器和数据库,数据库可以连接db_01/db_02)
  7. Rsync备份服务器 (rbk_00)​:

    • Rsync(备份服务)
    • 可能还需要inotify-tools(用于实时备份,但通常安装在NFS服务器上触发)

五.NFS存储服务器和ELK日志系统部署(在elk_nfs节点上操作)

1.安装NFS服务

dnf install nfs-utils -y

2. 创建共享目录

mkdir -p /data/web_apps
chmod 777 /data/web_apps  # 为了方便,赋予所有用户读写权限,生产环境需根据用户权限设置

3. 配置NFS共享

# 编辑/etc/exports文件
vim /etc/exports

# 添加以下内容,允许整个网段访问(根据你的网络情况,这里是192.168.71.0/24)
/data/web_apps 192.168.71.0/24(rw,sync,no_root_squash)

4. 启动NFS服务

systemctl enable --now nfs-server
exportfs -r  # 重新加载配置
exportfs      # 查看共享的目录

5.安装Elasticsearch,logstash,kibana

6.配置elk参数

# 配置Elasticsearch
vim /etc/elasticsearch/elasticsearch.yml

修改以下参数:

network.host: 0.0.0.0
cluster.name: my-cluster
node.name: elk_nfs


# 配置Kibana
vim /etc/kibana/kibana.yml


修改以下参数:

server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elk_nfs:9200"]

六.Web服务器部署(在web_01和web_02上操作)

1. 安装NFS客户端并挂载共享目录

# 安装NFS客户端工具
dnf install nfs-utils -y

# 创建本地挂载点
mkdir /mnt/web_apps

# 挂载NFS共享目录
mount -t nfs elk_nfs:/data/web_apps /mnt/web_apps

# 设置开机自动挂载
echo "elk_nfs:/data/web_apps /mnt/web_apps nfs defaults 0 0" >> /etc/fstab

# 查看挂载情况
df -h

2. 部署PHP环境(用于Discuz)

# 启用PHP模块
dnf module enable php:7.4 -y

# 安装PHP及相关扩展
dnf install php php-fpm php-mysqlnd php-gd php-mbstring -y

# 启动php-fpm服务
systemctl enable --now php-fpm

# 检查状态
systemctl status php-fpm

3. 部署Tomcat环境(用于Java商城)(java8,tomcat8)

# 安装OpenJDK和Tomcat
dnf install java tomcat -y

# 启动Tomcat服务
systemctl enable --now tomcat

# 检查状态
systemctl status tomcat

4.部署Nginx

# 安装Nginx
dnf install nginx -y

# 配置Nginx支持PHP和Tomcat

# 在/etc/nginx/conf.d/目录下创建两个配置文件:discuz.conf和shop.conf

# discuz.conf配置(用于Discuz)
cat &
本文章已经生成可运行项目
考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)内容概要:本文围绕“考虑柔性负荷的综合能源系统低碳经济优化调度”展开,重点研究在碳交易机制下如何实现综合能源系统的低碳化与经济性协同优化。通过构建包含风电、光伏、储能、柔性负荷等多种能源形式的系统模型,结合碳交易成本与能源调度成本,提出优化调度策略,以降低碳排放并提升系统运行经济性。文中采用Matlab进行仿真代码实现,验证了所提模型在平衡能源供需、平抑可再生能源波动、引导柔性负荷参与调度等方面的有效性,为低碳能源系统的设计与运行提供了技术支撑。; 适合人群:具备一定电力系统、能源系统背景,熟悉Matlab编程,从事能源优化、低碳调度、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究碳交易机制对综合能源系统调度决策的影响;②实现柔性负荷在削峰填谷、促进可再生能源消纳中的作用;③掌握基于Matlab的能源系统建模与优化求解方法;④为实际综合能源项目提供低碳经济调度方案参考。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件设置及碳交易成本的量化方式,可进一步扩展至多能互补、需求响应等场景进行二次开发与仿真验证。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值