Skip to content

Instantly share code, notes, and snippets.

View sjwaight's full-sized avatar
😎
Happy Days

Simon Waight sjwaight

😎
Happy Days
View GitHub Profile
@sjwaight
sjwaight / create-linux-vm.ps1
Last active August 29, 2015 14:12
Create a new CentOS 7 Linux VM in Azure
# Script assumes you have setup your subscription and
# have a default storage account in West US.
# You should change these to values you want.
$cloudService = "{cloudservice}"
$hostname = "{dockermanagementhost}"
$linuxUser = "{linxuser}"
$linuxPass = "{linxpasswd}"
$location = "West US"
@sjwaight
sjwaight / setup-docker-manager.sh
Last active August 29, 2015 14:12
Bash Script to setup our Docker management host.
#!/bin/bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
# pull down the necessary bits to install node
curl -sL https://rpm.nodesource.com/setup | bash -
"osProfile": {
"computername": "[variables('vmName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
}
# Log into our Account.
Login-AzureRmAccount
# Create a new Resource Group
New-AzureRmResourceGroup -Name 'sw-sec-demo' -Location 'West US'
# Create new Key Vault instance - important to add "EnabledForDeployment"
New-AzureRmKeyVault -VaultName 'ProvisioningVault' -ResourceGroupName 'sw-sec-demo' -Location 'West US' -EnabledForTemplateDeployment
# Convert plaintext to secure string
$adminPass = ConvertTo-SecureString -String 'L0Lcat5^_^!' -AsPlainText -Force
# Add the password as a Secret
Set-AzureKeyVaultSecret -VaultName 'ProvisionVault' -Name 'LocalAdminPass' -SecretValue $adminPass
"adminPassword": {
"reference": {
"keyVault": {
"id": "/subscriptions/{subscription-guid}/resourceGroups/{keyvault-rg}/providers/Microsoft.KeyVault/vaults/ProvisioningVault"
},
"secretName": "LocalAdminPass"
}
}
{
"_comment": "originally from: https://github.com/Azure/azure-quickstart-templates/blob/master/201-web-app-vm-dsc/azuredeploy.json"
"name": "DSCExt1",
"type": "extensions",
"location": "[parameters('vmLocation')]",
"apiVersion": "2015-05-01-preview",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
],
"tags": {
@sjwaight
sjwaight / enforce-tags.json
Last active February 9, 2016 01:45
Shows how you can enforce use of tags on new resources
"if": {
"not": {
"anyOf": [
{
"field": "tags",
"containsKey": "CostCentre"
},
{
"field": "tags",
{
"Name": "Virtual Machine Power Manager",
"IsCustom": true,
"Description": "Can monitor, stop, start and restart v2 ARM virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/powerOff/action",
param(
[Parameter(Mandatory=$true)]
[string] $SecurityGroupName,
[Parameter(Mandatory=$true)]
[string] $RequiredAzureRoleName,
[Parameter(Mandatory=$true)]
[string] $ResourceGroupName
)