上海专业网站建设排行,本地网站建设官网,在货源网站自己拿样 加盟 做代理 哪个比较好?,学术会议网站建设HashiCorp Terraform 是一款基础架构即代码工具#xff0c;旨在实现 Write, Plan, and Create Infrastructure as Code。它通过配置文件来描述云资源的拓扑结构#xff0c;包括虚拟机、存储账户和网络接口。Terraform 几乎支持市面上所有的云服务#xff0c;能够…HashiCorp Terraform 是一款基础架构即代码工具旨在实现 Write, Plan, and Create Infrastructure as Code。它通过配置文件来描述云资源的拓扑结构包括虚拟机、存储账户和网络接口。Terraform 几乎支持市面上所有的云服务能够通过代码管理 IT 资源并自动化部署资源从而避免手动部署可能引发的错误。此外Terraform 的命令行接口CLI简化了将配置文件部署到 AWS 或其他云平台的过程。
本教程将介绍如何通过 Terraform 快速地在 AWS 部署 DolphinDB 单节点和高可用集群。
1. Terraform 概述
Terraform 包含以下功能
基础设施即代码Terraform 使用特定的配置语言 HCL(Hashicorp Configuration Language) 来描述基础设施资源。这使得 Terraform 能够以代码的形式描述解决方案或基础架构并实现对它们的版本控制和管理。同时通用的解决方案和基础架构可以以模板的形式便捷地进行共享和复用。执行计划在执行 Terraform 代码之前可以通过 terraform plan 命令解析 Terraform 模板并生成一个可执行的计划。这个计划包含了当前模板需要创建或变更的资源及其属性。用户预览执行计划以确认模板的内容是否正确。在确认无误后通过 terraform apply 命令来执行计划以完成所定义资源的创建或变更。这个过程允许在实际操作之前对变更内容进行审核和验证。资源拓扑Terraform 根据模板中的定义来构建资源拓扑图。Terraform 并行创建无依赖关系的资源以提高执行效率。而对于存在依赖关系的资源Terraform 则优先执行被依赖的资源以确保创建或修改资源的顺序正确。自动化变更Terraform 拥有强大的自动化变更功能。通过 terraform apply 命令可以实现复杂资源的无缝变更。Terraform 不仅简化了创建、修改和删除等变更操作还保持了计划的一致性。此外Terraform 还提供了回滚和恢复机制能够有效地减少人为错误提高系统的可靠性和稳定性。 2. 使用前提
2.1 准备环境
在进行 Terraform 相关操作之前请确保完成以下准备工作
安装 Terraform CLI (版本1.2.0及以上)安装 AWS CLI拥有 AWS account 和 associated credentials
完成上述步骤后执行以下命令验证环境配置的正确性
$ terraform -help
Usageterraform [-version] [-help] command [args]The available commands for execution are listed below.
The most common, useful commands are shown first, followed by
less common or more advanced commands. If youre just getting
started with Terraform, stick with the common commands. For the
other commands, please read the help and docs before usage.
#...$ aws --version
aws-cli/2.10.0 Python/3.11.2 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.4.5
2.2 设置 AWS 凭据
在使用 Terraform 前AWS 会对 Terraform 进行身份验证需要设置AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY两个环境变量。其中 AWS_ACCESS_KEY_ID 用来设置 Access KeyAWS_SECRET_ACCESS_KEY 用来设置 Secret Key。在 Linux 或 macOS 环境下通过 export 命令进行设置
export AWS_ACCESS_KEY_IDYourAccessKeyId
export AWS_SECRET_ACCESS_KEYYourSecretAccessKey
在 Windows 环境下通过 set 命令进行设置
set AWS_ACCESS_KEY_IDYourAccessKeyId
set AWS_SECRET_ACCESS_KEYYourSecretAccessKey
3 部署 DolphinDB 单节点
3.1 创建 Terraform 项目
创建一个 Terraform 项目文件夹以下是项目文件夹的结构
project_directory
|-- main.tf
|-- variables.tf
|-- files.tfvars
其中每个文件的作用为
main.tf Terraform 项目的入口文件其中定义了基础设施资源的配置和参数。用户通过编写 main.tf 文件来定义要创建的云资源、网络设置以及它们之间的关系等。variables.tf用于定义和声明 Terraform 配置中使用的变量。变量是可以在 Terraform 代码中引用的参数有助于提高代码的复用性和灵活性。变量可以有不同的类型如字符串、数字、布尔值、列表和字典等。用户可以通过 variables.tf 来定义项目中需要的各种参数如区域、实例类型、密钥等。files.tfvars用于存储 Terraform 配置中所使用的变量的值例如指定区域、实例类型、密钥等。这些变量可以在 Terraform 模块中定义并且在部署时可以通过 files.tfvars 文件来指定它们的具体取值。这种做法使得在不同环境中使用相同的 Terraform 配置变得更加灵活因为可以通过不同的 .tfvars 文件来为不同环境提供不同的变量值而无需修改实际的 Terraform 配置文件。
3.2 配置 main.tf 文件
以下展示了 main.tf 文件的部分内容完整代码请参考本教程结尾附件部分
# 声明 Terraform 提供者及其版本
terraform {......
}# 配置 AWS 提供者
provider aws {......
}# 创建 AWS 实例资源dolphindb_server
resource aws_instance dolphindb_server {......
}# 创建 AWS EBS 卷资源data
resource aws_ebs_volume data {......
}# 创建 AWS EBS 卷附加资源data_attachment
resource aws_volume_attachment data_attachment {......
}# 创建 null_resourcemount_data_volume用于在实例上挂载数据卷
resource null_resource mount_data_volume {......
}以上代码实现的具体内容为
在已有的 VPC 和子网中生成 1 个 EC2 和 1 个 EBS 卷将 EBS 挂载到 EC2 上下载 DolphinDB修改 DolphinDB 的配置文件和证书并启动单节点
3.3 配置 variables.tf 文件
以下展示了 variables.tf 文件的部分内容完整代码请参考本教程结尾附件部分
variable region {type string
}variable instance_name {description name of EC2type stringdefault TestDolphinDBServerInstance
}# EC2 实例的其他参数内容已省略...variable ddbversion {description version of DolphinDB to installtype string
}variable dolphindb_cfg_content {# 替换为您的dolphindb.cfg内容typestring
}variable replace_dolphindb_lic {description whether to replace dolphindb.lictype booldefault true
}variable dolphindb_lic_content {typestring
}该文件记录配置 DolphinDB 单节点所需要的参数定义说明如下
region必填项string 类型要创建的 EC2 所在的 region比如 us-west-2。instance_name选填项string 类型创建的 EC2 的名字默认为 TestDolphinDBServerInstance。ami_id选填项string 类型EC2 使用的 AMI 的 ID。默认为 ami-0fd48c6031f8700df AWS 上的 centOS 7 镜像该镜像包含了启动实例所需的操作系统和应用程序。可以在 AWS 公共 AMI 页面查找需要的 AMI ID。instance_type选填项string 类型EC2 的机器类型默认为 t2.micro。可以根据需求在 EC2 实例类型 页面选择其他实例类型。subnet_id必选项string 类型EC2 将处于的子网 ID。key_name必选项string 类型用来登录 EC2 的密钥对。volume_size选填项number 类型root volume 的大小默认为10单位为GB。volume_type选填项string 类型root volume 的类型默认为 gp3其他可选项包括 gp2, io1, st1, sc1 等。az必填项string 类型新建 EBS 所处的可用区。datavolume_type选填项string 类型新建 EBS 的类型默认为 gp3其他可选项包括 gp2, io1, st1, sc1 等。datavolume_size选填项number 类型新建 EBS 的大小默认为100 (单位为GB)。destination选填项string 类型新建 EBS 在 EC2 上的挂载点的绝对路径默认为 /data。attachment_device_name选填项string 类型新建 EBS 挂载在 EC2 上的设备名称默认为 /dev/xvdb。key_location必填项string 类型密钥对文件的绝对路径。为了将 EBS 挂载到指定挂载点需要通过 SSH 连接到 EC2所以需要提供登录 EC2 的密钥对文件的绝对路径。ddb_username选填项string 类型EC2 的用户名称。默认为 centos。package_manager_name选填项string 类型包管理器的名称。例如RHEL 系列的包管理器名为 yum DEBIAN 系列的包管理器名为 apt-get。默认为 yum。security_group_ids必填项list(string) 类型安全组 id。值在 files.tfvar 中定义。注意DolphinDB 单节点默认使用 8848 作为端口所以 EC2 所使用的安全组的 inbound rules 里必须允许外界访问 8848 端口。ddbversion必填项string 类型DolphinDB 的版本。可在 DolphinDB 官网查看最新版本。dolphindb_cfg_content选填项string 类型DolphinDB 配置文件。值在 files.tfvar 中定义。replace_dolphindb_lic选填项bool 类型是否替换证书。默认为 true表示替换证书。若设置为 false则不替换使用社区版证书。dolphindb_lic_content必填项bool 类型证书内容。值在 files.tfvar 中定义。
3.4 配置 files.tfvars 文件
以下展示了 files.tfvars文件的部分内容完整代码请参考本教程结尾附件部分
dolphindb_cfg_content EOF
localSitelocalhost:8848:local8848
modesingle
maxMemSize16
maxConnections512
workerNum4
localExecutors3
maxBatchJobWorker4
dataSync1
OLAPCacheEngineSize2
TSDBCacheEngineSize1
newValuePartitionPolicyadd
maxPubConnections64
subExecutors4
perfMonitoringtrue
lanCluster0
EOFdolphindb_lic_content EOF
......
EOFsecurity_group_ids[your security group ids]
files.tfvars 文件是记录 Terraform 变量的文件其中包含了一些关键配置项。以下是对每个变量的简要说明
dolphindb_cfg_contentDolphinDB 配置文件内容包含了 DolphinDB 服务器的配置参数。如果需要详细的配置参数信息可以参考 DolphinDB 官方配置说明参数配置。dolphindb_lic_contentDolphinDB 的证书内容用于许可验证。可在这里配置社区或企业版 license。security_group_ids安全组 ID用于定义 EC2 实例的入站和出站流量规则。
3.5 执行 Terraform 命令
通过终端进入 Terraform 项目文件夹
cd /path/to/Dolphindb-Terraform
初始化目录
terraform init
部署实例可以根据实际的资源和需求来填写 variables.tf 文件中定义的变量
terraform apply -var regionyour_region -var subnet_idyour_subnet_id
-var key_nameyour_key_pair_name -var ddbversion2.00.10.8 -var azyour_az
-var key_locationabsolute_path_of_your_key_pair -var-filefiles.tfvars
按照提示输入 yes 确认创建资源。等待 Terraform 完成部署。
3.6 登录 Web 管理界面验证节点正确运行
在浏览器中输入部署服务器 IP 地址和部署端口号默认是 8848。若可以打开 Web 管理界面则表示 DolphinDB 单节点运行正常。打开后的 Web 管理界面如下以管理员身份默认账号admin默认密码123456进行登录。 4. DolphinDB 高可用集群部署
本教程示例集群的部署架构图如下 请注意该 IP 仅用于示例实际 IP 由设置的 subnet 以及部署 EC2 实例时自动生成。
部署高可用集群前的要求和准备
申请企业版 license因为集群超过了社区版试用授权许可节点数的限制所以必须申请企业版 license。部署了数据节点或者计算节点的服务器必须同时部署一个代理节点以便用于启动和关闭该服务器上的数据节点或计算节点。在 AWS 中创建1个 VPC其中至少包含 3 个子网。接下来将在1个 VPC 的不同子网下分别部署 DolphinDB 集群以构建 DolphinDB 高可用集群。
4.1 创建 Terraform 项目
创建一个 Terraform 项目文件夹以下是项目文件夹的结构
project_directory
|-- main.tf
|-- variables.tf
|-- files.tfvars
|-- output.tf
其中每个文件的作用为
main.tfTerraform 项目的入口文件其中定义了基础设施资源的配置和参数。用户通过编写 main.tf 文件来定义要创建的云资源、网络设置等以及它们之间的关系。variables.tf用于定义和声明 Terraform 配置中使用的变量。变量是可以在 Terraform 代码中引用的参数有助于提高代码的复用性和灵活性。变量可以有不同的类型如字符串、数字、布尔值、列表和字典等。用户可以通过 variables.tf 来定义项目中需要的各种参数如区域、实例类型、密钥等。files.tfvars用于存储 Terraform 配置中所使用的变量的值例如指定区域、实例类型、密钥等。这些变量可以在 Terraform 模块中定义并且在部署时可以通过 files.tfvars 文件来指定它们的具体取值。这种做法使得在不同环境中使用相同的 Terraform 配置变得更加灵活因为可以通过不同的 .tfvars 文件来为不同环境提供不同的变量值而无需修改实际的 Terraform 配置文件。output.tf用于定义 Terraform 部署完成后需要输出的信息。在这个文件中你可以指定需要输出的资源属性比如 IP 地址、域名等这样在部署完成后你就可以方便地获取这些信息以便后续的操作或者其他系统使用。
4.2 配置 main.tf 文件
以下展示了 main.tf 文件的部分内容完整代码请参考本教程结尾附件部分
# 声明 Terraform 提供者及其版本
terraform {......
}# 配置 AWS 提供者
provider aws {......
}# 创建 AWS 实例资源ddb_p1
resource aws_instance ddb_p1 {......
}# 创建其他两个 AWS 实例资源ddb_p2、ddb_p3与 ddb_p1 的配置类似
# ......# 创建 AWS EBS 卷资源data_p1
resource aws_ebs_volume data_p1 {......
}# 创建其他两个 AWS EBS 卷资源data_p2、data_p3与 data_p1 的配置类似
# ......# 创建 AWS EBS 卷附加资源data_attachment_p1
resource aws_volume_attachment data_attachment_p1 {......
}# 创建其他两个 AWS EBS 卷附加资源与 data_attachment_p1 配置类似
# ......# 创建 null_resourcemount_data_volume_p1用于在实例上挂载数据卷
resource null_resource mount_data_volume_p1 {......
}# 创建其他两个 null_resource用于在 ddb_p2 和 ddb_p3 上挂载数据卷配置 DolphinDB 等与 mount_data_volume_p1 的配置类似
# ......
以上代码实现的具体内容为
在已有的 VPC 和子网中生成 3 个 EC2 和 3 个 EBS 卷分别将 EBS 挂载到 EC2 上分别下载 DolphinDB修改 DolphinDB 的配置文件和证书并启动高可用集群
4.3 配置 variables.tf 文件
以下展示了 variables.tf 文件的部分内容完整代码请参考本教程结尾附件部分
# EC2 实例的其他参数内容已省略...variable ddbversion {description version of DolphinDB to installtype string
}variable replace_dolphindb_lic {description whether to replace dolphindb.lictype booldefault true
}variable dolphindb_lic_content {type string
}variable cluster_nodes {type string
}variable cluster_cfg {type string
}variable controller_cfg_p1 {type string
}variable agent_cfg_p1 {type string
}# P2 P3 相关内容已省略...
该文件用于存放 DolphinDB 高可用集群配置所需要的参数定义其中一部分参数与部署 DolphinDB 单节点时的参数含义相同这里不再赘述仅说明不同配置参数
subnet_id_p1必选项string 类型P1 所在的 EC2 将处于的子网 ID。subnet_id_p2必选项string 类型P2 所在的 EC2 将处于的子网 ID。subnet_id_p3必选项string 类型P3 所在的 EC2 将处于的子网 ID。az_p1必填项string 类型P1 新建 EBS 所处的可用区。az_p2必填项string 类型P2 新建 EBS 所处的可用区。az_p3必填项string 类型P3 新建 EBS 所处的可用区。ddbversion必填项string 类型DolphinDB 的版本。可在 DolphinDB 官网查看最新版本。replace_dolphindb_lic选填项bool 类型是否替换证书。默认为 true表示替换证书。若设置为 false则不替换使用社区版证书。dolphindb_lic_content必填项bool 类型证书内容。值在 files.tfvar 中定义。security_group_ids必填项list(string) 类型安全组 id。值在 files.tfvar 中定义。注意DolphinDB 使用 88008801 8802端口所以 EC2 所使用的安全组的 inbound rules 里必须允许外界访问这些端口。cluster_nodes选填项string 类型集群成员配置参数。值在 files.tfvar 中定义。cluster_cfg选填项string 类型数据节点和计算节点配置变量。值在 files.tfvar 中定义。controller_cfg_p1选填项string 类型P1 控制节点配置变量。值在 files.tfvar 中定义。agent_cfg_p1选填项string 类型P1 代理节点配置变量。值在 files.tfvar 中定义。controller_cfg_p2选填项string 类型P2 控制节点配置变量。值在 files.tfvar 中定义。agent_cfg_p2选填项string 类型P2 代理节点配置变量。值在 files.tfvar 中定义。controller_cfg_p3选填项string 类型P3 控制节点配置变量。值在 files.tfvar 中定义。agent_cfg_p3选填项string 类型P3 代理节点配置变量数。值在 files.tfvar 中定义。
4.4 配置 files.tfvars 文件
在 files.tfvars 文件中添加以下内容
# 企业版 license
dolphindb_lic_content EOF
EOFsecurity_group_ids []cluster_nodes EOF
localSite,mode
P1_PRI_IP:8800:controller1,controller
P2_PRI_IP:8800:controller2,controller
P3_PRI_IP:8800:controller3,controller
P1_PRI_IP:8801:agent1,agent
P1_PRI_IP:8802:datanode1,datanode
P1_PRI_IP:8803:computenode1,computenode
P2_PRI_IP:8801:agent2,agent
P2_PRI_IP:8802:datanode2,datanode
P2_PRI_IP:8803:computenode2,computenode
P3_PRI_IP:8801:agent3,agent
P3_PRI_IP:8802:datanode3,datanode
P3_PRI_IP:8803:computenode3,computenode
EOFcluster_cfg EOF
maxMemSize32
maxConnections512
workerNum4
maxBatchJobWorker4
OLAPCacheEngineSize2
TSDBCacheEngineSize2
newValuePartitionPolicyadd
maxPubConnections64
subExecutors4
lanCluster0
enableChunkGranularityConfigtrue
datanode1.publicNameP1_PUB_IP
computenode1.publicNameP1_PUB_IP
datanode2.publicNameP2_PUB_IP
computenode2.publicNameP2_PUB_IP
datanode3.publicNameP3_PUB_IP
computenode3.publicNameP3_PUB_IP
EOFcontroller_cfg_p1 EOF
modecontroller
localSiteP1_PRI_IP:8800:controller1
dfsReplicationFactor2
dfsReplicaReliabilityLevel1
dataSync1
workerNum4
maxConnections512
maxMemSize8
dfsHAModeRaft
lanCluster0
publicNameP1_PUB_IP
EOFagent_cfg_p1 EOF
modeagent
localSiteP1_PRI_IP:8801:agent1
controllerSiteP1_PRI_IP:8800:controller1
sitesP1_PRI_IP:8801:agent1:agent,P1_PRI_IP:8800:controller1:controller,P2_PRI_IP:8800:controller2:controller,P3_PRI_IP:8800:controller3:controller
workerNum4
maxMemSize4
lanCluster0
EOF# P2 P3 相关内容已省略...
files.tfvars 文件记录了 Terraform 的变量其中包含了一些关键配置项。以下是对每个配置项的简要说明
dolphindb_lic_content证书内容。这是 DolphinDB 的证书内容用于许可验证。可在这里配置企业版license。security_group_ids安全组 ID用于定义 EC2 实例的入站和出站流量规则。cluster_nodes集群成员配置参数。cluster_cfg数据节点和计算节点配置参数。controller_cfg_p1P1 控制节点配置参数。agent_cfg_p1P1 代理节点配置参数。controller_cfg_p2P2 控制节点配置参数。agent_cfg_p2P2 代理节点配置参数。controller_cfg_p3P3 控制节点配置参数。agent_cfg_p3P3 代理节点配置参数。
4.5 配置 output.tf 文件
在 output.tf 文件中添加以下内容
output public_ip_p1 {value aws_instance.ddb_p1.public_ip
}output private_ip_p1 {value aws_instance.ddb_p1.private_ip
}output public_ip_p2 {value aws_instance.ddb_p2.public_ip
}output private_ip_p2 {value aws_instance.ddb_p2.private_ip
}output public_ip_p3 {value aws_instance.ddb_p3.public_ip
}output private_ip_p3 {value aws_instance.ddb_p3.private_ip
}这些参数会在集群部署完成后输出下面是参数解释
public_ip_p1p1 的公网 IPprivate_ip_p1p1 的私网 IPpublic_ip_p2p2 的公网 IPprivate_ip_p2p2 的私网 IPpublic_ip_p3p3 的公网 IPprivate_ip_p3p3 的私网 IP
4.6 执行 Terraform 命令
通过终端进入 Terraform 项目文件夹
cd /path/to/Dolphindb-Terraform
初始化目录
terraform init
部署实例可以根据实际的资源和需求来填写 variables.tf 文件中定义的变量
terraform apply -var regionyour_region -var subnet_id_p1your_subnet_id_p1 -var subnet_id_p2your_subnet_id_p2 -var subnet_id_p3your_subnet_id_p3 -var key_nameyour_key_pair_name -var ddbversion2.00.10.8 -var az_p1your_az_p1 -var az_p2your_az_p2 -var az_p3your_az_p3 -var key_locationabsolute_path_of_your_key_pair -var-filefiles.tfvars
按照提示输入 yes 确认创建资源。等待 Terraform 完成部署。
4.7 通过 Web 管理界面检查 DolphinDB 节点运行
可以通过 Web 管理界面启动或关闭数据节点和计算节点以及修改集群的配置。在浏览器中输入任一控制节点的 IP 地址和端口号即可进入 Web 管理界面例如P2 上控制节点的 IP 为 10.0.0.81端口号为 8800所以访问地址为 10.0.0.81:8800。访问后若出现如下提示表明当前控制节点不是 Leader 节点点击确定即可自动跳转至 Leader 节点 打开后的 Web 管理界面如下。以管理员身份默认账号admin默认密码123456登录后勾选数据节点和计算节点再点击启动关闭按键即可启动关闭相应的数据节点和计算节点 刷新页面后可看到对应的数据节点和计算节点已启动如下图所示 5 常见问题解答(FAQ)
5.1 如何为创建的实例配置 SSH 登录
在 AWS EC2 中key_name 参数用于指定启动实例时要使用的密钥对的名称。密钥对用于对实例进行身份验证从而允许用户通过 SSH 登录到实例。以下是详细的步骤
创建密钥对
在 AWS 控制台中导航到 EC2。在左侧导航栏中选择 Key Pairs密钥对。单击 Create Key Pair创建密钥对。输入密钥对的名称然后选择 Create创建。保存生成的私钥文件通常以 .pem 结尾。
2. 将私钥文件添加到 SSH 代理 在本地计算机上使用以下命令将私钥添加到 SSH 代理。请将 /path/to/your-key.pem 替换为第一步中保存的私钥文件的实际路径。
ssh-add /path/to/your-key.pem
3. 设置密钥对名称和文件位置
terraform apply // 其他变量...-var key_nameyour_key_pair_name-var key_locationabsolute_path_of_your_key_pair
4. SSH 登录到实例
使用以下命令通过 SSH 登录到 EC2 实例。请将your-instance-ip替换为实际的 IP 地址。
ssh -i /path/to/your-key.pem ec2-useryour-instance-ip
注意ec2-user 是 Amazon Linux AMI 的默认用户名。请根据实际使用的 AMI 修改用户名例如若 AMI 是Ubuntu则用户名填 ubuntu。
5.2 如何更新软件授权许可
在 files.tfvars 文件中将 dolphindb_lic_content 变量的内容替换为企业版授权许可内容。同时确保 variables.tf 文件中 replace_dolphindb_lic 的值设为 true默认为true。
dolphindb_lic_content EOF
// 替换后的dolphindb.lic文件内容
EOF
6. 附录
部署 DolphinDB 单节点完整项目代码代码 files.tfvarsmain.tfvariables.tf 部署 DolphinDB 高可用集群完整代码 files.tfvarsmain.tfvariables.tfoutput.tf 文章转载自: http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn http://www.morning.lqljj.cn.gov.cn.lqljj.cn http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn http://www.morning.xsgxp.cn.gov.cn.xsgxp.cn http://www.morning.jglqn.cn.gov.cn.jglqn.cn http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.wjhnx.cn.gov.cn.wjhnx.cn http://www.morning.zfkxj.cn.gov.cn.zfkxj.cn http://www.morning.shawls.com.cn.gov.cn.shawls.com.cn http://www.morning.fpryg.cn.gov.cn.fpryg.cn http://www.morning.lqypx.cn.gov.cn.lqypx.cn http://www.morning.pqbkk.cn.gov.cn.pqbkk.cn http://www.morning.gryzk.cn.gov.cn.gryzk.cn http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn http://www.morning.plgbh.cn.gov.cn.plgbh.cn http://www.morning.bdwqy.cn.gov.cn.bdwqy.cn http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.tsflw.cn.gov.cn.tsflw.cn http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn http://www.morning.mbaiwan.com.gov.cn.mbaiwan.com http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn http://www.morning.jkpnm.cn.gov.cn.jkpnm.cn http://www.morning.wlstn.cn.gov.cn.wlstn.cn http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.ktnt.cn.gov.cn.ktnt.cn http://www.morning.txfzt.cn.gov.cn.txfzt.cn http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn http://www.morning.ytbr.cn.gov.cn.ytbr.cn http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.cmcjp.cn.gov.cn.cmcjp.cn http://www.morning.pqypt.cn.gov.cn.pqypt.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.spwln.cn.gov.cn.spwln.cn http://www.morning.hcwlq.cn.gov.cn.hcwlq.cn http://www.morning.bdqpl.cn.gov.cn.bdqpl.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn http://www.morning.srky.cn.gov.cn.srky.cn http://www.morning.qqhersx.com.gov.cn.qqhersx.com http://www.morning.gglhj.cn.gov.cn.gglhj.cn http://www.morning.lstmg.cn.gov.cn.lstmg.cn http://www.morning.dskzr.cn.gov.cn.dskzr.cn http://www.morning.txzmy.cn.gov.cn.txzmy.cn http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn http://www.morning.dzgyr.cn.gov.cn.dzgyr.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.dqpnd.cn.gov.cn.dqpnd.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.ahscrl.com.gov.cn.ahscrl.com http://www.morning.pltbd.cn.gov.cn.pltbd.cn http://www.morning.pjwml.cn.gov.cn.pjwml.cn http://www.morning.gccrn.cn.gov.cn.gccrn.cn http://www.morning.wqngt.cn.gov.cn.wqngt.cn http://www.morning.prqdr.cn.gov.cn.prqdr.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.yxzfl.cn.gov.cn.yxzfl.cn http://www.morning.hbdqf.cn.gov.cn.hbdqf.cn http://www.morning.wynnb.cn.gov.cn.wynnb.cn http://www.morning.gqjzp.cn.gov.cn.gqjzp.cn http://www.morning.hlppp.cn.gov.cn.hlppp.cn http://www.morning.qqzdr.cn.gov.cn.qqzdr.cn http://www.morning.gjxr.cn.gov.cn.gjxr.cn http://www.morning.ptdzm.cn.gov.cn.ptdzm.cn http://www.morning.kqbwr.cn.gov.cn.kqbwr.cn http://www.morning.kycxb.cn.gov.cn.kycxb.cn http://www.morning.gnghp.cn.gov.cn.gnghp.cn http://www.morning.ymbqr.cn.gov.cn.ymbqr.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.qggcc.cn.gov.cn.qggcc.cn http://www.morning.krbjb.cn.gov.cn.krbjb.cn http://www.morning.gypcr.cn.gov.cn.gypcr.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn