blob: 4ff842bd7b66ba7ed9febc505ba4c15f836357b3 [file] [log] [blame]
Your Name8324a3a2017-05-12 10:47:21 +00001{%- from "baremetal_simulator/map.jinja" import baremetal_simulator with context %}
2{%- if baremetal_simulator.enabled %}
3
4simulator_pkgs:
5 pkg.installed:
6 - names: {{ baremetal_simulator.pkgs }}
7
8simulator_pip_pkgs:
9 pip.installed:
10 - names: {{ baremetal_simulator.pip_pkgs }}
11 - require:
12 - pkg: python-pip
13
14libvirt-bin:
15 service.running:
16 - watch:
17 - file: /etc/libvirt/qemu.conf
18
19cgroup:
20 file.append:
21 - name: /etc/libvirt/qemu.conf
Your Name8ba54822017-05-12 12:17:39 +000022 - source: salt://baremetal_simulator/files/qemu-cgroup.conf
Your Name8324a3a2017-05-12 10:47:21 +000023
24brbm:
25 openvswitch_bridge.present
26
Your Namec99bb832017-05-12 12:52:56 +000027brbm-phy_veth_present:
Your Name8324a3a2017-05-12 10:47:21 +000028 cmd.run:
Your Namec99bb832017-05-12 12:52:56 +000029 - name: ip link add ovs-brbm type veth peer name brbm-phy && ip link set dev ovs-brbm up && ip link set dev brbm-phy up
30 - unless: ip link show brbm-phy
31
32brbm-phy_phy_ip:
33 cmd.run:
34 - name: ip addr add {{ baremetal_simulator.brbm_net.ip }}/{{ baremetal_simulator.brbm_net.prefix }} dev brbm-phy
Your Name8324a3a2017-05-12 10:47:21 +000035 - unless: ip addr show dev brbm-phy |grep -q {{ baremetal_simulator.brbm_net.ip }}
Your Namec99bb832017-05-12 12:52:56 +000036 - require:
37 - brbm-phy_veth_present
Your Name8324a3a2017-05-12 10:47:21 +000038
39ovs-brbm_in_ovs:
40 openvswitch_port.present:
41 - name: ovs-brbm
42 - bridge: brbm
43 - require:
Your Namec99bb832017-05-12 12:52:56 +000044 - brbm-phy_veth_present
Your Name8324a3a2017-05-12 10:47:21 +000045
46brbm-to-ovs:
47 cmd.run:
48 - names:
49 - ovs-vsctl --may-exist add-port br-int brint-brbm -- set Interface brint-brbm type=patch options:peer=brbm-brint
50 - ovs-vsctl --may-exist add-port brbm brbm-brint -- set Interface brbm-brint type=patch options:peer=brint-brbm
51 - unless: (ovs-vsctl show |grep -q "Port brint-brbm") && (ovs-vsctl show |grep -q "Port brbm-brint")
52
53default_pool:
54 cmd.run:
55 - name: virsh pool-define-as --name default dir --target /var/lib/libvirt/images && virsh pool-autostart default && virsh pool-start default
56 - unless: virsh pool-info default
57
58/var/log/ironic-bm-logs/:
59 file.directory:
60 - makedirs: true
61
62deploy_ramdisk:
63 file.managed:
64 - name: {{ baremetal_simulator.http_root }}/{{ baremetal_simulator.deploy_ramdisk_file }}
65 - source: {{ baremetal_simulator.deploy_ramdisk_ref }}
66 - skip_verify: true
67
68deploy_kernel:
69 file.managed:
70 - name: {{ baremetal_simulator.http_root }}/{{ baremetal_simulator.deploy_kernel_file }}
71 - source: {{ baremetal_simulator.deploy_kernel_ref }}
72 - skip_verify: true
73
74{%- if baremetal_simulator.cirros_image_ref is defined %}
75
76{{ baremetal_simulator.cirros_image_name }}_file:
77 file.managed:
78 - name: {{ baremetal_simulator.http_root }}/{{ baremetal_simulator.cirros_image_name }}
79 - source: {{ baremetal_simulator.cirros_image_ref }}
80 - skip_verify: true
81
82{%- endif %}
83
84{%- for identity_name, nodes in baremetal_simulator.nodes.iteritems() %}
85 {%- for node in nodes %}
86
87disk_create_node{{ loop.index }}:
88 cmd.run:
89 - name: virsh vol-create-as default {{ node.name }}.qcow2 --capacity {{ node.properties.local_gb }}G --format qcow2
90 - unless: test -f /var/lib/libvirt/images/{{ node.name }}.qcow2
91
92vm_{{ node.name }}_present:
93 cmd.run:
94 - name: virsh undefine {{ node.name }} && sleep 1; virsh define /tmp/{{ node.name }}.xml
95 - onchanges:
96 - file: /tmp/{{ node.name }}.xml
97
98/tmp/{{ node.name }}.xml:
99 file.managed:
100 - source: salt://baremetal_simulator/files/vm.xml
101 - template: jinja
102 - defaults:
103 node: {{ node }}
104
105vbcm_add_{{ node.name }}:
106 cmd.run:
107 - name: vbmc add {{ node.name }} --port {{ node.driver_info.ipmi_port }}
108 - unless: vbmc show {{ node.name }}
109
110vbmc_start_{{ node.name }}:
111 cmd.run:
112 - name: vbmc start {{ node.name }} > /dev/null 2>&1 && sleep 1
113 - unless: vbmc show {{ node.name }} | grep status |grep -q running
114
115node_{{ node.name }}_present:
116 ironicng.node_present:
117 - name: {{ node.name }}
118 - driver: {{ node.driver }}
119 - properties: {{ node.properties }}
120 - profile: {{ identity_name }}
121 - driver_info: {{ node.driver_info }}
122
123{%- for port in node.ports %}
124
125{{ node.name }}_tap_device_{{ loop.index }}:
126 cmd.run:
127 - name: ip tuntap add dev tap-{{ node.name }}i{{ loop.index }} mode tap; ip link set dev tap-{{ node.name }}i{{ loop.index }} up
128 - unless: ip link show tap-{{ node.name }}i{{ loop.index }}
129
130{{ node.name }}_tap{{ loop.index }}_in_ovs:
131 openvswitch_port.present:
132 - name: tap-{{ node.name }}i{{ loop.index }}
133 - bridge: brbm
134
135{{ node.name }}_port{{ loop.index }}_present:
136 ironicng.port_present:
137 - address: {{ port.address }}
138 - node_name: {{ node.name }}
139 - profile: {{ identity_name }}
140{%- endfor %}
141
142{%- endfor %}
143{%- endfor %}
144{%- endif %}