blob: e688575c836bd8ce20266ffdfb7b609af83ca114 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
##############################################################################
# Copyright (c) 2017 Mirantis Inc. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{% from "opendaylight/map.jinja" import server with context %}
{% from "linux/map.jinja" import system with context %}
{%- if server.enabled %}
# NOTE: starting with Salt 2018.3, key_text might be used instead
opendaylight_repo_key:
# Launchpad PPA for ODL Team
# pub 4096R/44C05248 2017-01-26
cmd.run:
- name: |
cat <<-EOF | sudo apt-key add -
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBFiKaBEBEADpCtIj8utf/bUfN6iQ+sxGiOPLnXVYoYyKifHDazD4o1Jevfiu
EpcDIx9EdnhrCpvKTU+jaw2B7K3pkdqbjbzjZY+2CDENSQXfRHuuI/nWDaYI0stx
Tf/evip3cxdutnZNAklzkxppHP+4UZm9HAd7uZsEyff4H9DIsHzZIA4Z++Hx2+lt
w9K0iCKh2k6Pon/VVo8Bir3JuKIIdLRAuHmyniYlHDswQnu+1nQHE0F/oboD0Q9Z
hOvXAr1L7LWu0hkLV7BqmeI0SPcRA3b5MU3dfaTK8MaPAo8anQTpCyYUnoIBqX8h
y324T/dvpFKq2/X3RL+wOSYTA8TLgyhH0fhdIKZg3G8m9kxuAHZYHIHnDtvgJ5yd
72tNY+w8UIX8U2ark/WdkAMZr3O0AuTDlvHcasxO5+puAu8jh0EgtqItqrvKwiF7
dmlHVW41Rt+su2fmsUkk4Z0IhWrn3PdrSWAcH2eL6vjuqx6CccpjsjyiSQ90dUox
EoMpY+viX59aF0kU4BLt76mQO6YZtCpicLxFGCu97v1mNn+FWjhBOIF08pVsbNlq
oMl2j0N8NKZxJvkkmsA/i//ch5FsjzvUy3xajlSzq9ruWS4SlWq2Vzdx/acvF7Oa
ABA11wIjzLc9vmhzQNiRa53fJQwi+w/Or9LtH2msKCbcPVHoZ5OT4t6S8QARAQAB
tBpMYXVuY2hwYWQgUFBBIGZvciBPREwgVGVhbYkCOAQTAQIAIgUCWIpoEQIbAwYL
CQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQe4qho0TAUkgAmg//XY/RqU4WcT+p
13oDc3+Dp4aL+rwaNz0o56i0z0cYPxd8GPicCuS8d/di07GnQiBcZ5DZgegnnaYm
OUF+phxk4q+jYO/t2GHQlYSf/QyUv7OimidLOHN1FiahmcGobliwih70o6ZcMT84
ggSu8jBzA/HLFBIkgStKD/staR5zJ2HfK298yVhiffyrPA+I3nPe7pvTaGa2e8AP
BYs5zB5n27upSZIokXFvqlmS4HEKDmPcY061wgmg1cNY1Y+mIuGjxY1Igbi6kAe0
yaLN2AN4c2ImhpwOcuazKTe/q2ZhoPTpYvuzmogwau8LBjRBhVS6fkTpSBPEkcwn
f/QYmmVLygmpMDHuHapyH8iaUoksq7gd64iBRDJQN7giQSjkTVvcGBqoKG8lbUMV
MDT4FGuYYsObWUg7kmHlNq9nIVlAxmxv8ZTg9+8xy3f53aId/51m+gW9LGRAT94T
ZIWrF9cBvsPWoHgHkV1At/fPprOvNXqeQiJ7UzC3ikDNCu2AjPEbA4sb019RNgtj
jUI6g6RZdzbeKVpptxILCtT3yKbfKj8AfrfaRzS0yMhVudgLolIUA4S6g46p0Cgy
gITO49wxxBu6UAOsAG3psDRlsZmmrT4AH09Yt2RzmY0FBWValqpoPagheQqeU+2W
FKnV9Lw1SKMtWZbYMvIlB0rwts3k9lE=
=xkZ9
-----END PGP PUBLIC KEY BLOCK-----
EOF
opendaylight_repo:
pkgrepo.managed:
# NOTE(armband): PPA handling behind proxy broken, define it explicitly
# https://github.com/saltstack/salt/pull/45224
# - ppa: {{ server.repo }}
- human_name: opendaylight-ppa
- name: deb http://ppa.launchpad.net/odl-team/{{ server.version }}/ubuntu xenial main
- file: /etc/apt/sources.list.d/odl-team-ubuntu-{{ server.version }}-xenial.list
{%- if grains['saltversioninfo'] < [2017, 7] %}
service.mask:
module.run:
- m_name: opendaylight
{%- else %}
opendaylight_service_mask:
service.masked:
- name: opendaylight
{%- endif %}
- prereq:
- pkg: opendaylight
{%- if server.cluster_enabled %}
configure_cluster:
cmd.run:
- name: /opt/opendaylight/bin/configure-cluster-ipdetect.sh {{ server.seed_nodes_list }}
- require:
- pkg: opendaylight
{%- endif %}
opendaylight:
pkg.installed:
- require:
- pkgrepo: opendaylight_repo
service.running:
- enable: true
{%- if grains['saltversioninfo'] >= [2017, 7] %}
- unmask: true
{%- endif %}
- watch:
- file: /opt/opendaylight/etc/jetty.xml
- file: /opt/opendaylight/bin/setenv
- ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
- ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg
- ini: /opt/opendaylight/etc/org.opendaylight.openflowplugin.cfg
/opt/opendaylight/etc/jetty.xml:
file.managed:
- source: salt://opendaylight/files/jetty.xml
- template: jinja
- user: odl
- group: odl
/opt/opendaylight/bin/setenv:
file.managed:
- source: salt://opendaylight/files/setenv.shell
- mode: 0755
- use:
- file: /opt/opendaylight/etc/jetty.xml
{% set features %}
{%- for f in server.karaf_features.itervalues() -%}
{{ f | join(',') }}{%- if not loop.last %},{%- endif %}
{%- endfor %}
{% endset %}
/opt/opendaylight/etc/org.apache.karaf.features.cfg:
ini.options_present:
- sections:
featuresBoot: {{ features }}
/opt/opendaylight/etc/org.ops4j.pax.web.cfg:
ini.options_present:
- sections:
org.ops4j.pax.web.listening.addresses: {{ server.odl_bind_ip }}
org.osgi.service.http.port: {{ server.odl_rest_port }}
/opt/opendaylight/etc/org.opendaylight.openflowplugin.cfg_present:
file.managed:
- name: /opt/opendaylight/etc/org.opendaylight.openflowplugin.cfg
- require_in:
- ini: /opt/opendaylight/etc/org.opendaylight.openflowplugin.cfg
/opt/opendaylight/etc/org.opendaylight.openflowplugin.cfg:
ini.options_present:
- sections:
is-statistics-polling-on: {{ server.stats_polling_enabled }}
{%- if server.get('router_enabled', false) %}
/opt/opendaylight/etc/custom.properties:
ini.options_present:
- sections:
ovsdb.l3.fwd.enabled: 'yes'
ovsdb.of.version: 1.3
- require:
- pkg: opendaylight
- watch_in:
- service: opendaylight
{%- endif %}
{%- if server.netvirt_nat_mode is defined %}
/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-natservice-config.xml:
file.managed:
- source: salt://opendaylight/files/netvirt-natservice-config.xml
- makedirs: true
- watch_in:
- service: opendaylight
- use:
- file: /opt/opendaylight/etc/jetty.xml
{%- endif %}
{%- if server.dhcp.enabled %}
/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-dhcpservice-config.xml:
file.managed:
- source: salt://opendaylight/files/netvirt-dhcpservice-config.xml
- makedirs: true
- watch_in:
- service: opendaylight
- use:
- file: /opt/opendaylight/etc/jetty.xml
{%- endif %}
{%- if grains['cpuarch'] == 'aarch64' %}
opendaylight-leveldbjni:
pkg.installed
{%- endif %}
{%- endif %}
|