vagrant-azure 2.0.0.pre7 → 2.0.0.pre8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.rubocop.yml +120 -0
- data/.travis.yml +13 -0
- data/Gemfile +4 -5
- data/README.md +98 -57
- data/docs/basic_linux/Vagrantfile +17 -0
- data/docs/basic_linux/readme.md +12 -0
- data/docs/basic_windows/Vagrantfile +20 -0
- data/docs/basic_windows/readme.md +12 -0
- data/docs/custom_vhd/Vagrantfile +16 -0
- data/docs/custom_vhd/readme.md +48 -0
- data/docs/data_disks/Vagrantfile +16 -0
- data/docs/data_disks/readme.md +20 -0
- data/docs/managed_image/Vagrantfile +15 -0
- data/docs/managed_image/readme.md +66 -0
- data/docs/readme.md +30 -0
- data/lib/vagrant-azure/action/run_instance.rb +95 -69
- data/lib/vagrant-azure/config.rb +75 -4
- data/lib/vagrant-azure/util/machine_id_helper.rb +4 -0
- data/lib/vagrant-azure/util/managed_image_helper.rb +26 -0
- data/lib/vagrant-azure/util/template_renderer.rb +54 -0
- data/lib/vagrant-azure/util/timer.rb +4 -0
- data/lib/vagrant-azure/util/vm_await.rb +4 -0
- data/lib/vagrant-azure/util/vm_status_translator.rb +4 -0
- data/lib/vagrant-azure/version.rb +1 -1
- data/locales/en.yml +6 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/templates/arm/deployment_spec.rb +169 -0
- data/spec/vagrant-azure/config_spec.rb +3 -3
- data/templates/arm/deployment.json.erb +50 -258
- data/templates/arm/resources/availability_set.json.erb +6 -0
- data/templates/arm/resources/data_disk.json.erb +21 -0
- data/templates/arm/resources/import_vhd_image.json.erb +23 -0
- data/templates/arm/resources/linux_reset_root_ext.json.erb +20 -0
- data/templates/arm/resources/network_interface.json.erb +26 -0
- data/templates/arm/resources/network_security_group.json.erb +85 -0
- data/templates/arm/resources/public_ip_address.json.erb +12 -0
- data/templates/arm/resources/storage_account.json.erb +9 -0
- data/templates/arm/resources/virtual_machine.json.erb +82 -0
- data/templates/arm/resources/virtual_network.json.erb +27 -0
- data/templates/arm/resources/windows_reset_access_ext.json.erb +21 -0
- data/vagrant-azure.gemspec +4 -6
- metadata +38 -40
- data/spec/vagrant-azure/services/azure_resource_manager_spec.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da040d6fe92668e86a2828f25d39fc82d1e397ce
|
4
|
+
data.tar.gz: 50faba226ed65574c3f9eac920e38ee201e81f1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db13176d896df48b484d7839613dfd383331e020ddff811423931f18167b3e3e7923dc237199143e0bc4a82805260a20a3977dc9069d5140b90d9f28b7bca54f
|
7
|
+
data.tar.gz: 11a945a753a95a9b183b9d184322ac4514d1ca2ecc8c435ca861e27840c672aaca5aefe6339a674378f6985bff6a5c8094295c260fde2f0c5eb025c9e1b43b42
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.2
|
3
|
+
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
|
4
|
+
# to ignore them, so only the ones explicitly set in this file are enabled.
|
5
|
+
DisabledByDefault: true
|
6
|
+
|
7
|
+
# Prefer &&/|| over and/or.
|
8
|
+
Style/AndOr:
|
9
|
+
Enabled: true
|
10
|
+
|
11
|
+
# Do not use braces for hash literals when they are the last argument of a
|
12
|
+
# method call.
|
13
|
+
Style/BracesAroundHashParameters:
|
14
|
+
Enabled: true
|
15
|
+
|
16
|
+
# Align `when` with `case`.
|
17
|
+
Style/CaseIndentation:
|
18
|
+
Enabled: true
|
19
|
+
|
20
|
+
# Align comments with method definitions.
|
21
|
+
Style/CommentIndentation:
|
22
|
+
Enabled: true
|
23
|
+
|
24
|
+
# No extra empty lines.
|
25
|
+
Style/EmptyLines:
|
26
|
+
Enabled: true
|
27
|
+
|
28
|
+
# In a regular class definition, no empty lines around the body.
|
29
|
+
Style/EmptyLinesAroundClassBody:
|
30
|
+
Enabled: true
|
31
|
+
|
32
|
+
# In a regular method definition, no empty lines around the body.
|
33
|
+
Style/EmptyLinesAroundMethodBody:
|
34
|
+
Enabled: true
|
35
|
+
|
36
|
+
# In a regular module definition, no empty lines around the body.
|
37
|
+
Style/EmptyLinesAroundModuleBody:
|
38
|
+
Enabled: true
|
39
|
+
|
40
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
41
|
+
Style/HashSyntax:
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
45
|
+
# extra level of indentation.
|
46
|
+
Style/IndentationConsistency:
|
47
|
+
Enabled: true
|
48
|
+
EnforcedStyle: rails
|
49
|
+
|
50
|
+
# Two spaces, no tabs (for indentation).
|
51
|
+
Style/IndentationWidth:
|
52
|
+
Enabled: true
|
53
|
+
|
54
|
+
Style/SpaceAfterColon:
|
55
|
+
Enabled: true
|
56
|
+
|
57
|
+
Style/SpaceAfterComma:
|
58
|
+
Enabled: true
|
59
|
+
|
60
|
+
Style/SpaceAroundEqualsInParameterDefault:
|
61
|
+
Enabled: true
|
62
|
+
|
63
|
+
Style/SpaceAroundKeyword:
|
64
|
+
Enabled: true
|
65
|
+
|
66
|
+
Style/SpaceAroundOperators:
|
67
|
+
Enabled: true
|
68
|
+
|
69
|
+
Style/SpaceBeforeFirstArg:
|
70
|
+
Enabled: true
|
71
|
+
|
72
|
+
# Defining a method with parameters needs parentheses.
|
73
|
+
Style/MethodDefParentheses:
|
74
|
+
Enabled: true
|
75
|
+
|
76
|
+
# Use `foo {}` not `foo{}`.
|
77
|
+
Style/SpaceBeforeBlockBraces:
|
78
|
+
Enabled: true
|
79
|
+
|
80
|
+
# Use `foo { bar }` not `foo {bar}`.
|
81
|
+
Style/SpaceInsideBlockBraces:
|
82
|
+
Enabled: true
|
83
|
+
|
84
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
85
|
+
Style/SpaceInsideHashLiteralBraces:
|
86
|
+
Enabled: true
|
87
|
+
|
88
|
+
Style/SpaceInsideParens:
|
89
|
+
Enabled: true
|
90
|
+
|
91
|
+
# Check quotes usage according to lint rule below.
|
92
|
+
Style/StringLiterals:
|
93
|
+
Enabled: true
|
94
|
+
EnforcedStyle: double_quotes
|
95
|
+
|
96
|
+
# Detect hard tabs, no hard tabs.
|
97
|
+
Style/Tab:
|
98
|
+
Enabled: true
|
99
|
+
|
100
|
+
# Blank lines should not have any spaces.
|
101
|
+
Style/TrailingBlankLines:
|
102
|
+
Enabled: true
|
103
|
+
|
104
|
+
# No trailing whitespace.
|
105
|
+
Style/TrailingWhitespace:
|
106
|
+
Enabled: true
|
107
|
+
|
108
|
+
# Use quotes for string literals when they are enough.
|
109
|
+
Style/UnneededPercentQ:
|
110
|
+
Enabled: true
|
111
|
+
|
112
|
+
# Align `end` with the matching keyword or starting expression except for
|
113
|
+
# assignments, where it should be aligned with the LHS.
|
114
|
+
Lint/EndAlignment:
|
115
|
+
Enabled: true
|
116
|
+
EnforcedStyleAlignWith: variable
|
117
|
+
|
118
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
119
|
+
Lint/RequireParentheses:
|
120
|
+
Enabled: true
|
data/.travis.yml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
rvm:
|
4
|
+
- 2.2.5
|
5
|
+
before_install:
|
6
|
+
- rvm @default,@global do gem uninstall bundler -a -x
|
7
|
+
- gem install bundler -v 1.10.5
|
8
|
+
deploy:
|
9
|
+
provider: rubygems
|
10
|
+
api_key:
|
11
|
+
secure: "ThMTLeJ1E2dLLAK1AIokfE+0GyfCKwaAstxETI/qFkOwL21REi6dgTfPIrBpgmrYATb/YgkgIf6Zl46R7vx9/dtgIGBmX7AXT3zsR38P3zfOGy5PzHGGK72ZmkC5UFSBsnQl5J0qQsUEMQfEy2g7dwn1d9aFLKhvnFblNHt4x5c="
|
12
|
+
on:
|
13
|
+
tags: true
|
data/Gemfile
CHANGED
@@ -2,18 +2,17 @@
|
|
2
2
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
3
3
|
# Licensed under the MIT License. See License in the project root for license information.
|
4
4
|
|
5
|
-
source
|
5
|
+
source "https://rubygems.org"
|
6
6
|
|
7
7
|
gemspec
|
8
8
|
|
9
|
-
group :development do
|
9
|
+
group :development, :test do
|
10
10
|
# We depend on Vagrant for development, but we don't add it as a
|
11
11
|
# gem dependency because we expect to be installed within the
|
12
12
|
# Vagrant environment itself using `vagrant plugin`.
|
13
|
-
gem
|
14
|
-
gem 'bundler', '~>1.10.5'
|
13
|
+
gem "vagrant", git: "https://github.com/mitchellh/vagrant.git", tag: "v1.9.2"
|
15
14
|
end
|
16
15
|
|
17
16
|
group :plugins do
|
18
|
-
gem
|
17
|
+
gem "vagrant-azure", path: "."
|
19
18
|
end
|
data/README.md
CHANGED
@@ -5,32 +5,41 @@
|
|
5
5
|
This is a [Vagrant](http://www.vagrantup.com) 1.7.3+ plugin that adds [Microsoft Azure](https://azure.microsoft.com)
|
6
6
|
provider to Vagrant, allowing Vagrant to control and provision machines in Microsoft Azure.
|
7
7
|
|
8
|
-
##
|
9
|
-
|
10
|
-
[
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
8
|
+
## Getting Started
|
9
|
+
|
10
|
+
[Install Vagrant](https://www.vagrantup.com/docs/installation/)
|
11
|
+
|
12
|
+
### Create an Azure Active Directory (AAD) Application
|
13
|
+
AAD encourages the use of Applications / Service Principals for authenticating applications. An
|
14
|
+
application / service principal combination provides a service identity for Vagrant to manage your Azure Subscription.
|
15
|
+
[Click here to learn about AAD applications and service principals.](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects.)
|
16
|
+
- [Install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
|
17
|
+
- run `az login` to log into Azure
|
18
|
+
- run `az ad sp create-for-rbac` to create an Azure Active Directory Application with access to Azure Resource Manager
|
19
|
+
for the current Azure Subscription
|
20
|
+
- If you want to run this for a different Azure Subscription, run `az account set --subscription 'your subscription name'`
|
21
|
+
- run `az account list --query "[?isDefault].id" -o tsv` to get your Azure Subscription Id.
|
22
|
+
|
23
|
+
The output of `az ad sp create-for-rbac` should look like the following:
|
24
|
+
```json
|
25
|
+
{
|
26
|
+
"appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
|
27
|
+
"displayName": "some-display-name",
|
28
|
+
"name": "http://azure-cli-2017-04-03-15-30-52",
|
29
|
+
"password": "XXXXXXXXXXXXXXXXXXXX",
|
30
|
+
"tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
|
31
|
+
}
|
19
32
|
```
|
33
|
+
The values `tenant`, `appId` and `password` map to the configuration values
|
34
|
+
`azure.tenant_id`, `azure.client_id` and `azure.client_secret` in your Vagrant file or environment variables.
|
20
35
|
|
21
|
-
|
22
|
-
|
23
|
-
## Quick Start
|
24
|
-
|
25
|
-
You can use the dummy box and specify all the required details manually in the ```config.vm.provider``` block in your ```Vagrantfile```. Add the dummy box with the name you want:
|
36
|
+
For ***nix**, edit your `Vagrantfile` as shown below and provide all the values as explained.
|
26
37
|
|
27
|
-
|
28
|
-
$ vagrant box add azure https://github.com/azure/vagrant-azure/raw/v2.0/dummy.box
|
29
|
-
...
|
30
|
-
```
|
38
|
+
### Create a Vagrantfile
|
31
39
|
|
32
|
-
|
40
|
+
Create a directory and add the Linux or Windows Vagrantfile content below to a file named `Vagrantfile`.
|
33
41
|
|
42
|
+
#### Linux Vagrantfile
|
34
43
|
```ruby
|
35
44
|
Vagrant.configure('2') do |config|
|
36
45
|
config.vm.box = 'azure'
|
@@ -39,9 +48,6 @@ Vagrant.configure('2') do |config|
|
|
39
48
|
config.ssh.private_key_path = '~/.ssh/id_rsa'
|
40
49
|
config.vm.provider :azure do |azure, override|
|
41
50
|
|
42
|
-
# use Azure Active Directory Application / Service Principal to connect to Azure
|
43
|
-
# see: https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/
|
44
|
-
|
45
51
|
# each of the below values will default to use the env vars named as below if not specified explicitly
|
46
52
|
azure.tenant_id = ENV['AZURE_TENANT_ID']
|
47
53
|
azure.client_id = ENV['AZURE_CLIENT_ID']
|
@@ -52,17 +58,13 @@ Vagrant.configure('2') do |config|
|
|
52
58
|
end
|
53
59
|
```
|
54
60
|
|
55
|
-
|
56
|
-
|
61
|
+
#### Windows Vagrantfile
|
57
62
|
```ruby
|
58
63
|
Vagrant.configure('2') do |config|
|
59
64
|
config.vm.box = 'azure'
|
60
65
|
|
61
66
|
config.vm.provider :azure do |azure, override|
|
62
67
|
|
63
|
-
# use Azure Active Directory Application / Service Principal to connect to Azure
|
64
|
-
# see: https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/
|
65
|
-
|
66
68
|
# each of the below values will default to use the env vars named as below if not specified explicitly
|
67
69
|
azure.tenant_id = ENV['AZURE_TENANT_ID']
|
68
70
|
azure.client_id = ENV['AZURE_CLIENT_ID']
|
@@ -73,7 +75,6 @@ Vagrant.configure('2') do |config|
|
|
73
75
|
azure.instance_ready_timeout = 600
|
74
76
|
azure.vm_password = 'TopSecretPassw0rd'
|
75
77
|
azure.admin_username = "OctoAdmin"
|
76
|
-
azure.admin_password = 'TopSecretPassw0rd'
|
77
78
|
override.winrm.transport = :ssl
|
78
79
|
override.winrm.port = 5986
|
79
80
|
override.winrm.ssl_peer_verification = false # must be false if using a self signed cert
|
@@ -82,57 +83,97 @@ Vagrant.configure('2') do |config|
|
|
82
83
|
end
|
83
84
|
```
|
84
85
|
|
85
|
-
|
86
|
+
### Spin Up a Box in Azure
|
87
|
+
|
88
|
+
Install the vagrant-azure plugin using the standard Vagrant 1.1+ installation methods. After installing the plugin,
|
89
|
+
you can ```vagrant up``` and use ```azure``` provider. For example:
|
86
90
|
|
87
91
|
```sh
|
92
|
+
$ vagrant box add azure https://github.com/azure/vagrant-azure/raw/v2.0/dummy.box --provider azure
|
93
|
+
& vagrant plugin install vagrant-azure --plugin-version '2.0.0.pre6'
|
88
94
|
$ vagrant up --provider=azure
|
89
|
-
...
|
90
95
|
```
|
91
96
|
|
92
97
|
This will bring up an Azure VM as per the configuration options set above.
|
93
98
|
|
94
|
-
You can now either SSH (if its a *Nix VM) using ```vagrant ssh```, RDP (if its a Windows VM) using ```vagrant rdp```
|
95
|
-
|
96
|
-
Normally, a lot of this options, e.g., ```vm_image_urn```, will be embedded in a box file and you just have to provide minimal options in the ```Vagrantfile```. Since, we're using a dummy box, there are no pre-configured defaults.
|
97
|
-
|
98
|
-
## Azure Boxes
|
99
|
-
|
100
|
-
The vagrant-azure plugin provides the ability to use ```Azure``` boxes with Vagrant. Please see the example box provided in [example_box](https://github.com/azure/vagrant-azure/tree/v2.0/example_box) directory and follow the instructions there to build an ```azure``` box.
|
99
|
+
You can now either SSH (if its a *Nix VM) using ```vagrant ssh```, RDP (if its a Windows VM) using ```vagrant rdp```
|
100
|
+
or PowerShell ```vagrant powershell```.
|
101
101
|
|
102
|
-
|
102
|
+
Normally, a lot of the options, e.g., ```vm_image_urn```, will be embedded in a box file and you just have to provide
|
103
|
+
minimal options in the ```Vagrantfile```. Since, we're using a dummy box, there are no pre-configured defaults.
|
103
104
|
|
104
105
|
## Configuration
|
105
106
|
|
106
|
-
The vagrant-azure provide exposes
|
107
|
-
|
108
|
-
### Mandatory
|
109
|
-
|
110
|
-
For instructions on how to setup an Azure Active Directory Application see: <https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/>
|
107
|
+
The vagrant-azure provide exposes Azure specific configuration options:
|
111
108
|
|
109
|
+
### Mandatory Parameters
|
112
110
|
* `tenant_id`: Your Azure Active Directory Tenant Id.
|
113
111
|
* `client_id`: Your Azure Active Directory application client id.
|
114
112
|
* `client_secret`: Your Azure Active Directory application client secret.
|
115
113
|
* `subscription_id`: The Azure subscription Id you'd like to use.
|
114
|
+
*Note: to procure these values see: [Create an Azure Active Directory Application](#create-an-azure-active-directory-aad-application)*
|
116
115
|
|
117
|
-
### Optional
|
118
|
-
|
119
|
-
* `resource_group_name`: (Optional) Name of the resource group to use.
|
120
|
-
* `location`: (Optional) Azure location to build the VM -- defaults to `westus`
|
121
|
-
* `vm_name`: (Optional) Name of the virtual machine
|
116
|
+
### Optional VM Parameters
|
117
|
+
* `vm_name`: Name of the virtual machine
|
122
118
|
* `vm_password`: (Optional for *nix) Password for the VM -- This is not recommended for *nix deployments
|
123
|
-
* `vm_size`:
|
124
|
-
* `
|
119
|
+
* `vm_size`: VM size to be used -- defaults to 'Standard_DS2_v2'. See sizes for [*nix](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/), [Windows](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-sizes/).
|
120
|
+
* `admin_username`: The root/administrator username for the VM
|
121
|
+
|
122
|
+
### Optional VM Image Parameters
|
123
|
+
`vm_image_urn`, `vm_vhd_uri`, and `vm_managed_image_id` are mutually exclusive. They should not be used in combination.
|
124
|
+
* `vm_image_urn`: Name of the virtual machine image urn to use -- defaults to 'canonical:ubuntuserver:16.04-LTS:latest'. See documentation for [*nix](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-cli-ps-findimage/), [Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-windows-cli-ps-findimage).
|
125
|
+
* `vm_vhd_uri`: URI to the custom VHD. If the VHD is not publicly accessible, provide a SAS token in the URI.
|
126
|
+
* `vm_operating_system`: (Mandatory) Must provide the OS if using a custom image ("Linux" or "Windows")
|
127
|
+
* `vm_vhd_storage_account_id`: (Manditory) The Storage Account Azure Resource Manager Id where the OS Image is stored
|
128
|
+
(like: /subscriptions/{subscription id}/resourceGroups/{resource group}/providers/Microsoft.Storage/storageAccounts/{account name}).
|
129
|
+
* `vm_managed_image_id`: Create a VM from a generalized VM that is stored as either a managed or unmanaged disk. See: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource
|
130
|
+
|
131
|
+
### Optional VM Data Disk Parameters (Preview)
|
132
|
+
The data disk functionality is preview and may change before the 2.0 release.
|
133
|
+
* `data_disks`: (Optional) Array of Data Disks to attach to the VM. For information on attaching the drive, See: https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk.
|
134
|
+
```ruby
|
135
|
+
override.data_disks = [
|
136
|
+
# sample of creating empty data disk
|
137
|
+
{
|
138
|
+
name: "mydatadisk1",
|
139
|
+
size_gb: 30
|
140
|
+
},
|
141
|
+
# sample of attaching an existing VHD as a data disk
|
142
|
+
{
|
143
|
+
name: "mydatadisk2",
|
144
|
+
vhd_uri: "http://mystorage.blob.core.windows.net/vhds/mydatadisk2.vhd"
|
145
|
+
},
|
146
|
+
# sample of attaching a data disk from image
|
147
|
+
{
|
148
|
+
name: "mydatadisk3",
|
149
|
+
vhd_uri: "http://mystorage.blob.core.windows.net/vhds/mydatadisk3.vhd",
|
150
|
+
image: "http: //storagename.blob.core.windows.net/vhds/VMImageName-datadisk.vhd"
|
151
|
+
}]
|
152
|
+
```
|
153
|
+
|
154
|
+
### Optional Networking Parameters
|
125
155
|
* `virtual_network_name`: (Optional) Name of the virtual network resource
|
156
|
+
* `dns_name`: (Optional) DNS Label Prefix
|
157
|
+
* `nsg_name`: (Optional) Network Security Group Label Prefix
|
126
158
|
* `subnet_name`: (Optional) Name of the virtual network subnet resource
|
127
159
|
* `tcp_endpoints`: (Optional) The custom inbound security rules part of network security group (a.k.a. opened tcp endpoints). Allows specifying one or more intervals in the form of:
|
128
160
|
* an array `['8000-9000', '9100-9200']`,
|
129
161
|
* a single interval as `'8000-9000'`,
|
130
162
|
* a single port as `8000`.
|
163
|
+
|
164
|
+
### Optional Windows Parameters
|
165
|
+
* `winrm_install_self_signed_cert`: (Optional, Windows only) Whether to install a self-signed cert automatically to enable WinRM to communicate over HTTPS (5986). Only available when a custom `deployment_template` is not supplied. Default 'true'.
|
166
|
+
|
167
|
+
### Optional Provisioning Parameters
|
131
168
|
* `instance_ready_timeout`: (Optional) The timeout to wait for an instance to become ready -- default 120 seconds.
|
132
169
|
* `instance_check_interval`: (Optional) The interval to wait for checking an instance's state -- default 2 seconds.
|
133
|
-
* `endpoint`: (Optional) The Azure Management API endpoint -- default `ENV['AZURE_MANAGEMENT_ENDPOINT']` if exists, falls back to <https://management.azure.com>.
|
134
|
-
* `admin_username`: (Optional) The root/administrator username for the VM
|
135
|
-
* `admin_password`: (Optional, Windows only) The password to set for the windows administrator user
|
136
|
-
* `winrm_install_self_signed_cert`: (Optional, Windows only) Whether to install a self-signed cert automatically to enable WinRM to communicate over HTTPS (5986). Only available when a custom `deployment_template` is not supplied. Default 'true'.
|
137
|
-
* `deployment_template`: (Optional) A custom ARM template to use instead of the default template
|
138
170
|
* `wait_for_destroy`: (Optional) Wait for all resources to be deleted prior to completing Vagrant destroy -- default false.
|
171
|
+
|
172
|
+
### Optional Azure Parameters
|
173
|
+
* `endpoint`: (Optional) The Azure Management API endpoint -- default `ENV['AZURE_MANAGEMENT_ENDPOINT']` if exists, falls back to <https://management.azure.com>.
|
174
|
+
* `resource_group_name`: (Optional) Name of the resource group to use.
|
175
|
+
* `location`: (Optional) Azure location to build the VM -- defaults to `westus`
|
176
|
+
|
177
|
+
## [Extended Documentation](./docs/)
|
178
|
+
For more information on common scenarios and other features visit the [extended documentation](./docs/).
|
179
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
Vagrant.configure("2") do |config|
|
3
|
+
config.vm.box = "azure"
|
4
|
+
|
5
|
+
# use local ssh key to connect to remote vagrant box
|
6
|
+
config.ssh.private_key_path = "~/.ssh/id_rsa"
|
7
|
+
config.vm.provider :azure do |azure, override|
|
8
|
+
# each of the below values will default to use the env vars named as below if not specified explicitly
|
9
|
+
azure.tenant_id = ENV["AZURE_TENANT_ID"]
|
10
|
+
azure.client_id = ENV["AZURE_CLIENT_ID"]
|
11
|
+
azure.client_secret = ENV["AZURE_CLIENT_SECRET"]
|
12
|
+
azure.subscription_id = ENV["AZURE_SUBSCRIPTION_ID"]
|
13
|
+
azure.location = "westus"
|
14
|
+
end
|
15
|
+
|
16
|
+
config.vm.provision "shell", inline: "echo Hello, World"
|
17
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Basic Linux Machine
|
2
|
+
This scenario will build an Ubuntu 16.04 machine.
|
3
|
+
|
4
|
+
Before you attempt this scenario, ensure you have followed the [getting started docs](../../readme.md#getting-started).
|
5
|
+
|
6
|
+
## Vagrant up
|
7
|
+
- In this directory, run the following
|
8
|
+
```bash
|
9
|
+
vagrant up --provider=azure
|
10
|
+
```
|
11
|
+
|
12
|
+
To clean up, run `vagrant destroy`
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
Vagrant.configure("2") do |config|
|
3
|
+
config.vm.box = "azure"
|
4
|
+
config.vm.provider :azure do |azure, override|
|
5
|
+
|
6
|
+
# each of the below values will default to use the env vars named as below if not specified explicitly
|
7
|
+
azure.tenant_id = ENV["AZURE_TENANT_ID"]
|
8
|
+
azure.client_id = ENV["AZURE_CLIENT_ID"]
|
9
|
+
azure.client_secret = ENV["AZURE_CLIENT_SECRET"]
|
10
|
+
azure.subscription_id = ENV["AZURE_SUBSCRIPTION_ID"]
|
11
|
+
|
12
|
+
azure.vm_image_urn = "MicrosoftSQLServer:SQL2016-WS2012R2:Express:latest"
|
13
|
+
azure.instance_ready_timeout = 600
|
14
|
+
azure.vm_password = "TopSecretPassw0rd"
|
15
|
+
azure.admin_username = "OctoAdmin"
|
16
|
+
override.winrm.transport = :ssl
|
17
|
+
override.winrm.port = 5986
|
18
|
+
override.winrm.ssl_peer_verification = false # must be false if using a self signed cert
|
19
|
+
end
|
20
|
+
end
|