zoukankan      html  css  js  c++  java
  • packstack测试环境安装heat

    虚机all in one环境测试安装heat

    [root@armstrong ~]# tmux at -t mysql
    MariaDB [(none)]> CREATE DATABASE heat;
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' 
        ->   IDENTIFIED BY 'HEAT_DBPASS';
    Query OK, 0 rows affected (0.01 sec)
     
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' 
        ->   IDENTIFIED BY 'HEAT_DBPASS';
    Query OK, 0 rows affected (0.00 sec)
      
    [root@armstrong ~]# source keystonerc_admin
      
    创建heat用户
    [root@armstrong ~(keystone_admin)]# openstack user create --domain default --password-prompt heat
    User Password:
    Repeat User Password:
    +---------------------+----------------------------------+
    | Field               | Value                            |
    +---------------------+----------------------------------+
    | domain_id           | default                          |
    | enabled             | True                             |
    | id                  | 0952d5ebdcaa43c288020364987503bf |
    | name                | heat                             |
    | options             | {}                               |
    | password_expires_at | None                             |
    +---------------------+----------------------------------+
    将heat用户加入amdin角色 
    [root@armstrong ~(keystone_admin)]# openstack role add --project services --user heat admin
      
    创建heta和heat-cfb服务实体
    [root@armstrong ~(keystone_admin)]# openstack service create --name heat --description "Orchestration" orchestration
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description | Orchestration                    |
    | enabled     | True                             |
    | id          | 3a423bcb425f4b0b814d53352eb2e16e |
    | name        | heat                             |
    | type        | orchestration                    |
    +-------------+----------------------------------+
    [root@armstrong ~(keystone_admin)]# openstack service create --name heat-cfn --description "Orchestration"  cloudformation
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description | Orchestration                    |
    | enabled     | True                             |
    | id          | 56672ffcfef14ffbbb041287e16bb0dd |
    | name        | heat-cfn                         |
    | type        | cloudformation                   |
    +-------------+----------------------------------+
      
    [root@armstrong ~(keystone_admin)]# openstack service list
    +----------------------------------+-----------+----------------+
    | ID                               | Name      | Type           |
    +----------------------------------+-----------+----------------+
    | 0bf0839f5a2a4a8d99450f0473403b32 | keystone  | identity       |
    | 3a423bcb425f4b0b814d53352eb2e16e | heat      | orchestration  |
    | 4542364e029e4a2cb7320b0338a21177 | cinderv2  | volumev2       |
    | 50144c64d7bd44a5a3d0e9fb8473da37 | cinder    | volume         |
    | 56672ffcfef14ffbbb041287e16bb0dd | heat-cfn  | cloudformation |
    | 602a478cc2584269b24f7c0e9dda5c36 | glance    | image          |
    | 807e8d2d91cc426cad435f907eb52601 | cinderv3  | volumev3       |
    | 86d499b6413d4328969c82765f1f5044 | neutron   | network        |
    | a4934bdd925f4cf9be7be020206c9751 | placement | placement      |
    | e3c14c540fb54031a84ee2a5689c34ab | nova      | compute        |
    +----------------------------------+-----------+----------------+
      
    创建Orchestration endpoint
    [root@armstrong nova(keystone_admin)]# openstack endpoint create --region RegionOne orchestration public http://192.168.122.209:8004/v1/%(tenant_id)s
    +--------------+----------------------------------------------+
    | Field        | Value                                        |
    +--------------+----------------------------------------------+
    | enabled      | True                                         |
    | id           | 04710a3160c74386825b11595e13b10b             |
    | interface    | public                                       |
    | region       | RegionOne                                    |
    | region_id    | RegionOne                                    |
    | service_id   | 3a423bcb425f4b0b814d53352eb2e16e             |
    | service_name | heat                                         |
    | service_type | orchestration                                |
    | url          | http://192.168.122.209:8004/v1/%(tenant_id)s |
    +--------------+----------------------------------------------+
    [root@armstrong nova(keystone_admin)]# openstack endpoint create --region RegionOne orchestration internal http://192.168.122.209:8004/v1/%(tenant_id)s
    +--------------+----------------------------------------------+
    | Field        | Value                                        |
    +--------------+----------------------------------------------+
    | enabled      | True                                         |
    | id           | 3da6845f138f416196c420ee4a8c94bc             |
    | interface    | internal                                     |
    | region       | RegionOne                                    |
    | region_id    | RegionOne                                    |
    | service_id   | 3a423bcb425f4b0b814d53352eb2e16e             |
    | service_name | heat                                         |
    | service_type | orchestration                                |
    | url          | http://192.168.122.209:8004/v1/%(tenant_id)s |
    +--------------+----------------------------------------------+
    [root@armstrong nova(keystone_admin)]# openstack endpoint create --region RegionOne orchestration admin http://192.168.122.209:8004/v1/%(tenant_id)s
    +--------------+----------------------------------------------+
    | Field        | Value                                        |
    +--------------+----------------------------------------------+
    | enabled      | True                                         |
    | id           | f1bceb3152f747fb8e1244398a157090             |
    | interface    | admin                                        |
    | region       | RegionOne                                    |
    | region_id    | RegionOne                                    |
    | service_id   | 3a423bcb425f4b0b814d53352eb2e16e             |
    | service_name | heat                                         |
    | service_type | orchestration                                |
    | url          | http://192.168.122.209:8004/v1/%(tenant_id)s |
    +--------------+----------------------------------------------+
      
    [root@armstrong nova(keystone_admin)]# openstack endpoint list |grep orchestration
    +----------------------------------------------------------------------------------------------------------------------------------------------------+
    | 04710a3160c74386825b11595e13b10b | RegionOne | heat         | orchestration | True    | public    | http://192.168.122.209:8004/v1/%(tenant_id)s   |
    | 3da6845f138f416196c420ee4a8c94bc | RegionOne | heat         | orchestration | True    | internal  | http://192.168.122.209:8004/v1/%(tenant_id)s   |
    | f1bceb3152f747fb8e1244398a157090 | RegionOne | heat         | orchestration | True    | admin     | http://192.168.122.209:8004/v1/%(tenant_id)s   |
    +----------------------------------------------------------------------------------------------------------------------------------------------------+
     
     
     
    创建cloudformation endpoint
    [root@armstrong nova(keystone_admin)]# openstack endpoint create --region RegionOne cloudformation public http://192.168.122.209:8000/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | d6c3d5a7e57749d6a6e769d4fea77c67 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 56672ffcfef14ffbbb041287e16bb0dd |
    | service_name | heat-cfn                         |
    | service_type | cloudformation                   |
    | url          | http://192.168.122.209:8000/v1   |
    +--------------+----------------------------------+
    [root@armstrong nova(keystone_admin)]# openstack endpoint create --region RegionOne cloudformation internal http://192.168.122.209:8000/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 4a7dd256dd044f37849ba08cdb12abf6 |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 56672ffcfef14ffbbb041287e16bb0dd |
    | service_name | heat-cfn                         |
    | service_type | cloudformation                   |
    | url          | http://192.168.122.209:8000/v1   |
    +--------------+----------------------------------+
    [root@armstrong nova(keystone_admin)]# openstack endpoint create --region RegionOne cloudformation admin http://192.168.122.209:8000/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 173892f7410a4dc4976ffe2a5adfb005 |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 56672ffcfef14ffbbb041287e16bb0dd |
    | service_name | heat-cfn                         |
    | service_type | cloudformation                   |
    | url          | http://192.168.122.209:8000/v1   |
    +--------------+----------------------------------+
    [root@armstrong nova(keystone_admin)]# openstack endpoint list |grep cloudformation
    173892f7410a4dc4976ffe2a5adfb005 | RegionOne | heat-cfn     | cloudformation | True    | admin     | http://192.168.122.209:8000/v1                 4a7dd256dd044f37849ba08cdb12abf6 | RegionOne | heat-cfn     | cloudformation | True    | internal  | http://192.168.122.209:8000/v1                 d6c3d5a7e57749d6a6e769d4fea77c67 | RegionOne | heat-cfn     | cloudformation | True    | public    | http://192.168.122.209:8000/v1    
      
    创建包含堆栈项目和用户的域
    [root@armstrong nova(keystone_admin)]# openstack domain create --description "Stack projects and users" heat
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description | Stack projects and users         |
    | enabled     | True                             |
    | id          | 22388bd950cb495caf0b666dde11333e |
    | name        | heat                             |
    | tags        | []                               |
    +-------------+----------------------------------+
     
    创建heat_domain_admin用户来管理域中的项目和用户
    [root@armstrong nova(keystone_admin)]# openstack user create --domain heat --password-prompt heat_domain_admin
    User Password:
    Repeat User Password:
    +---------------------+----------------------------------+
    | Field               | Value                            |
    +---------------------+----------------------------------+
    | domain_id           | 22388bd950cb495caf0b666dde11333e |
    | enabled             | True                             |
    | id                  | 0c858402292a4a8480715a213d563ccb |
    | name                | heat_domain_admin                |
    | options             | {}                               |
    | password_expires_at | None                             |
    +---------------------+----------------------------------+
     
     
    将admin角色添加到域中的heat_domain_admin用户,通过heat_domain_admin用户启用管理堆栈管理权限
    [root@armstrong nova(keystone_admin)]# openstack role add --domain heat --user-domain heat --user heat_domain_admin admin
      
    创建heat_stack_owner角色
    [root@armstrong nova(keystone_admin)]# openstack role create heat_stack_owner
    +-----------+----------------------------------+
    | Field     | Value                            |
    +-----------+----------------------------------+
    | domain_id | None                             |
    | id        | e7523e56d0c14d8588c600567a8e95c8 |
    | name      | heat_stack_owner                 |
    +-----------+----------------------------------+
      
    向demo项目和demo用户添加heat_stack_owner角色以启用演示用户的堆栈管理
    [root@armstrong nova(keystone_admin)]# openstack role add --project demo --user demo heat_stack_owner
      
    创建heat_stack_user角色
    [root@armstrong nova(keystone_admin)]# openstack role create heat_stack_user
    +-----------+----------------------------------+
    | Field     | Value                            |
    +-----------+----------------------------------+
    | domain_id | None                             |
    | id        | 49908672b7bc4d5699d053174b102ce1 |
    | name      | heat_stack_user                  |
    +-----------+----------------------------------+
      
    安装和配置组件
    [root@armstrong nova(keystone_admin)]#yum install openstack-heat-api openstack-heat-api-cfn openstack-heat-engine
     
    编辑heat配置文件
    cat /etc/heat/heat.conf
    [DEFAULT]
    transport_url = rabbit://guest:guest@192.168.122.209:5672
    heat_metadata_server_url = http://192.168.122.209:8000
    heat_waitcondition_server_url = http://192.168.122.209:8000/v1/waitcondition
    stack_domain_admin = heat_domain_admin
    stack_domain_admin_password = heat
    stack_user_domain_name = heat
     
    [database]
    connection = mysql+pymysql://heat:HEAT_DBPASS@192.168.122.209/heat
     
    [keystone_authtoken]
    auth_uri = http://192.168.122.209:5000
    auth_url = http://192.168.122.209:35357
    memcached_servers = 192.168.122.209:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = services
    username = heat
    password = heat
     
    [trustee]
    auth_type = password
    auth_url = http://192.168.122.209:35357
    username = heat
    password = heat
    user_domain_name = default
     
    [clients_keystone]
    auth_uri = http://192.168.122.209:5000
      
      
    同步数据库
    [root@armstrong nova(keystone_admin)]# su -s /bin/sh -c "heat-manage db_sync" heat
    2018-06-13 09:55:42.367 15830 WARNING oslo_config.cfg [-] Option "db_backend" from group "DEFAULT" is deprecated. Use option "backend" from group "database".2018-06-13 09:55:42.495 15830 INFO migrate.versioning.api [-] 70 -> 71...
    2018-06-13 09:55:42.727 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.727 15830 INFO migrate.versioning.api [-] 71 -> 72...
    2018-06-13 09:55:42.761 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.762 15830 INFO migrate.versioning.api [-] 72 -> 73...
    2018-06-13 09:55:42.804 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.804 15830 INFO migrate.versioning.api [-] 73 -> 74...
    2018-06-13 09:55:42.810 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.810 15830 INFO migrate.versioning.api [-] 74 -> 75...
    2018-06-13 09:55:42.815 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.815 15830 INFO migrate.versioning.api [-] 75 -> 76...
    2018-06-13 09:55:42.821 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.821 15830 INFO migrate.versioning.api [-] 76 -> 77...
    2018-06-13 09:55:42.826 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.826 15830 INFO migrate.versioning.api [-] 77 -> 78...
    2018-06-13 09:55:42.833 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.834 15830 INFO migrate.versioning.api [-] 78 -> 79...
    2018-06-13 09:55:42.940 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.940 15830 INFO migrate.versioning.api [-] 79 -> 80...
    2018-06-13 09:55:42.992 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.992 15830 INFO migrate.versioning.api [-] 80 -> 81...
    2018-06-13 09:55:42.997 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:42.997 15830 INFO migrate.versioning.api [-] 81 -> 82...
    2018-06-13 09:55:43.002 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:43.002 15830 INFO migrate.versioning.api [-] 82 -> 83...
    2018-06-13 09:55:43.007 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:43.007 15830 INFO migrate.versioning.api [-] 83 -> 84...
    2018-06-13 09:55:43.012 15830 INFO migrate.versioning.api [-] done
    2018-06-13 09:55:43.013 15830 INFO migrate.versioning.api [-] 84 -> 85...
    2018-06-13 09:55:43.017 15830 INFO migrate.versioning.api [-] done
      
    启动服务
    [root@armstrong nova(keystone_admin)]# systemctl enable openstack-heat-api.service openstack-heat-api-cfn.service openstack-heat-engine.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-heat-api.service to /usr/lib/systemd/system/openstack-heat-api.service.
    Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-heat-api-cfn.service to /usr/lib/systemd/system/openstack-heat-api-cfn.service.
    Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-heat-engine.service to /usr/lib/systemd/system/openstack-heat-engine.service.
    [root@armstrong nova(keystone_admin)]# systemctl start openstack-heat-api.service openstack-heat-api-cfn.service openstack-heat-engine.service
      
              
    验证服务状态
    [root@armstrong heat(keystone_admin)]#source keystonerc_admin
    [root@armstrong ~(keystone_admin)]# openstack orchestration service list
    +-----------+-------------+--------------------------------------+-----------+--------+----------------------------+--------+
    | Hostname  | Binary      | Engine ID                            | Host      | Topic  | Updated At                 | Status |
    +-----------+-------------+--------------------------------------+-----------+--------+----------------------------+--------+
    | armstrong | heat-engine | 7953d573-ebb6-4bc9-804a-5fff4f44a71a | armstrong | engine | 2018-06-13T03:39:28.000000 | up     |
    | armstrong | heat-engine | 88b6c902-09fe-46fb-87a0-6baf762a8ad3 | armstrong | engine | 2018-06-13T03:37:01.000000 | down   |
    | armstrong | heat-engine | c81c847b-45e3-46ec-8c6a-d32b61dcfe11 | armstrong | engine | 2018-06-13T03:39:28.000000 | up     |
    | armstrong | heat-engine | ab960cdb-3633-4ab2-a93d-86f74bfb7179 | armstrong | engine | 2018-06-13T03:37:01.000000 | down   |
    | armstrong | heat-engine | 0b7a2c59-7cdf-47e8-a58b-06aa11556682 | armstrong | engine | 2018-06-13T03:37:01.000000 | down   |
    | armstrong | heat-engine | 6cf3b8df-391b-4937-b37e-856b9d7cd0ef | armstrong | engine | 2018-06-13T03:37:01.000000 | down   |
    | armstrong | heat-engine | 6fbad63a-e6fa-4868-9c04-7e6c0cca2b2e | armstrong | engine | 2018-06-13T03:39:28.000000 | up     |
    | armstrong | heat-engine | b55005dc-cf1e-455c-b5b0-20aa46bf1340 | armstrong | engine | 2018-06-13T03:39:28.000000 | up     |
    +-----------+-------------+--------------------------------------+-----------+--------+----------------------------+--------+
      
    验证支持的resource type
    [root@armstrong ~(keystone_admin)]# openstack orchestration resource type list
    +------------------------------------------+
    | Resource Type                            |
    +------------------------------------------+
    | AWS::AutoScaling::AutoScalingGroup       |
    | AWS::AutoScaling::LaunchConfiguration    |
    | AWS::AutoScaling::ScalingPolicy          |
    | AWS::CloudFormation::Stack               |
    | AWS::CloudFormation::WaitCondition       |
    | AWS::CloudFormation::WaitConditionHandle |
    | AWS::CloudWatch::Alarm                   |
    | AWS::EC2::EIP                            |
    | AWS::EC2::EIPAssociation                 |
    | AWS::EC2::Instance                       |
    | AWS::EC2::InternetGateway                |
    | AWS::EC2::NetworkInterface               |
    | AWS::EC2::RouteTable                     |
    | AWS::EC2::SecurityGroup                  |
    | AWS::EC2::Subnet                         |
    | AWS::EC2::SubnetRouteTableAssociation    |
    | AWS::EC2::VPC                            |
    | AWS::EC2::VPCGatewayAttachment           |
    | AWS::EC2::Volume                         |
    | AWS::EC2::VolumeAttachment               |
    | AWS::ElasticLoadBalancing::LoadBalancer  |
    | AWS::IAM::AccessKey                      |
    | AWS::IAM::User                           |
    | AWS::RDS::DBInstance                     |
    | OS::Cinder::EncryptedVolumeType          |
    | OS::Cinder::QoSAssociation               |
    | OS::Cinder::QoSSpecs                     |
    | OS::Cinder::Quota                        |
    | OS::Cinder::Volume                       |
    | OS::Cinder::VolumeAttachment             |
    | OS::Cinder::VolumeType                   |
    | OS::Glance::Image                        |
    | OS::Heat::AccessPolicy                   |
    | OS::Heat::AutoScalingGroup               |
    | OS::Heat::CloudConfig                    |
    | OS::Heat::DeployedServer                 |
    | OS::Heat::InstanceGroup                  |
    | OS::Heat::MultipartMime                  |
    | OS::Heat::None                           |
    | OS::Heat::RandomString                   |
    | OS::Heat::ResourceChain                  |
    | OS::Heat::ResourceGroup                  |
    | OS::Heat::ScalingPolicy                  |
    | OS::Heat::SoftwareComponent              |
    | OS::Heat::SoftwareConfig                 |
    | OS::Heat::SoftwareDeployment             |
    | OS::Heat::SoftwareDeploymentGroup        |
    | OS::Heat::Stack                          |
    | OS::Heat::StructuredConfig               |
    | OS::Heat::StructuredDeployment           |
    | OS::Heat::StructuredDeploymentGroup      |
    | OS::Heat::TestResource                   |
    | OS::Heat::UpdateWaitConditionHandle      |
    | OS::Heat::Value                          |
    | OS::Heat::WaitCondition                  |
    | OS::Heat::WaitConditionHandle            |
    | OS::Keystone::Domain                     |
    | OS::Keystone::Endpoint                   |
    | OS::Keystone::Group                      |
    | OS::Keystone::GroupRoleAssignment        |
    | OS::Keystone::Project                    |
    | OS::Keystone::Region                     |
    | OS::Keystone::Role                       |
    | OS::Keystone::Service                    |
    | OS::Keystone::User                       |
    | OS::Keystone::UserRoleAssignment         |
    | OS::Neutron::AddressScope                |
    | OS::Neutron::ExtraRoute                  |
    | OS::Neutron::FloatingIP                  |
    | OS::Neutron::FloatingIPAssociation       |
    | OS::Neutron::FlowClassifier              |
    | OS::Neutron::MeteringLabel               |
    | OS::Neutron::MeteringRule                |
    | OS::Neutron::Net                         |
    | OS::Neutron::NetworkGateway              |
    | OS::Neutron::Port                        |
    | OS::Neutron::PortPair                    |
    | OS::Neutron::ProviderNet                 |
    | OS::Neutron::QoSBandwidthLimitRule       |
    | OS::Neutron::QoSDscpMarkingRule          |
    | OS::Neutron::QoSPolicy                   |
    | OS::Neutron::Quota                       |
    | OS::Neutron::RBACPolicy                  |
    | OS::Neutron::Router                      |
    | OS::Neutron::RouterInterface             |
    | OS::Neutron::SecurityGroup               |
    | OS::Neutron::SecurityGroupRule           |
    | OS::Neutron::Subnet                      |
    | OS::Neutron::SubnetPool                  |
    | OS::Neutron::Trunk                       |
    | OS::Nova::Flavor                         |
    | OS::Nova::FloatingIP                     |
    | OS::Nova::FloatingIPAssociation          |
    | OS::Nova::HostAggregate                  |
    | OS::Nova::KeyPair                        |
    | OS::Nova::Quota                          |
    | OS::Nova::Server                         |
    | OS::Nova::ServerGroup                    |
    | OS::Senlin::Cluster                      |
    | OS::Senlin::Node                         |
    | OS::Senlin::Policy                       |
    | OS::Senlin::Profile                      |
    | OS::Senlin::Receiver                     |
    +------------------------------------------+
      
    验证模板版本
    [root@armstrong ~(keystone_admin)]# openstack orchestration template version list
    +--------------------------------------+------+------------------------------+
    | Version                              | Type | Aliases                      |
    +--------------------------------------+------+------------------------------+
    | AWSTemplateFormatVersion.2010-09-09  | cfn  |                              |
    | HeatTemplateFormatVersion.2012-12-12 | cfn  |                              |
    | heat_template_version.2013-05-23     | hot  |                              |
    | heat_template_version.2014-10-16     | hot  |                              |
    | heat_template_version.2015-04-30     | hot  |                              |
    | heat_template_version.2015-10-15     | hot  |                              |
    | heat_template_version.2016-04-08     | hot  |                              |
    | heat_template_version.2016-10-14     | hot  | heat_template_version.newton |
    | heat_template_version.2017-02-24     | hot  | heat_template_version.ocata  |
    | heat_template_version.2017-09-01     | hot  | heat_template_version.pike   |
    | heat_template_version.2018-03-02     | hot  | heat_template_version.queens |
    +--------------------------------------+------+------------------------------+
  • 相关阅读:
    粗浅看Struts2和Hibernate框架
    使用nexus搭建Maven私服
    在线支付功能的设计及其实现
    用户注册的邮箱激活模块的设计与实现
    WebService案例入门(基础篇)
    过滤器应用案例分析
    Java web文件上传下载
    Servlet常用操作(基础)
    AndroidStudio中导入SlidingMenu报错解决方案
    新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
  • 原文地址:https://www.cnblogs.com/gushiren/p/9511635.html
Copyright © 2011-2022 走看看