commit | author | age
|
9cdfbb
|
1 |
--- |
3ada41
|
2 |
# tasks file for oi-zone |
4b5fae
|
3 |
- name: creating zone for you |
OB |
4 |
block: |
e7b69f
|
5 |
# jump into rescue if we want to uninstall |
OB |
6 |
- name: check for uninstall |
|
7 |
fail: |
|
8 |
msg: "uninstall is set to true, deleting resources" |
|
9 |
when: |
|
10 |
- oizone['uninstall'] is defined |
|
11 |
- oizone['uninstall'] |
|
12 |
|
4b5fae
|
13 |
- name: create VNICs with VLAN |
OB |
14 |
dladm_vnic: |
|
15 |
name: "{{ item['logical'] }}" |
|
16 |
link: "{{ item['physical'] }}" |
|
17 |
vlan: "{{ item['vlan'] }}" |
|
18 |
loop: "{{ oizone['nics'] }}" |
|
19 |
when: item['vlan'] is defined |
3ada41
|
20 |
|
4b5fae
|
21 |
- name: create VNICs without VLAN |
OB |
22 |
dladm_vnic: |
|
23 |
name: "{{ item['logical'] }}" |
|
24 |
link: "{{ item['physical'] }}" |
|
25 |
loop: "{{ oizone['nics'] }}" |
|
26 |
when: item['vlan'] is not defined |
|
27 |
|
|
28 |
- name: create filesystems |
|
29 |
zfs: |
|
30 |
name: "{{ item['path'] }}" |
|
31 |
state: present |
|
32 |
extra_zfs_properties: "{{ item['extra_zfs_properties'] }}" |
|
33 |
loop: "{{ oizone['filesystems'] }}" |
|
34 |
when: item['zfscreate'] |
a9c6b8
|
35 |
|
OB |
36 |
- name: is the zone already there? |
|
37 |
shell: zoneadm -z {{ oizone['name'] }} list |
|
38 |
register: zoneout |
|
39 |
changed_when: false |
|
40 |
ignore_errors: true |
|
41 |
|
43c2ae
|
42 |
- name: set up zone |
4b5fae
|
43 |
solaris_zone: |
OB |
44 |
name: "{{ oizone['name'] }}" |
|
45 |
state: installed |
|
46 |
path: "{{ oizone['zoneroot'] }}/{{ oizone['name'] }}" |
eaa3b1
|
47 |
install_options: "{% if oizone['brand'] == 'kvm' %}{% else %}-e pkg:/security/sudo -e runtime/python-27{% endif %}" |
4b5fae
|
48 |
config: > |
OB |
49 |
set brand={{ oizone['brand'] }}; |
|
50 |
set autoboot={{ oizone['autoboot'] }}; |
|
51 |
{% if oizone['bootargs'] is defined and oizone['bootargs'] | length %} |
|
52 |
set bootargs={{ oizone['bootargs'] }}; |
|
53 |
{% endif %} |
|
54 |
set ip-type={{ oizone['iptype'] }}; |
|
55 |
{% for nic in oizone['nics'] %} |
|
56 |
add net; |
|
57 |
set physical={{ nic['logical'] }}; |
|
58 |
{% if oizone['iptype'] == "shared" %} |
|
59 |
set address={{ nic['address'] }}; |
|
60 |
{% endif %} |
|
61 |
end; |
|
62 |
{% endfor %} |
|
63 |
{% if oizone['cpus'] is defined and oizone['cpus'] == "dedicated" %} |
|
64 |
add dedicated-cpu; |
|
65 |
set ncpus={{ oizone['ncpus'] }}; |
|
66 |
end; |
|
67 |
{% endif %} |
|
68 |
{% if oizone['cpus'] is defined and oizone['cpus'] == "capped-cpu" %} |
|
69 |
add capped-cpu; |
|
70 |
set ncpus={{ oizone['ncpus'] }}; |
|
71 |
end; |
|
72 |
{% endif %} |
|
73 |
{% if oizone['mem'] is defined and oizone['mem'] == "capped-memory" %} |
|
74 |
add capped-memory; |
|
75 |
set physical={{ oizone['ram'] }}; |
|
76 |
set swap={{ oizone['swap'] }}; |
|
77 |
set locked={{ oizone['locked'] }}; |
|
78 |
end; |
|
79 |
{% endif %} |
|
80 |
{% for dataset in oizone['filesystems'] %} |
|
81 |
{% if dataset['type'] == "dataset" %} |
|
82 |
add dataset; |
|
83 |
set name={{ dataset['path'] }}; |
|
84 |
end; |
|
85 |
{% endif %} |
|
86 |
{% if dataset['type'] == "lofs" %} |
|
87 |
add fs; |
|
88 |
set special={{ dataset['path'] }}; |
|
89 |
set dir={{ dataset['mountpoint'] }}; |
|
90 |
set type="lofs"; |
eaa3b1
|
91 |
{% for option in dataset['options'] %} |
4b5fae
|
92 |
add options {{ option }}; |
OB |
93 |
{% endfor %} |
|
94 |
end; |
|
95 |
{% endif %} |
|
96 |
{% if dataset['type'] == "volume" %} |
|
97 |
add device; |
|
98 |
set match=/dev/zvol/rdsk/{{ dataset['path'] }}; |
|
99 |
end; |
|
100 |
{% endif %} |
|
101 |
{% endfor %} |
|
102 |
{% if oizone['brand'] == "kvm" %} |
|
103 |
add attr; |
|
104 |
set name="bootorder"; |
|
105 |
set type="string"; |
|
106 |
set value="{{ oizone['kvm']['bootorder'] }}"; |
eaa3b1
|
107 |
end; |
4b5fae
|
108 |
add attr; |
OB |
109 |
set name="vnc"; |
|
110 |
set type="string"; |
|
111 |
set value="{{ oizone['kvm']['vnc'] }}"; |
|
112 |
end; |
|
113 |
add attr; |
|
114 |
set name="vcpus"; |
|
115 |
set type="string"; |
|
116 |
set value="{{ oizone['ncpus'] }}"; |
|
117 |
end; |
|
118 |
add attr; |
|
119 |
set name="ram"; |
|
120 |
set type="string"; |
|
121 |
set value="{{ oizone['ram'] }}"; |
|
122 |
end; |
eaa3b1
|
123 |
{% for dataset in oizone['filesystems'] %} |
OB |
124 |
{% if dataset['kvmlabel'] is defined %} |
|
125 |
add attr; |
|
126 |
set name="{{ dataset['kvmlabel'] }}"; |
|
127 |
set type="string"; |
|
128 |
set value="{{ dataset['path'] }}"; |
|
129 |
end; |
|
130 |
{% endif %} |
|
131 |
{% endfor %} |
4b5fae
|
132 |
{% endif %} |
a9c6b8
|
133 |
when: zoneout.rc == 1 |
eaa3b1
|
134 |
|
4b5fae
|
135 |
- name: create a sysding.conf |
OB |
136 |
template: |
|
137 |
dest: "{{ oizone['zoneroot'] }}/{{ oizone['name'] }}/root/etc/sysding.conf" |
|
138 |
src: sysding.j2 |
|
139 |
mode: 0400 |
eaa3b1
|
140 |
when: oizone['sysding'] is defined |
4b5fae
|
141 |
|
OB |
142 |
- name: boot zone |
|
143 |
solaris_zone: |
|
144 |
name: "{{ oizone['name'] }}" |
|
145 |
state: running |
|
146 |
path: "{{ oizone['zoneroot'] }}/{{ oizone['name'] }}" |
|
147 |
|
|
148 |
- name: add zone to inventory |
|
149 |
local_action: |
|
150 |
module: lineinfile |
|
151 |
path: "{{ inventory_file }}" |
|
152 |
insertbefore: "BOF" |
|
153 |
line: "{{ oizone['name'] }}.{{ oizone['sysding']['ip']['dns']['domain'] }}" |
|
154 |
when: |
|
155 |
- oizone['updateinventory'] is defined |
|
156 |
- oizone['updateinventory'] |
|
157 |
|
|
158 |
rescue: # in case something wents wrong above, we do housekeeping here |
|
159 |
- name: ATTENTION |
|
160 |
debug: |
|
161 |
msg: "failed to install {{ oizone['name'] }}, rolling back" |
|
162 |
- name: delete zone |
|
163 |
solaris_zone: |
|
164 |
name: "{{ oizone['name'] }}" |
|
165 |
state: absent |
|
166 |
path: "{{ oizone['zoneroot'] }}/{{ oizone['name'] }}" |
|
167 |
|
|
168 |
- name: delete VNICs |
|
169 |
dladm_vnic: |
|
170 |
name: "{{ item['logical'] }}" |
|
171 |
link: "{{ item['physical'] }}" |
|
172 |
state: absent |
|
173 |
loop: "{{ oizone['nics'] }}" |
|
174 |
|
|
175 |
- name: delete filesystems |
|
176 |
zfs: |
|
177 |
name: "{{ item['path'] }}" |
|
178 |
state: absent |
|
179 |
extra_zfs_properties: "{{ item['extra_zfs_properties'] }}" |
|
180 |
loop: "{{ oizone['filesystems'] }}" |
|
181 |
when: item['zfscreate'] |
|
182 |
|