-
Notifications
You must be signed in to change notification settings - Fork 2
/
ansible.cue
74 lines (70 loc) · 1.39 KB
/
ansible.cue
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
70
71
72
73
74
package cuefordevops
import "list"
#AnsibleConfig: {
hostsConfig: {
name: string
ipv4Addresses: [...string]
}
installPlaybookConfig: {
playbook: [
{
hosts: "\(hostsConfig.name)"
tasks: [
{
name: "Perform installation."
"ansible.builtin.include_role": {
name: "\(hostsConfig.name)"
}
tags: [
"install",
]
},
]
}]
}
provisionPlaybookConfig: {
playbook: [{
hosts: "\(hostsConfig.name)"
tasks: [
{
name: "Test the plan."
"community.general.terraform": {
project_path: "./"
state: "planned"
force_init: true
}
tags: [
"provision",
]
},
{
name: "Apply the plan."
"community.general.terraform": {
project_path: "./"
state: "present"
}
tags: [
"provision",
]
},
{
name: "Configure instances."
"ansible.builtin.include_role": {
name: "\(hostsConfig.name)"
}
tags: [
"configure",
]
},
]
}]
}
hosts: [{all: children: (hostsConfig.name): hosts: {
for i in list.Range(0, len(hostsConfig.ipv4Addresses), 1) {
"\(hostsConfig.name)-\(i)": ansible_host: hostsConfig.ipv4Addresses[i]
}
}}]
provisionPlaybooks: (hostsConfig.name): provisionPlaybookConfig.playbook
installPlaybooks: (hostsConfig.name): installPlaybookConfig.playbook
}
ansibleConfig: [string]: {}