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