所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

FusionCloud 6.3.1 用户指南 (Region Type I) 10

评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
vAPP部署Discuz

vAPP部署Discuz

场景介绍

本实例以部署Discuz为例,演示如何实现通过浏览器访问Web应用。

访问Web应用的要求如下:

  • Web服务器与外网互通,能为用户提供Web访问
  • 数据库服务器与外网互通,且与Web服务器共用网络,能为用户提供数据访问

访问Web应用模型如图38-5所示。

图38-5 访问Web应用模型

需求分析

针对本实例中的用户需求,分析如下:

  1. 需要将弹性负载均衡与虚拟私有云搭配使用,通过弹性负载均衡访问应用。
  2. 弹性伸缩组做Web容器,裸金属服务器做数据库。
  3. 设置弹性伸缩,包括设置伸缩组、伸缩配置以及伸缩策略,以实现当自动伸缩云服务器,并自动接入负载均衡器后端。
  4. 弹性伸缩的服务器需要安装Discuz软件,裸金属服务器需要安装MySQL软件。
  5. 软件需要从软件源服务器获取软件后通过脚本安装到服务器。

通过以上分析,可以通过申请包含一个弹性负载均衡、一个弹性伸缩组、一台裸金属服务器、两个网络和两个脚本的vAPP实例,实现业务的发放。

准备

  • 已获取登录ManageOne运营面的VDC管理员、代维管理员或VDC业务员帐户和密码。
  • 已存在可用的VPC(Virtual Private Cloud)和网络。具体操作请参见创建虚拟私有云。
  • 已存在虚拟负载均衡,虚拟负载均衡的VPC和网络为准备的VPC和网络,并已为弹性负载均衡绑定弹性IP。具体操作请参见申请负载均衡。
  • 已存在可用的弹性云服务器(软件源云服务器)。具体操作请参见弹性云服务器。
  • 已完成可用弹性云服务器的配置。具体操作请参见如何配置软件源服务器?。
  • 已存在可用的弹性IP、安全组、防火墙。其中,弹性IP已与弹性云服务器绑定。具体操作请参见创建安全组及添加安全组规则和创建弹性IP。
  • 已添加安全组规则。创建的云服务器会默认添加安全组,安全组规则默认不允许外部访问组内的虚拟机,需要修改安全组规则以使vAPP云服务器需要和外界互通。具体操作请参见创建安全组及为安全组添加安全组规则。
  • 已配置防火墙。防火墙创建后默认为未激活状态,使用前需要配置防火墙规则和关联子网。具体操作请参见虚拟防火墙。
  • 已存在可用的镜像,且镜像安装了Cloud-Init软件。镜像制作详细操作请参见镜像服务。
  • 已存在的弹性云服务器网络与本地网络互通。即在本地ping申请的云服务器的IP地址,收到回复。
    说明:

    此处验证本地到申请的云服务器网络是否连通的时候,IP地址为绑定的弹性IP地址,不是云服务器的私有IP地址。

  • 已将需安装的软件上传至软件源服务器。上传的软件需具有静默安装功能。本实例使用的软件有:apache2-2.2.10-2.24.5、php5-5.2.6-50.24.1、discuz7.2_full_utf8、mysql 5.0.67-13.20.1.x86_64。
  • 已在本地编写脚本文件。脚本文件内容请参见脚本样例

配置思路

准备项完成后,需要部署弹性伸缩组、服务器,并配置网络、负载均衡。

配置思路分析如下:

  1. 创建vAPP产品:创建满足包含一个弹性负载均衡、一个弹性伸缩组、一台裸金属服务器、两个网络和两个脚本的vAPP产品。
  2. 发布并上线vAPP产品:创建完成的vAPP产品还处于草稿状态,需要发布并上线vAPP,才能使用vAPP产品申请vAPP实例。
  3. 上传脚本:上传包含有安装软件的脚本文件,在申请产品时使用。
  4. 申请vAPP实例:申请发放vAPP业务。
  5. 验证:验证业务发放是否成功。

基于以上分析,配置流程如图38-6所示:

图38-6 配置流程

配置操作

创建vAPP产品

  1. 使用浏览器,以VDC管理员或代维管理员帐号登录ManageOne。

    登录地址:https://ManageOne运营面浮动IP地址:31943。

  2. 在主菜单中选择“VDC > 产品管理”。
  3. 在导航栏左上角下拉框选择地域和Project。
  4. 选择管理与部署 > vAPP
  5. 单击“创建vAPP产品”,进入创建产品的界面。
  6. 在弹出的“创建vAPP产品”对话框中,输入产品名称和描述,单击“确定”
  7. 根据已规划的模型,在左侧图元列表中,选择包含的组成元素,并将其拖动至中间面板区域中。其中,脚本图元需要拖动至图元之中,并配置元素之间的关联关系。表示脚本在该资源中安装或运行。本例中设计如图38-7所示。

    vAPP产品名称设置为“vAPP_discuz”,各个元素均配置为“用户自定义”,由用户申请时填输入。
    图38-7 部署设计

  8. 单击“提交产品”。

发布并上线vAPP产品

  1. 步骤 8中创建的vAPP产品处,单击,发布vAPP产品。

    在弹出的“发布设置”对话框中,可以设置可见范围和审批流程。设置完成后,单击“确定”

  2. 单击,完成vAPP产品的上线。

上传脚本

  1. 使用浏览器,以VDC管理员、VDC业务员或代维管理员帐号登录ManageOne。

    登录地址:https://ManageOne运营面浮动IP地址:31943。

  2. 选择“控制台 > 管理与部署 > vAPP”。
  3. 在左树菜单中选择脚本管理 > 我的脚本
  4. 单击“添加脚本”,填写脚本信息。

    选择系统类型,单击“脚本名称”后的“上传文件”,选择已编写的脚本文件上传。

  5. 单击“确定”。

申请vAPP实例

  1. 在左树菜单中单击“vAPP实例”。
  2. 单击“申请vAPP”。
  3. 选择已有网络、已添加的脚本、填写弹性负载均衡、裸金属服务器、vAPP实例等信息。

    信息填写说明如下:

    表38-9 填写说明

    资源名称

    填写说明

    取值

    弹性伸缩组

    填写弹性伸缩组中服务器信息

    • 可用分区:kvm.type
    • 镜像类型:公共镜像
    • 镜像:Linux、vapp_kvm_init_5G_new(5GB)
    • 规格:通用计算型、云硬盘、2核、1GB、5GB、VAppTest
    • 弹性云服务器名称:Web01
    • 登录方式:密码
    • 密码:Huawei@123

    填写伸缩策略。

    • 最大弹性云服务器个数:3
    • 最小弹性云服务器个数:1
    • 初始弹性云服务器个数:1
    • 冷却时间(分钟):1
    • 组内策略:
      • 扩容策略:统计周期为5分钟、连续为1次、CPU使用率大于或等于80%、动作类型为扩容、步长为1台、冷却时间为1分钟
      • 减容策略:统计周期为5分钟、连续为1次、CPU使用率小于或等于50%、动作类型为减容、步长为1台、冷却时间为1分钟

    裸金属服务器

    填写裸金属服务器信息。

    • 可用分区:ironic.type
    • 镜像类型:公共镜像
    • 镜像:Linux、ironic_cloud_init(0GB)
    • 规格:本地硬盘、24核、156.69GB、1张、8008GB
    • 裸金属服务器名称:Bms_db
    • 登录方式:密码
    • 密码:Huawei@CLOUD8

    网络

    选择已准备的VPC网络,配置外部网络。

    • VPC:vpcvapp
    • 网络:subnetvapp(192.168.66.0/24)

    选择已准备的VPC网络,配置内部网络。

    • VPC:vpcvapp
    • 网络:subnetvapp(192.168.66.0/24)

    弹性负载均衡

    • 网络:选择已准备的VPC网络。
    • 后端端口:提供服务的端口号。
    • 监听器:选择已准备的监视器。
    • 网络:Network-63c3(192.168.66.0/24)
    • 后端端口:80
    • 监视器:ulb-vapp(listenervapp)

    脚本

    选择伸缩组服务器使用的脚本,并配置脚本参数。

    • Discuz_Install_vAPP
    • softwareIP:192.168.66.218
    • mysqlIP:Bms_db、Network-internal

    选择裸金属服务器使用的脚本,并配置脚本参数。

    • MySql_Install_vAPP
    • 192.168.66.218

  4. 确认信息后,单击“提交申请”。

验证业务发放

  1. 在地址栏中,输入访问Web应用的地址,按“Enter”。

    地址格式为:http://弹性负载均衡的弹性IP地址:弹性负载均衡的前端端口/discuz

    例如,弹性负载均衡的弹性IP地址为192.168.246.99,弹性负载均衡的前端端口为5000,则在地址栏中输入“http://192.168.246.99:5000/discuz”。

    显示登录界面,表示Apache安装成功,即Apache中的Discuz应用能正常访问到MySQL数据库。

  2. 通过加压工具创建大量Request请求以提升vAPP实例云服务器的入方向网络资源消耗,验证伸缩组在达到组内策略中规定的使用率时能否伸缩。

    • 执行加压后,弹性伸缩组成功伸出两台云服务器,伸出来的云服务器名称和原来的名称一样。
    • 停止执行加压后,伸缩组自动收缩。
      说明:

      用户可根据设置的组内策略自行选择合适的加压方式进行测试验证,上述方法仅供参考。

RTS模板样例

除了通过可视化界面部署,使用RTS模板,也可以实现Discuz部署。使用RTS模板部署Discuz时,需导入RTS模板并使用导入的RTS模板创建产品,具体操作请参见导入vAPP模板和使用模板创建产品。

RTS模板内容如下:
{
    "AsGroup_62101820.template": {
        "heat_template_version": "2013-05-23",
        "parameters": {
            "MeteringStack": {
                "type": "string"
            },
            "Port_3ad3_network": {
                "type": "string"
            },
            "Port_f887_network": {
                "type": "string"
            },
            "Script_62101820_8b50mysqlIP_mysqlIP": {
                "type": "string"
            },
            "SysVolume_62101820_1_image": {
                "type": "string"
            },
            "VM_62101820_availability_zone": {
                "type": "string"
            },
            "VM_62101820_flavor": {
                "type": "string"
            },
            "VM_62101820_name": {
                "type": "string"
            }
        },
        "resources": {
            "Port_3ad3": {
                "properties": {
                    "network": {
                        "get_param": "Port_3ad3_network"
                    }
                },
                "type": "OS::Neutron::Port"
            },
            "Port_f887": {
                "properties": {
                    "network": {
                        "get_param": "Port_f887_network"
                    }
                },
                "type": "OS::Neutron::Port"
            },
            "Script_62101820_8b50": {
                "properties": {
                    "config": {
                        "str_replace": {
                            "params": {},
                            "template": {
                                "Fn::Join": [
                                    "",
                                    [
                                       Discuz_Install_Script
                                    ]
                                ]
                            }
                        }
                    },
                    "group": "VM_62101820"
                },
                "type": "OS::Heat::SoftwareConfig"
            },
            "SysVolume_62101820_1": {
                "properties": {
                    "availability_zone": "kvm.type2",
                    "image": {
                        "get_param": "SysVolume_62101820_1_image"
                    },
                    "metadata": {
                        "__vAPP": ""
                    },
                    "name": "vAPP-evs-5047",
                    "size": "5",
                    "volume_type": "VAppTest"
                },
                "type": "OS::Cinder::Volume"
            },
            "VM_62101820": {
                "properties": {
                    "availability_zone": {
                        "get_param": "VM_62101820_availability_zone"
                    },
                    "block_device_mapping_v2": [
                        {
                            "boot_index": "0",
                            "volume_id": {
                                "get_resource": "SysVolume_62101820_1"
                            }
                        }
                    ],
                    "flavor": {
                        "get_param": "VM_62101820_flavor"
                    },
                    "metadata": {
                        "metering.groupname": {
                            "get_param": "MeteringStack"
                        }
                    },
                    "name": {
                        "get_param": "VM_62101820_name"
                    },
                    "networks": [
                        {
                            "port": {
                                "get_resource": "Port_f887"
                            }
                        },
                        {
                            "port": {
                                "get_resource": "Port_3ad3"
                            }
                        }
                    ],
                    "tags": [
                        "__vAPP"
                    ],
                    "user_data": {
                        "get_resource": "VM_62101820_MultipartMime"
                    },
                    "user_data_format": "RAW"
                },
                "type": "OS::Nova::Server"
            },
            "VM_62101820_MultipartMime": {
                "properties": {
                    "parts": [
                        {
                            "config": {
                                "get_resource": "Script_62101820_8b50"
                            },
                            "filename": "Script_62101820_8b50",
                            "subtype": "x-shellscript",
                            "type": "text"
                        }
                    ]
                },
                "type": "OS::Heat::MultipartMime"
            }
        }
    },
    "Parent": {
        "heat_template_version": "2013-05-23",
        "parameters": {
            "Bms_62101823_availability_zone": {
                "type": "string"
            },
            "Bms_62101823_flavor": {
                "type": "string"
            },
            "Bms_62101823_image": {
                "type": "string"
            },
            "Bms_62101823_name": {
                "type": "string"
            },
            "Port_3ad3_network": {
                "type": "string"
            },
            "Port_42c2_network": {
                "type": "string"
            },
            "Port_f887_network": {
                "type": "string"
            },
            "SysVolume_62101820_1_image": {
                "type": "string"
            },
            "VM_62101820_availability_zone": {
                "type": "string"
            },
            "VM_62101820_flavor": {
                "type": "string"
            },
            "VM_62101820_name": {
                "type": "string"
            }
        },
        "resources": {
            "AsGroup_62101820": {
                "properties": {
                    "cooldown": "60",
                    "desired_capacity": "1",
                    "max_size": "3",
                    "min_size": "1",
                    "resource": {
                        "properties": {
                            "MeteringStack": {
                                "get_attr": [
                                    "RandomUUID_AsGroup_62101820",
                                    "value"
                                ]
                            },
                            "Port_3ad3_network": {
                                "get_param": "Port_3ad3_network"
                            },
                            "Port_f887_network": {
                                "get_param": "Port_f887_network"
                            },
                            "Script_62101820_8b50mysqlIP_mysqlIP": {
                                "get_attr": [
                                    "Port_42c2",
                                    "fixed_ips",
                                    0,
                                    "ip_address"
                                ]
                            },
                            "SysVolume_62101820_1_image": {
                                "get_param": "SysVolume_62101820_1_image"
                            },
                            "VM_62101820_availability_zone": {
                                "get_param": "VM_62101820_availability_zone"
                            },
                            "VM_62101820_flavor": {
                                "get_param": "VM_62101820_flavor"
                            },
                            "VM_62101820_name": {
                                "get_param": "VM_62101820_name"
                            }
                        },
                        "type": "AsGroup_62101820.template"
                    }
                },
                "type": "OS::Heat::AutoScalingGroup"
            },
            "Bms_62101823": {
                "properties": {
                    "availability_zone": {
                        "get_param": "Bms_62101823_availability_zone"
                    },
                    "flavor": {
                        "get_param": "Bms_62101823_flavor"
                    },
                    "image": {
                        "get_param": "Bms_62101823_image"
                    },
                    "metadata": {
                        "resourceType": "berametal"
                    },
                    "name": {
                        "get_param": "Bms_62101823_name"
                    },
                    "networks": [
                        {
                            "port": {
                                "get_resource": "Port_42c2"
                            }
                        }
                    ],
                    "tags": [
                        "__vAPP",
                        "__type_baremetal"
                    ],
                    "user_data": {
                        "get_resource": "Bms_62101823_MultipartMime"
                    },
                    "user_data_format": "RAW"
                },
                "type": "OS::Nova::Server"
            },
            "Bms_62101823_MultipartMime": {
                "properties": {
                    "parts": [
                        {
                            "config": {
                                "get_resource": "Script_62101823_962d"
                            },
                            "filename": "Script_62101823_962d",
                            "subtype": "x-shellscript",
                            "type": "text"
                        }
                    ]
                },
                "type": "OS::Heat::MultipartMime"
            },
            "Policy_62101820_CPU_SCALEIN_2": {
                "properties": {
                    "adjustment_type": "change_in_capacity",
                    "auto_scaling_group_id": {
                        "get_resource": "AsGroup_62101820"
                    },
                    "cooldown": "60",
                    "scaling_adjustment": -1
                },
                "type": "OS::Heat::ScalingPolicy"
            },
            "Policy_62101820_CPU_SCALEOUT_1": {
                "properties": {
                    "adjustment_type": "change_in_capacity",
                    "auto_scaling_group_id": {
                        "get_resource": "AsGroup_62101820"
                    },
                    "cooldown": "60",
                    "scaling_adjustment": 1
                },
                "type": "OS::Heat::ScalingPolicy"
            },
            "Port_42c2": {
                "properties": {
                    "network": {
                        "get_param": "Port_42c2_network"
                    }
                },
                "type": "OS::Neutron::Port"
            },
            "RandomUUID_AsGroup_62101820": {
                "properties": {
                    "length": 12
                },
                "type": "OS::Heat::RandomString"
            },
            "Script_62101823_962d": {
                "properties": {
                    "config": {
                        "str_replace": {
                            "params": {},
                            "template": {
                                "Fn::Join": [
                                    "",
                                    [
                                        MySql_Install_Script
                                    ]
                                ]
                            }
                        }
                    },
                    "group": "Bms_62101823"
                },
                "type": "OS::Heat::SoftwareConfig"
            },
            "cpu_util_4991_2": {
                "properties": {
                    "alarm_actions": [
                        {
                            "get_attr": [
                                "Policy_62101820_CPU_SCALEOUT_1",
                                "alarm_url"
                            ]
                        }
                    ],
                    "comparison_operator": "ge",
                    "evaluation_periods": "1",
                    "matching_metadata": {
                        "metadata.user_metadata.stack": {
                            "get_attr": [
                                "RandomUUID_AsGroup_62101820",
                                "value"
                            ]
                        }
                    },
                    "meter_name": "cpu_util",
                    "period": "300",
                    "resource_id": {
                        "get_resource": "AsGroup_62101820"
                    },
                    "statistic": "avg",
                    "threshold": "50",
                    "unit": "%"
                },
                "type": "OSE::CES::Alarm"
            },
            "cpu_util_4991_3": {
                "properties": {
                    "alarm_actions": [
                        {
                            "get_attr": [
                                "Policy_62101820_CPU_SCALEIN_2",
                                "alarm_url"
                            ]
                        }
                    ],
                    "comparison_operator": "le",
                    "evaluation_periods": "1",
                    "matching_metadata": {
                        "metadata.user_metadata.stack": {
                            "get_attr": [
                                "RandomUUID_AsGroup_62101820",
                                "value"
                            ]
                        }
                    },
                    "meter_name": "cpu_util",
                    "period": "300",
                    "resource_id": {
                        "get_resource": "AsGroup_62101820"
                    },
                    "statistic": "avg",
                    "threshold": "10",
                    "unit": "%"
                },
                "type": "OSE::CES::Alarm"
            }
        }
    }
}

脚本样例

  • 安装Discuz
    脚本内容如下:
    #!/bin/bash -v
    
    SFIP=$${softwareIP}
    MYSQLIP=$${mysqlIP,mysqlIP}
    
    
    mkdir -p /root/discuz/
    date >> /root/discuz/date.txt
    cd /root/discuz/
    
    # ----get apache package----
    wget http://$SFIP:80/apache2-2.2.10-2.24.5.x86_64.tar.gz
    
    # ----get discuz script----
    wget http://$SFIP:80/apache.sh
    chmod 755 /root/discuz/apache.sh
    sh /root/discuz/apache.sh
    
    # ----get PHP software----
    wget http://$SFIP:80/php5-5.2.6-50.24.1.x86_64.rpm
    chmod 755 /root/discuz/php5-5.2.6-50.24.1.x86_64.rpm
    rpm -ivh /root/discuz/php5-5.2.6-50.24.1.x86_64.rpm
    
    # ----get extension package----
    wget http://$SFIP:80/extension-apache-php.tar.gz
    
    # ----get extension script----
    wget http://$SFIP:80/extension.sh
    chmod 755 /root/discuz/extension.sh
    sh /root/discuz/extension.sh
    
    # ----get discuz package----
    wget http://$SFIP:80/discuz7.2_full_utf8.tar.gz
    
    # ----get discuz script----
    wget http://$SFIP:80/discuz.sh
    chmod 755 /root/discuz/discuz.sh
    sh /root/discuz/discuz.sh $MYSQLIP root root 755 123.456

  • 安装MySQL
    脚本内容如下:
    #!/bin/bash -v
    
    IP=$${softwareIP}
    
    mkdir -p /root/discuz/
    date >> /root/discuz/date.txt
    cd /root/discuz/
    
    # ----get mysqlclient1 package----
    wget http://$IP:80/libmysqlclient15-5.0.67-13.20.1.x86_64.rpm
    rpm -ivh libmysqlclient15-5.0.67-13.20.1.x86_64.rpm
    
    # ----get mysqlclient2 package----
    wget http://$IP:80/libmysqlclient_r15-5.0.67-13.20.1.x86_64.rpm
    rpm -ivh libmysqlclient_r15-5.0.67-13.20.1.x86_64.rpm
    
    # ----get mysql package----
    wget http://$IP:80/mysql.tar.gz
    
    # ----get mysql script----
    wget http://$IP:80/mysql.sh
    chmod 755 /root/discuz/mysql.sh
    sh /root/discuz/mysql.sh

FAQ

vAPP实例云服务器无法正常拉取到软件源云服务器上的软件包
  • 确保应用实例云服务器和软件源云服务器所在网络可互通。
  • 确保脚本参数中正确配置软件源云服务器的内网IP地址。
  • 确保安全组出方向和入方向规则已全放通。
上传软件到软件源云服务器时传输过程意外终止
  • 确保软件源服务器存放软件的目录有读写权限。
  • 确保软件源服务器上有足够的空间存放相关软件,如果空间不足需清理磁盘文件或者更换软件存储位置。
软件安装注意事项
  • Apache、Discuz以及MySQL的版本安装必须跟操作系统匹配。
  • 确认Apache、Discuz以及MySQL的依赖包是否上传到软件源服务器并可以成功拉取。
  • Web伸缩组和DB裸金属服务器磁盘大小是否合理配置。
翻译
下载文档
更新时间:2019-08-15

文档编号:EDOC1100043090

浏览量:13550

下载量:555

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页