From 3ada41b2e02817175192ac3e44f261ee76993a66 Mon Sep 17 00:00:00 2001
From: Olaf Bohlen <olaf.bohlen@niit.com>
Date: Wed, 19 Aug 2020 17:54:11 +0200
Subject: [PATCH] initial work

---
 tasks/main.yml |  112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 1 deletions(-)

diff --git a/tasks/main.yml b/tasks/main.yml
index 4442303..fd4045c 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,2 +1,112 @@
 ---
-# tasks file for oi-zone
\ No newline at end of file
+# tasks file for oi-zone
+- name: create VNICs
+  dladm_vnic:
+    name: "{{ item['logical'] }}"
+    link: "{{ item['physical'] }}"
+    vlan: "{{ item['vlan'] }}"
+  loop: "{{ oizone['nics'] }}"
+
+- name: create filesystems
+  zfs:
+    name: "{{ item['path'] }}"
+    state: present
+    zfs_extra_properties: "{{ item['zfs_extra_properties'] }}"
+  loop: "{{ oizone['filesystems'] }}"
+  when: zfscreate
+  
+- name: set up VM zones for master
+  solaris_zone:
+    name: "{{ oizone['name'] }}"
+    state: installed
+    path: "{{ oizone['zoneroot'] }}/{{ oizone['name'] }}"
+    config: >
+      set brand={{ oizone['brand'] }};
+      set autoboot={{ oizone['autoboot'] }};
+      {% if oizone['bootargs'] %}
+      set bootargs={{ oizone['bootargs'] }};
+      {% endif %}
+      set ip-type={{ oizone['iptype'] }};
+      {% for nic in oizone['nics'] %}
+      add net;
+      set physical={{ nic['logical'] }};
+      {% if {{ oizone['iptype'] == "shared" %}
+      set address={{ nic['address'] }};
+      {% endif %}
+      end;
+      {% endfor %}
+      {% for disk in vmconfig[outer_item]['disks'] %}
+      add device;
+      set match="/dev/zvol/rdsk/localstripe/vm/{{ outer_item }}d{{ disk['instance'] }}";
+      end;
+      add attr;
+      set name="{{ disk['label'] }}";
+      set type="string";
+      set value="localstripe/vm/{{ outer_item }}d{{ disk['instance'] }}";
+      end;
+      {% endfor %}
+      {% if oizone['cpus'] == "dedicated" %}
+      add dedicated-cpu;
+      set ncpus={{ oizone['ncpus'] }};
+      end;
+      {% endif %}
+      {% if oizone['cpus'] == "capped-cpu" %}
+      add capped-cpu;
+      set ncpus={{ oizone['ncpus'] }};
+      end;
+      {% endif %}
+      {% if oizone['mem'] == "capped-memory" %}
+      add capped-memory;
+      set physical={{ oizone['ram'] }};
+      set swap={{ oizone['swap'] }};
+      set locked={{ oizone['locked'] }};
+      end;
+      {% endif %}
+      {% for dataset in oizone['filesystems'] %}
+      {% if dataset['type'] == "dataset" %}
+      add dataset;
+      set name={{ dataset['path'] }};
+      end;
+      {% endif %}
+      {% if dataset['type'] == "lofs" %}
+      add fs;
+      set special={{ dataset['path'] }};
+      set dir={{ dataset['mountpoint'] }};
+      set type="lofs";
+      {% for option in database['options'] %}
+      add options {{ option }};
+      {% endfor %}
+      end;
+      {% endif %}
+      {% if dataset['type'] == "volume" %}
+      add device;
+      set match=/dev/zvol/rdsk/{{ dataset['path'] }};
+      end;
+      {% endif %}
+      {% endfor %}
+      {% if oizone['brand'] == "kvm" %}
+      add attr;
+      set name="bootorder";
+      set type="string";
+      set value="{{ oizone['kvm']['bootorder'] }}";
+      add attr;
+      set name="vnc";
+      set type="string";
+      set value="{{ oizone['kvm']['vnc'] }}";
+      end;
+      add attr;
+      set name="vcpus";
+      set type="string";
+      set value="{{ oizone['ncpus'] }}";
+      end;
+      add attr;
+      set name="ram";
+      set type="string";
+      set value="{{ oizone['ram'] }}";
+      end;
+      {% endif %}
+
+- name: create a sysding.conf
+  template:
+    dest: "{{ oizone['zoneroot'] }}/{{ oizone['name'] }}/root/etc/sysding.conf"
+    src: sysding.j2

--
Gitblit v1.9.3