зеркало из
1
0
Форкнуть 0

Moving gemspec and files to root directory

This commit is contained in:
veronicagg 2016-05-16 17:30:19 -07:00
Родитель 9308672b82
Коммит 7156b729d4
433 изменённых файлов: 0 добавлений и 530 удалений

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -1,463 +0,0 @@
# Getting Started with Azure Service Management
## Install the rubygem package
You can install the azure rubygem package directly.
```bash
gem install azure
```
Azure storage is in its own azure-storage [gem](https://rubygems.org/gems/azure-storage) and [GitHub repo](https://github.com/Azure/azure-storage-ruby)
## Setup Connection
You can use this SDK against the Microsoft Azure Services in the cloud, or against the local Storage Emulator if you are on Windows. Service Bus and Microsoft Azure Service Management emulation are not supported. Of course, to use the Microsoft Azure Services in the cloud, you need to first [create a Microsoft Azure account](http://www.azure.com/en-us/pricing/free-trial/). After that, you can get the information you need to configure Storage and Service Bus from the [Microsoft Azure Portal](https://manage.windowsazure.com).
There are two ways you can set up the connections:
1. [via code](#via-code)
2. [via environment variables](#via-environment-variables)
<a name="via-code"></a>
### Via Code
* Against Microsoft Azure Services in the cloud
```ruby
require "azure"
Azure.storage_account_name = "<your azure storage account name>"
Azure.storage_access_key = "<your azure storage access key>"
# Configure these 3 properties to use Service Bus
Azure.sb_namespace = "<your azure service bus namespace>"
Azure.sb_access_key = "<your azure service bus access key>"
Azure.sb_issuer = "<your azure service bus issuer>"
# Configure these 3 properties to use Service Management. We support passwordless pfx & pem cert formats.
Azure.management_certificate = "<path to your *.pem or *.pfx>"
Azure.subscription_id = "<your Subscriptionid>"
# Configure a ca_cert.pem file if you are having issues with ssl peer verification
Azure.ca_file = "./ca_file.pem"
# Or create a specific instance of an Azure.client, which will inherit your default configuration settings.
client = Azure.client(storage_account_name: "your account name", storage_access_key: "your access key")
```
* Against local Emulator (Windows Only)
```ruby
require "azure"
# Configure these 2 properties to use local Storage Emulator
Azure.storage_account_name = "devstoreaccount1"
Azure.storage_access_key = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
Azure.storage_blob_host = "http://127.0.0.1:10000/devstoreaccount1"
Azure.storage_queue_host = "http://127.0.0.1:10001/devstoreaccount1"
Azure.storage_table_host = "http://127.0.0.1:10002/devstoreaccount1"
# For Azure Government make sure to provide the full URI to the endpoint
# End point mapping at https://azure.microsoft.com/en-us/documentation/articles/azure-government-developer-guide/
# Local Service Bus Emulator is not supported
# Local Service Management emulation is not supported
```
<a name="via-environment-variables"></a>
### Via Environment Variables
* Against Microsoft Azure Services in the cloud
* Storage
```bash
AZURE_STORAGE_ACCOUNT = <your azure storage account name>
AZURE_STORAGE_ACCESS_KEY = <your azure storage access key>
```
* Service Bus
```bash
AZURE_SERVICEBUS_NAMESPACE = <your azure service bus namespace>
AZURE_SERVICEBUS_ACCESS_KEY = <your azure service bus access key>
AZURE_SERVICEBUS_ISSUER = <your azure service bus issuer>
```
* Service Management
```bash
AZURE_MANAGEMENT_CERTIFICATE = <path to *.pem or *.pfx>
AZURE_SUBSCRIPTION_ID = <your subscription ID>
AZURE_MANAGEMENT_ENDPOINT = <The endpoint URL of Microsoft Azure management service>
AZURE_SQL_DATABASE_MANAGEMENT_ENDPOINT = <SQL Database Management Endpoint>
AZURE_SQL_DATABASE_AUTHENTICATION_MODE = <:management_certificate or :sql_server>
```
* [SSL Certificate File](https://gist.github.com/fnichol/867550)
```bash
SSL_CERT_FILE=<path to *.pem>
```
* Against local Emulator (Windows Only)
* Storage
```bash
AZURE_STORAGE_ACCOUNT = devstoreaccount1
AZURE_STORAGE_ACCESS_KEY = Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
AZURE_STORAGE_BLOB_HOST = http://127.0.0.1:10000/devstoreaccount1
AZURE_STORAGE_QUEUE_HOST = http://127.0.0.1:10001/devstoreaccount1
AZURE_STORAGE_TABLE_HOST = http://127.0.0.1:10002/devstoreaccount1
```
* Service Bus: not supported
* Service Management: not supported
# Usage
<a name="storage"></a>
## Storage
### Setup your Storage Credentials
```ruby
# Require the azure rubygem
require "azure"
# Add your default storage credentials
Azure.storage_account_name = "your account name"
Azure.storage_access_key = "your access key"
# Or create a specific instance of an Azure.client
client = Azure.client(storage_account_name: "your account name", storage_access_key: "your access key")
default_blobs = Azure.blobs # uses the Azure.storage_account_name and Azure.storage_access_key
blobs = client.blobs # uses the client.storage_account_name and client.storage_access_key
```
Azure storage is available its own azure-storage [gem](https://rubygems.org/gems/azure-storage) and [GitHub repo](https://github.com/Azure/azure-storage-ruby)
<a name="relays"></a>
### Relay
```ruby
# Require the azure rubygem
require "azure"
# Create an azure service bus object
service_bus = Azure.service_bus
# Create a relay endpoint with just the endpoint name
relay1 = service_bus.create_relay("test-relay-1", { :relay_type => "Http" })
# Create a relay endpoint with a relay object
relay2 = Azure::ServiceBus::Relay.new("test-relay-2")
relay2.requires_client_authorization = false
relay2 = service_bus.create_relay(relay2)
# Delete a relay endpoint
service_bus.delete_relay("test-relay2")
```
<a name="topics"></a>
### Topics
```ruby
# Require the azure rubygem
require "azure"
# Create an azure service bus object
service_bus = Azure.service_bus
# Create a topic with just the topic name
topic1 = service_bus.create_topic("test-topic-1")
# Create a topic with a topic object
topic2 = Azure::ServiceBus::Topic.new("test-topic-2")
topic2.max_size_in_megabytes = 2048
topic2 = service_bus.create_topic(topic2)
# Create a subscription
subscription = Azure::ServiceBus::Subscription.new("test-subscription-1")
subscription.topic = topic1.name
subscription = service_bus.create_subscription(subscription)
# Send a topic message with just the message body
azure_service_bus.send_topic_message(topic1, "test topic message")
# Send a topic message with a brokered message object
message = Azure::ServiceBus::BrokeredMessage.new("another test topic message")
message.correlation_id = "test-correlation-id-1"
service_bus.send_topic_message(topic1, message)
# Receive a subscription message
message = service_bus.receive_subscription_message(topic1.name, subscription.name)
# Delete a subscription message
service_bus.delete_subscription_message(message)
# Delete a subscription
service_bus.delete_subscription(subscription)
# Delete a topic
service_bus.delete_topic(topic1)
```
<a name="vms"></a>
## Virtual Machine Management
```ruby
# Require the azure rubygem
require 'azure'
# Configure these properties
Azure.management_certificate = "path to *.pem or *.pfx file"
Azure.subscription_id = "your subscription id"
# Create a virtual machine service object
vm_management = Azure.vm_management
# Get a list of existing virtual machines in your subscription
vm_management.list_virtual_machines
# API to shutdown Virtual Machine
vm_management.shutdown_virtual_machine('vm_name', 'cloud_service_name')
# API to start Virtual Machine
vm_management.start_virtual_machine('vm_name', 'cloud_service_name')
# API to restart Virtual Machine
vm_management.restart_virtual_machine('vm_name', 'cloud_service_name')
# API for add disk to Virtual Machine
options = {
:disk_label => 'disk-label',
:disk_size => 100, #In GB
:import => false,
:disk_name => 'Disk name' #Required when import is true
}
vm_management.add_data_disk('vm_name', 'cloud_service_name', options)
# API to add/update Virtual Machine endpoints
endpoint1 = {
:name => 'ep-1',
:public_port => 996,
:local_port => 998,
:protocol => 'TCP',
}
endpoint2 = {
:name => 'ep-2',
:public_port => 997,
:local_port => 997,
:protocol => 'TCP',
:load_balancer_name => lb-ep2,
:load_balancer => {:protocol => 'http', :path => 'hello'}
}
vm_management.update_endpoints('vm_name', 'cloud_service_name', endpoint1, endpoint2)
# API to delete Virtual Machine endpoint
vm_management.delete_endpoint('vm_name', 'cloud_service_name', 'endpoint_name')
# API to delete Virtual Machine
options = {
:delete_vhd => true
}
vm_management.delete_virtual_machine('vm_name', 'cloud_service_name', options)
# API to start deployment
params = {
:vm_name => 'vm_name',
:vm_user => 'azureuser',
:image => '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-63APR20130415',
:password => 'Password',
:location => 'West US'
}
options = {
:storage_account_name => 'storage_suse',
:cloud_service_name => 'cloud_service_name',
:deployment_name =>'vm_name',
:tcp_endpoints => '80,3389:3390',
:private_key_file => './private_key.key', # required for ssh
:ssh_port => 2222,
:vm_size => 'Small', # Use any Azure VM size
:affinity_group_name => 'affinity1',
:virtual_network_name => 'xplattestvnet',
:subnet_name => 'subnet1',
:availability_set_name => 'availabiltyset1',
:reserved_ip_name => 'reservedipname'
}
vm_management.create_virtual_machine(params,options)
# API usage to add new roles under cloud service creating VM
# API add_role create multiple roles under the same cloud service. Atleast a single deployment should be created under a hosted service.
params = {
:vm_name => 'vm_name',
:cloud_service_name => 'cloud_service_name',
:vm_user => 'azureuser',
:image => 'a699494373c04fc0bc8f2bb1389d6106__Win2K8R2SP1-Datacenter-201305.01-en.us-127GB.vhd',
:password => 'ComplexPassword',
}
options = {
:storage_account_name => 'storage_suse',
:winrm_transport => ['https','http'], # Currently http(s) is supported.
:tcp_endpoints => '80,3389:3390',
:private_key_file => './private_key.key', # Required for winrm(https) certificate.
:winrm_https_port => 5999,
:winrm_http_port => 6999, # Used to open different powershell port
:vm_size => 'Small', # Use any Azure VM size
:availability_set_name => 'availabiltyset'
}
vm_management.add_role(params, options)
```
<a name="images"></a>
## List Images
```ruby
# Get a list of available virtual machine images
vm_image_management = Azure.vm_image_management
vm_image_management.list_virtual_machine_images
```
<a name="base-mgmt"></a>
## Base Management
<a name="locations"></a>
```ruby
# Get a list of available regional data center locations
base_management = Azure.base_management
base_management.list_locations
```
<a name="affinity"></a>
### Affinity Group Management
```ruby
# Require the azure rubygem
require 'azure'
# Create a affinity group service object
base_management = Azure.base_management
# Get a list of affinity group that are provisioned for a subscription.
base_management.list_affinity_groups
# API to delete affinity group
base_management.delete_affinity_group('affinity-group-name')
# API to add a new affinity group to a subscription
options = {:description => 'Some Description'}
base_management.create_affinity_group('affinity-group-name', 'West US', 'Label Name', options)
# API to update affinity group
options = {:description => 'Some Description'}
base_management.update_affinity_group('affinity-group-name', 'Label Name', options)
# API to list properties associated with the specified affinity group
base_management.get_affinity_group('affinity-group-name')
```
<a name="sql"></a>
## SQL Database Server Management
```ruby
# Require the azure rubygem
require 'azure'
# Configure these properties
Azure.management_certificate = "path to *.pem or *.pfx file"
Azure.subscription_id = "your subscription id"
# Create a database server service object
sql_db_service = Azure.sql_database_management
# Get a list of SQL Database servers that are provisioned for a subscription.
sql_db_service.list_servers
# API to delete SQL Database server
sql_db_service.delete_server('server_name')
# API to adds a new SQL Database server to a subscription
sql_db_service.create_server('admin-login', 'ComplexPassword', 'West US')
# API to sets the administrative password of a SQL Database server for a subscription
sql_db_service.reset_password('server-name', 'NewPassword')
# Get a list of all the server-level firewall rules for a SQL Database server that belongs to a subscription
sql_db_service.list_sql_server_firewall_rules("server-name")
# API to adds a new server-level firewall rule or updates an existing server-level firewall rule for a SQL Database server with requesters IP address.
sql_db_service.delete_sql_server_firewall_rule("server-name", "rule-name")
# API to add/updates server-level firewall rule for a SQL Database server that belongs to a subscription
ip_range = {:start_ip_address => "0.0.0.1", :end_ip_address => "0.0.0.5"}
sql_db_service.set_sql_server_firewall_rule("server-name", "rule-name", ip_range)
# If ip_range was not specified in the above api then the IP of the machine from where the api is being called would be set as the rule.
# To toggle between the option to allow Microsoft Azure services to access db server similar to azure portal just set the fire wall rule
# with iprange to be 0.0.0.0 as start and end.Remove the rule to unset this option.
```
<a name="vnets"></a>
## Virtual Network Management
```ruby
# Require the azure rubygem
require 'azure'
# Create a virtual network service object
vnet = Azure.network_management
# API to get a list of virtual networks created for a subscription.
vnet.list_virtual_networks
# API to configure virtual network with required and optional parameters
address_space = ['172.16.0.0/12', '10.0.0.0/8', '192.168.0.0/24']
subnets = [{:name => 'subnet-1', :ip_address=>'172.16.0.0', :cidr=>12}, {:name => 'subnet-2', :ip_address=>'10.0.0.0', :cidr=>8}]
dns_servers = [{:name => 'dns-1', :ip_address=>'1.2.3.4'}, {:name => 'dns-2', :ip_address=>'8.7.6.5'}]
options = {:subnet => subnets, :dns => dns_servers}
vnet.set_network_configuration('virtual-network-name', 'location_name', address_space, options)
# API to configure virtual network from xml file that can be exported from management portal and customized to add or delete vnet
vnetxml = './customnetwork.xml'
vnet.set_network_configuration(vnetxml)
```
# Getting Started with Certificates
Currently the sdk supports *.pem or *.pfx (passwordless pfx) for service management operations. Following are the steps discussed on various cert operations.
## Get Started with Publish Settings
* To create a pfx from the publishsettings, simply download the publishsettings file for your subscription
[https://manage.windowsazure.com/publishsettings](https://manage.windowsazure.com/publishsettings/index?client=powershell). Make sure you have this gem installed and
run `pfxer transform --in [path to your .publishsettings file]`. This will create a .pfx from your publish settings file which can
be supplied as a cert parameter for Service Management Commands.
## Get Started with OpenSSL
* Using the following openssl commands to create a cert and upload to Azure Management
* Generate public and private `openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout cert.pem -out cert.pem`
* Generate public .cer for Azure upload `openssl x509 -inform pem -in cert.pem -outform der -out mgmt.cer`
* Upload the `mgmt.cer` to Azure Management through [https://management.azure.com](https://management.azure.com)
* Use cert.pem as your cert parameter for Service Management Commands.

Просмотреть файл

@ -1,55 +0,0 @@
Bag Attributes
localKeyID: 01 00 00 00
friendlyName: {D4417DE0-CB19-4947-B5B4-DE6D7F72171D}
Microsoft CSP Name: Microsoft Software Key Storage Provider
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDlVqp43jiBkO2M
YOpCqofHsFHaooZCmYSAxyZGyxQLPEc4Zvft0uzIdQy6QnzN+MQkQ8hWrL+BNp2S
NYPFIXY9HYz5BZBMomM/lTsZltLgJSQENE6jTomznCgRy4GNg0hkaGkuhSSbWmBC
jmlfJXkbZgfGuc5Lz8BZYPWO5hvP23XIRnVIW44oKcQfvkS80qyyzFNa0vdp3rov
WdKV3QfScDIgTr0FQDANYTYWBV/r4xnXndjLOxgVwU3Kp0WPUkCz3uloMRGWs974
bpWGwnOblJb4j0X7Q46rTZ4f4HGZlKbeRV/MtPcrZJ+V6ovQ9tz1sUbbCbn4ABag
m+6NCcqRAgMBAAECggEAHHRMidsOeTrlUke7AQL9/j9o5H7KOCyqdTzgSaPMLJmx
v3R9GeeT48osBlcV+4a8MMCtNF3SE+LWGYwkuXptnGcUdNglH3D9befi0Ym2R8Or
7I6d3CK0MJH1IcIVZJyviG+w7ynrURAdRdy8A6dXV5go6lXm296co3ZFeVGhDUCR
838zthk0Ltf347nLerhJUhJAIOX7Ct21xMOrbT5KfOVThgTxrZKmP29ORMoqnXN8
8SdpHsdqdNro8uSEARyG80g4ZZVPVqZqRLr+cX080lJ4p8GPf/nPOWGGrtGCCEgI
1FCX8aWH3PGOSLqo3boSiZfrLHT5BhJsXD/OXJZPzQKBgQD9vl+jiZSHPoo63/JO
uKS0kGos6ZZc4WvjXx6JBrtnsOdw9YBAPKEY9VYyKi3fnv1v1gIB65e9rfeF+PmI
KXKLwLcZWFRbaaB3xs3Bxo0Yn1tRRvANDAKR8Xfl77B06j2kKrPmfdEbmd3hHJqN
ZYG4hj+PR1SQ+0jvwSg7cPtwrQKBgQDnYLxxoejm+JrEVGebvKv3AWDshBN+91dX
iM4u5zke4qzocp0RYpjIjkUIb6Y/jwxscZmgetu9keDBAFCPU2ReTjFGmHZiip72
xxQLF2dxlqgcSzURW9SjbstB0LUyxbTwIYTTOavHBrvnkw9S4rgLVHTVWzzInWag
iw4lbfBp9QKBgC7KTS6F7zqlQK4sn6z+hXi6bKnNhSmpc9CguKvB7wrm5zbAPp8Z
zwcgLn3fo0fqNIfL6eDaxcd3bf5pc/I02meE6P6meB/HMY0Fe72w1FHnCNrK/vcY
8Nxir55Z/asBis5cBYKKTuYNEIozURij0DDrqIrON3zoqYF0l+umIOedAoGAYiTn
ai/qkeaMB5Fh7W6HZxvfmBOiDW4vT0MJal3MHey6uVK8iz5OXmvynlR1qWotM+av
6qGSigPR2Swf/9u4rEPwpOhQ9xWjvjvNpbLEvyrPnkjMdtOEC9sYPo+f/KxeRqmB
JPPGiIKzu9PmYRsoRC4L7OBplRMnEBxL4NaUbu0CgYEA2z7BuOzuE3QmxaNzbP7+
PWkRg0JEFksN/8bRo6fuVMaosEs4jZunCyPk0ne//p+dcKE8cInC9/jGJs5XutUi
L8KuTu3ljFOLE/y+8FHR/Hxpvzp8k6iDPl7mvvZJ7gt2aO9IZq3XHoRLbgSUPo2X
YlXoh+vo+SQVRQtbxpuk1gM=
-----END PRIVATE KEY-----
Bag Attributes
localKeyID: 01 00 00 00
friendlyName: Ruby SDK
subject=/CN=Windows Azure Tools
issuer=/CN=Windows Azure Tools
-----BEGIN CERTIFICATE-----
MIICxDCCAaygAwIBAgIQQ86pQDjNkolP6pILfxFhITANBgkqhkiG9w0BAQUFADAe
MRwwGgYDVQQDExNXaW5kb3dzIEF6dXJlIFRvb2xzMB4XDTEzMDUxNjA0NDgzNloX
DTE0MDUxNjA0NDgzNlowHjEcMBoGA1UEAxMTV2luZG93cyBBenVyZSBUb29sczCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOVWqnjeOIGQ7Yxg6kKqh8ew
UdqihkKZhIDHJkbLFAs8Rzhm9+3S7Mh1DLpCfM34xCRDyFasv4E2nZJ1g8Uhdj0d
jPkFkEyiYz+VOxmW0uAlJCQ0TqNOibOcKBHLgY2DSGRoaS6FJJtaYEKOaV8leRtm
B8a5zkvPsFlg9Y7mG8/bdchGdUhbjigpxB++RLzSrLLMU1rS92neui9Z0pXdB9Jw
MiBOvQVAMA1hNhYFX+vjGded2Ms7GBXBTcqnRY9SQLPe6WgxEZaz3vaulYbCc5uU
lviPRftDjqtNnh/gcZmUpt5FX8y09ytkn5Xqi9D23PWxRtsJufgAFqCb7o0JypEC
AwEAATANBgkqhkiG9w0BAQUFAAOCAQEAFkhTUWZN3xvh50zvDBRJgvc83kx61Npl
J1G6F98aa+mdZmkbXLdNt+dHR+aGg/0RAs97yPoSc9km5uedEpQQD0xDh9X84jSv
GnrGTsmjBMJvE8jhT0P/zGfTKfncQOx00cVcNm5F1GdWsni7OcVuOLQ+0se8VHsR
JSQBBWQVZOXJp2zYs935jrI47bCCNSNFQ1sAvxFdMeBZKwtmvhp1c6Zl3j/KVbvL
S0Izpu1vXvozNDo6HmJPhpONU6qlMfU2iSzUQN21PRt82vMOVx4xyBzbm6vPc50g
PR10SWXaXL/UmBlxfJ3nhD1YgqIQtWMdbSQ81j3MzrGrrlIdjPUFOw==
-----END CERTIFICATE-----

Просмотреть файл

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PublishData>
<PublishProfile
SchemaVersion="2.0"
PublishMethod="AzureServiceManagementAPI">
<Subscription
ServiceManagementUrl="https://management.core.windows.net"
Id="subscription-id"
Name="Fixtures Publish Settings"
ManagementCertificate="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" />
</PublishProfile>
</PublishData>

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.6 KiB

После

Ширина:  |  Высота:  |  Размер: 2.6 KiB

Просмотреть файл

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше