blob: e81b87fd168d24bc82c63432df4b5e67fb771e8a [file] [log] [blame]
Your Name902fb6b2017-06-21 15:34:36 +00001{%- from "baremetal_simulator/map.jinja" import baremetal_simulator,bs_nodes with context %}
Your Name8324a3a2017-05-12 10:47:21 +00002{%- 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:
Vasyl Saienko5a853fd2017-07-10 14:40:05 +030012 - simulator_pkgs
Your Name8324a3a2017-05-12 10:47:21 +000013
Oleksii Grudev6dee8a22018-10-04 17:04:53 +030014{# This step is required for vbmc 1.4.0 - it spawns itself during first run and starts listening on default port 50891 #}
15{# For older versions (or during next executions) it will just print list of domains #}
16start_vbmc:
17 module.run:
18 - name: cmd.run_bg
19 - cmd: "/usr/bin/python /usr/local/bin/vbmc list"
20 - require:
21 - pip: simulator_pip_pkgs
22
Vasyl Saienko64792aa2017-08-18 14:45:57 +030023{%- if baremetal_simulator.get('tor', {}).get('enabled', False) %}
24
25openvswitch-vtep-pkg:
26 pkg.installed:
27 - name: openvswitch-vtep
28
29openvswitch-vtep.init:
30 file.managed:
31 - name: /etc/init.d/openvswitch-vtep
32 - source: salt://baremetal_simulator/files/openvswitch/openvswitch-vtep.init
33 - require:
34 - openvswitch-vtep-pkg
35
36openvswitch-vtep.default:
37 file.managed:
38 - name: /etc/default/openvswitch-vtep
39 - source: salt://baremetal_simulator/files/openvswitch/openvswitch-vtep.default
40 - require:
41 - openvswitch-vtep-pkg
42
43openvswitch-vtep:
44 service.running:
45 - watch:
46 - file: /etc/init.d/openvswitch-vtep
47 - file: /etc/default/openvswitch-vtep
48 - require:
49 - openvswitch-vtep.init
50 - openvswitch-vtep.default
51
52br_simulator_ps_present:
53 cmd.run:
54 - name: vtep-ctl add-ps br-simulator
55 - unless: vtep-ctl ps-exists br-simulator
56
57br_simulator_vtep_tunnel:
58 cmd.run:
59 - name: vtep-ctl set Physical_Switch br-simulator tunnel_ips={{ baremetal_simulator.tor.tunnel_ips }}
60 - unless: vtep-ctl show br-baremetal | grep -q "tunnel_ips.*{{ baremetal_simulator.tor.tunnel_ips }}"
61 - require:
62 - br_simulator_ps_present
63
64br_simulator_vtep_management:
65 cmd.run:
66 - name: vtep-ctl set Physical_Switch br-simulator management_ips={{ baremetal_simulator.tor.tunnel_ips }}
67 - unless: vtep-ctl show br-baremetal | grep -q "management_ips.*{{ baremetal_simulator.tor.tunnel_ips }}"
68 - require:
69 - br_simulator_ps_present
70
71br_simulator_vtep:
72 cmd.run:
73 - name: /usr/share/openvswitch/scripts/ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log --pidfile=/var/run/openvswitch/ovs-vtep.pid --detach br-simulator
74 - unless: ps xafu |grep -v grep |grep -q "ovs-vtep .* br-simulator"
75 - require:
76 - br_simulator_vtep_management
77 - br_simulator_vtep_tunnel
78
Your Namebea2f082017-12-04 12:13:28 +000079brphyv_in_ovs:
80 openvswitch_port.present:
81 - name: brphyv
82 - bridge: br-simulator
83
Vasyl Saienko64792aa2017-08-18 14:45:57 +030084{%- endif %}
85
Your Name8324a3a2017-05-12 10:47:21 +000086libvirt-bin:
87 service.running:
88 - watch:
89 - file: /etc/libvirt/qemu.conf
90
91cgroup:
92 file.append:
93 - name: /etc/libvirt/qemu.conf
Your Name8ba54822017-05-12 12:17:39 +000094 - source: salt://baremetal_simulator/files/qemu-cgroup.conf
Your Name8324a3a2017-05-12 10:47:21 +000095
Your Name8324a3a2017-05-12 10:47:21 +000096default_pool:
97 cmd.run:
98 - name: virsh pool-define-as --name default dir --target /var/lib/libvirt/images && virsh pool-autostart default && virsh pool-start default
99 - unless: virsh pool-info default
100
101/var/log/ironic-bm-logs/:
102 file.directory:
103 - makedirs: true
104
Your Name902fb6b2017-06-21 15:34:36 +0000105{%- for identity_name, nodes in bs_nodes.iteritems() %}
Your Name8324a3a2017-05-12 10:47:21 +0000106 {%- for node in nodes %}
107
108disk_create_node{{ loop.index }}:
109 cmd.run:
110 - name: virsh vol-create-as default {{ node.name }}.qcow2 --capacity {{ node.properties.local_gb }}G --format qcow2
111 - unless: test -f /var/lib/libvirt/images/{{ node.name }}.qcow2
112
113vm_{{ node.name }}_present:
114 cmd.run:
115 - name: virsh undefine {{ node.name }} && sleep 1; virsh define /tmp/{{ node.name }}.xml
116 - onchanges:
117 - file: /tmp/{{ node.name }}.xml
118
119/tmp/{{ node.name }}.xml:
120 file.managed:
121 - source: salt://baremetal_simulator/files/vm.xml
122 - template: jinja
123 - defaults:
124 node: {{ node }}
125
126vbcm_add_{{ node.name }}:
127 cmd.run:
128 - name: vbmc add {{ node.name }} --port {{ node.driver_info.ipmi_port }}
Oleksii Grudev6dee8a22018-10-04 17:04:53 +0300129 - unless: "vbmc show {{ node.name }}"
130 - require:
131 - module: start_vbmc
Your Name8324a3a2017-05-12 10:47:21 +0000132
133vbmc_start_{{ node.name }}:
134 cmd.run:
135 - name: vbmc start {{ node.name }} > /dev/null 2>&1 && sleep 1
Oleksii Grudev6dee8a22018-10-04 17:04:53 +0300136 - unless: "vbmc show {{ node.name }} | grep status |grep -q running"
137 - require:
138 - cmd: vbcm_add_{{ node.name }}
Your Name8324a3a2017-05-12 10:47:21 +0000139
Your Name8324a3a2017-05-12 10:47:21 +0000140{%- for port in node.ports %}
141
142{{ node.name }}_tap_device_{{ loop.index }}:
143 cmd.run:
144 - name: ip tuntap add dev tap-{{ node.name }}i{{ loop.index }} mode tap; ip link set dev tap-{{ node.name }}i{{ loop.index }} up
145 - unless: ip link show tap-{{ node.name }}i{{ loop.index }}
146
147{{ node.name }}_tap{{ loop.index }}_in_ovs:
148 openvswitch_port.present:
149 - name: tap-{{ node.name }}i{{ loop.index }}
Your Name8c482f22017-06-21 09:45:57 +0000150 - bridge: br-simulator
Your Name8324a3a2017-05-12 10:47:21 +0000151
Your Name8324a3a2017-05-12 10:47:21 +0000152{%- endfor %}
153
154{%- endfor %}
155{%- endfor %}
156{%- endif %}