-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathautomation_vm_stop_start.tf
69 lines (62 loc) · 3.01 KB
/
automation_vm_stop_start.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
resource "azurerm_automation_schedule" "vm_start" {
name = var.automation_schedule_vm_start_name
resource_group_name = var.resource_group_name
automation_account_name = azurerm_automation_account.main.name
frequency = var.start_job_frequency
interval = var.start_job_interval
timezone = "Etc/UTC"
start_time = var.start_job_start_time
description = var.automation_schedule_vm_start_description
}
resource "azurerm_automation_schedule" "vm_stop" {
name = var.automation_schedule_vm_stop_name
resource_group_name = var.resource_group_name
automation_account_name = azurerm_automation_account.main.name
frequency = var.stop_job_frequency
interval = var.stop_job_interval
timezone = "Etc/UTC"
start_time = var.stop_job_start_time
description = var.automation_schedule_vm_stop_description
}
data "local_file" "simple_azure_vm_start_stop" {
filename = "${path.module}/scripts/SimpleAzureVMStartStop.ps1"
}
resource "azurerm_automation_runbook" "simple_azure_vm_start_stop" {
name = "Simple-Azure-VM-Start-Stop"
location = var.resource_group_location
resource_group_name = var.resource_group_name
automation_account_name = azurerm_automation_account.main.name
log_verbose = "true"
log_progress = "true"
description = "Start or stop virtual machines"
runbook_type = "PowerShell"
content = data.local_file.simple_azure_vm_start_stop.content
}
resource "azurerm_automation_job_schedule" "vm_start" {
count = var.start == true ? 1 : 0
resource_group_name = var.resource_group_name
automation_account_name = azurerm_automation_account.main.name
schedule_name = azurerm_automation_schedule.vm_start.name
runbook_name = azurerm_automation_runbook.simple_azure_vm_start_stop.name
parameters = {
resourcegroupname = var.target_resource_group_name
userassignedidentityclientid = azurerm_user_assigned_identity.automation.client_id
vmname = var.vmname
azuresubscriptionid = var.subscription_id
action = "start"
}
}
resource "azurerm_automation_job_schedule" "vm_stop" {
count = var.stop == true ? 1 : 0
resource_group_name = var.resource_group_name
automation_account_name = azurerm_automation_account.main.name
schedule_name = azurerm_automation_schedule.vm_stop.name
runbook_name = azurerm_automation_runbook.simple_azure_vm_start_stop.name
parameters = {
resourcegroupname = var.target_resource_group_name
userassignedidentityclientid = azurerm_user_assigned_identity.automation.client_id
azuresubscriptionid = var.subscription_id
vmname = var.vmname
action = "stop"
}
}