blob: 315534d7e5a59e84c0f74ab3242f00304bb68fc7 [file] [log] [blame]
Ales Komarekef982692016-02-21 14:56:07 +01001
2==================
smolaon552ba582016-02-23 20:35:42 +01003Metal as a Service
Ales Komarekef982692016-02-21 14:56:07 +01004==================
5
6Service maas description
7
8Sample pillars
9==============
10
11Single maas service
12
13.. code-block:: yaml
14
15 maas:
16 server:
17 enabled: true
18
Ondrej Smola9af2b082016-08-25 17:37:29 +020019Single MAAS region service [single UI/API]
20
21.. code-block:: yaml
22
Damian Szelugaa8248102017-03-16 08:48:51 +010023 maas:
Damian Szeluga336ff2e2017-03-30 11:19:34 +020024 salt_master_ip: 192.168.0.10
Damian Szelugaa8248102017-03-16 08:48:51 +010025 region:
Jiri Broulik0df14bc2017-08-07 10:01:55 +020026 upstream_proxy:
27 address: 10.0.0.1
28 port: 8080
Ondrej Smola3ffb6312017-09-22 17:13:10 +020029 user: username #OPTIONAL
30 password: password #OPTIONAL
Damian Szelugaa8248102017-03-16 08:48:51 +010031 theme: mirantis
32 bind:
33 host: 192.168.0.10:5240
34 port: 5240
35 admin:
36 username: exampleuser
37 password: examplepassword
38 email: email@example.com
39 database:
40 engine: null
41 host: localhost
42 name: maasdb
43 password: qwqwqw
44 username: maas
45 enabled: true
46 user: mirantis
47 token: "89EgtWkX45ddjMYpuL:SqVjxFG87Dr6kVf4Wp:5WLfbUgmm9XQtJxm3V2LUUy7bpCmqmnk"
48 fabrics:
49 test-fabric:
50 description: Test fabric
51 subnets:
52 subnet1:
53 fabric: test-fabric
54 cidr: 2.2.3.0/24
55 gateway_ip: 2.2.3.2
56 iprange:
57 start: 2.2.3.20
58 end: 2.2.3.250
59 dhcp_snippets:
60 test-snippet:
61 value: option bootfile-name "tftp://192.168.0.10/snippet";
62 description: Test snippet
63 enabled: true
64 subnet: subnet1
65 boot_resources:
66 bootscript1:
67 title: bootscript
68 architecture: amd64/generic
69 filetype: tgz
70 content: /srv/salt/reclass/nodes/path_to_file
71 package_repositories:
72 Saltstack:
73 url: http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3/
74 distributions:
75 - trusty
76 components:
77 - main
Damian Szelugaa8248102017-03-16 08:48:51 +010078 arches: amd64
79 key: "-----BEGIN PGP PUBLIC KEY BLOCK-----
80 Version: GnuPG v2
Pavel Cizinsky5a6e2722016-08-31 15:58:13 +020081
Damian Szelugaa8248102017-03-16 08:48:51 +010082 mQENBFOpvpgBCADkP656H41i8fpplEEB8IeLhugyC2rTEwwSclb8tQNYtUiGdna9
83 m38kb0OS2DDrEdtdQb2hWCnswxaAkUunb2qq18vd3dBvlnI+C4/xu5ksZZkRj+fW
84 tArNR18V+2jkwcG26m8AxIrT+m4M6/bgnSfHTBtT5adNfVcTHqiT1JtCbQcXmwVw
85 WbqS6v/LhcsBE//SHne4uBCK/GHxZHhQ5jz5h+3vWeV4gvxS3Xu6v1IlIpLDwUts
86 kT1DumfynYnnZmWTGc6SYyIFXTPJLtnoWDb9OBdWgZxXfHEcBsKGha+bXO+m2tHA
87 gNneN9i5f8oNxo5njrL8jkCckOpNpng18BKXABEBAAG0MlNhbHRTdGFjayBQYWNr
88 YWdpbmcgVGVhbSA8cGFja2FnaW5nQHNhbHRzdGFjay5jb20+iQE4BBMBAgAiBQJT
89 qb6YAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAOCKFJ3le/vhkqB/0Q
90 WzELZf4d87WApzolLG+zpsJKtt/ueXL1W1KA7JILhXB1uyvVORt8uA9FjmE083o1
91 yE66wCya7V8hjNn2lkLXboOUd1UTErlRg1GYbIt++VPscTxHxwpjDGxDB1/fiX2o
92 nK5SEpuj4IeIPJVE/uLNAwZyfX8DArLVJ5h8lknwiHlQLGlnOu9ulEAejwAKt9CU
93 4oYTszYM4xrbtjB/fR+mPnYh2fBoQO4d/NQiejIEyd9IEEMd/03AJQBuMux62tjA
94 /NwvQ9eqNgLw9NisFNHRWtP4jhAOsshv1WW+zPzu3ozoO+lLHixUIz7fqRk38q8Q
95 9oNR31KvrkSNrFbA3D89uQENBFOpvpgBCADJ79iH10AfAfpTBEQwa6vzUI3Eltqb
96 9aZ0xbZV8V/8pnuU7rqM7Z+nJgldibFk4gFG2bHCG1C5aEH/FmcOMvTKDhJSFQUx
97 uhgxttMArXm2c22OSy1hpsnVG68G32Nag/QFEJ++3hNnbyGZpHnPiYgej3FrerQJ
98 zv456wIsxRDMvJ1NZQB3twoCqwapC6FJE2hukSdWB5yCYpWlZJXBKzlYz/gwD/Fr
99 GL578WrLhKw3UvnJmlpqQaDKwmV2s7MsoZogC6wkHE92kGPG2GmoRD3ALjmCvN1E
100 PsIsQGnwpcXsRpYVCoW7e2nW4wUf7IkFZ94yOCmUq6WreWI4NggRcFC5ABEBAAGJ
101 AR8EGAECAAkFAlOpvpgCGwwACgkQDgihSd5Xv74/NggA08kEdBkiWWwJZUZEy7cK
102 WWcgjnRuOHd4rPeT+vQbOWGu6x4bxuVf9aTiYkf7ZjVF2lPn97EXOEGFWPZeZbH4
103 vdRFH9jMtP+rrLt6+3c9j0M8SIJYwBL1+CNpEC/BuHj/Ra/cmnG5ZNhYebm76h5f
104 T9iPW9fFww36FzFka4VPlvA4oB7ebBtquFg3sdQNU/MmTVV4jPFWXxh4oRDDR+8N
105 1bcPnbB11b5ary99F/mqr7RgQ+YFF0uKRE3SKa7a+6cIuHEZ7Za+zhPaQlzAOZlx
106 fuBmScum8uQTrEF5+Um5zkwC7EXTdH1co/+/V/fpOtxIg4XO4kcugZefVm5ERfVS
107 MA==
108 =dtMN
109 -----END PGP PUBLIC KEY BLOCK-----"
110 enabled: true
111 machines:
112 machine1:
113 interfaces:
Maciej Relewicz37b12a22017-04-25 15:23:16 +0200114 mac: "11:22:33:44:55:66"
Damian Szelugaa8248102017-03-16 08:48:51 +0100115 power_parameters:
116 power_type: ipmi
117 power_address: '192.168.10.10'
118 power_user: bmc_user
119 power_password: bmc_password
Ondrej Smola455003c2017-06-01 22:53:39 +0200120 #Optional (for legacy HW)
121 power_driver: LAN
Maciej Relewicz37b12a22017-04-25 15:23:16 +0200122 distro_series: xenial
123 hwe_kernel: hwe-16.04
Damian Szelugaa8248102017-03-16 08:48:51 +0100124 devices:
125 machine1-ipmi:
126 interface:
127 ip_address: 192.168.10.10
128 subnet: cidr:192.168.10.0/24
129 mac: '66:55:44:33:22:11'
Damian Szeluga336ff2e2017-03-30 11:19:34 +0200130 commissioning_scripts:
131 00-maas-06-create-raid.sh: /srv/salt/reclass/scripts/commisioning_script.sh
132 maas_config:
133 domain: mydomain.local
134 http_proxy: http://192.168.0.10:3142
135 commissioning_distro_series: xenial
136 default_distro_series: xenial
137 default_osystem: 'ubuntu'
138 default_storage_layout: lvm
139 disk_erase_with_secure_erase: true
140 dnssec_validation: 'no'
141 enable_third_party_drivers: true
142 maas_name: cfg01
143 network_discovery: 'enabled'
144 active_discovery_interval: '600'
145 ntp_external_only: true
146 ntp_servers: 10.10.11.23 10.10.11.24
147 upstream_dns: 192.168.12.13
148 enable_http_proxy: true
149 default_min_hwe_kernel: ''
150 sshprefs:
151 - 'ssh-rsa ASDFOSADFISdfasdfasjdklfjasdJFASDJfASdf923@AAAAB3NzaC1yc2EAAAADAQABAAACAQCv8ISOESGgYUOycYw1SAs/SfHTqtSCTephD/7o2+mEZO53xN98sChiFscFaPA2ZSMoZbJ6MQLKcWKMK2OaTdNSAvn4UE4T6VP0ccdumHDNRwO3f6LptvXr9NR5Wocz2KAgptk+uaA8ytM0Aj9NT0UlfjAXkKnoKyNq6yG+lx4HpwolVaFSlqRXf/iuHpCrspv/u1NW7ReMElJoXv+0zZ7Ow0ZylISdYkaqbV8QatCb17v1+xX03xLsZigfugce/8CDsibSYvJv+Hli5CCBsKgfFqLy4R5vGxiLSVzG/asdjalskjdlkasjdasd/asdajsdkjalaksdjfasd/fa/sdf/asd/fas/dfsadf blah@blah'
Ondrej Smola9af2b082016-08-25 17:37:29 +0200152
153
azvyagintsev7605a662017-11-03 19:05:04 +0200154
Richard Felklce118a22017-09-13 11:09:12 +0200155Usage of local repos
156
157.. code-block:: yaml
azvyagintsev7605a662017-11-03 19:05:04 +0200158
Richard Felklce118a22017-09-13 11:09:12 +0200159 maas:
160 cluster:
161 enabled: true
162 region:
163 port: 80
164 host: localhost
165 saltstack_repo_key: |
166 -----BEGIN PGP PUBLIC KEY BLOCK-----
167 Version: GnuPG v2
168
169 mQENBFOpvpgBCADkP656H41i8fpplEEB8IeLhugyC2rTEwwSclb8tQNYtUiGdna9
170 m38kb0OS2DDrEdtdQb2hWCnswxaAkUunb2qq18vd3dBvlnI+C4/xu5ksZZkRj+fW
171 tArNR18V+2jkwcG26m8AxIrT+m4M6/bgnSfHTBtT5adNfVcTHqiT1JtCbQcXmwVw
172 WbqS6v/LhcsBE//SHne4uBCK/GHxZHhQ5jz5h+3vWeV4gvxS3Xu6v1IlIpLDwUts
173 kT1DumfynYnnZmWTGc6SYyIFXTPJLtnoWDb9OBdWgZxXfHEcBsKGha+bXO+m2tHA
174 gNneN9i5f8oNxo5njrL8jkCckOpNpng18BKXABEBAAG0MlNhbHRTdGFjayBQYWNr
175 YWdpbmcgVGVhbSA8cGFja2FnaW5nQHNhbHRzdGFjay5jb20+iQE4BBMBAgAiBQJT
176 qb6YAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAOCKFJ3le/vhkqB/0Q
177 WzELZf4d87WApzolLG+zpsJKtt/ueXL1W1KA7JILhXB1uyvVORt8uA9FjmE083o1
178 yE66wCya7V8hjNn2lkLXboOUd1UTErlRg1GYbIt++VPscTxHxwpjDGxDB1/fiX2o
179 nK5SEpuj4IeIPJVE/uLNAwZyfX8DArLVJ5h8lknwiHlQLGlnOu9ulEAejwAKt9CU
180 4oYTszYM4xrbtjB/fR+mPnYh2fBoQO4d/NQiejIEyd9IEEMd/03AJQBuMux62tjA
181 /NwvQ9eqNgLw9NisFNHRWtP4jhAOsshv1WW+zPzu3ozoO+lLHixUIz7fqRk38q8Q
182 9oNR31KvrkSNrFbA3D89uQENBFOpvpgBCADJ79iH10AfAfpTBEQwa6vzUI3Eltqb
183 9aZ0xbZV8V/8pnuU7rqM7Z+nJgldibFk4gFG2bHCG1C5aEH/FmcOMvTKDhJSFQUx
184 uhgxttMArXm2c22OSy1hpsnVG68G32Nag/QFEJ++3hNnbyGZpHnPiYgej3FrerQJ
185 zv456wIsxRDMvJ1NZQB3twoCqwapC6FJE2hukSdWB5yCYpWlZJXBKzlYz/gwD/Fr
186 GL578WrLhKw3UvnJmlpqQaDKwmV2s7MsoZogC6wkHE92kGPG2GmoRD3ALjmCvN1E
187 PsIsQGnwpcXsRpYVCoW7e2nW4wUf7IkFZ94yOCmUq6WreWI4NggRcFC5ABEBAAGJ
188 AR8EGAECAAkFAlOpvpgCGwwACgkQDgihSd5Xv74/NggA08kEdBkiWWwJZUZEy7cK
189 WWcgjnRuOHd4rPeT+vQbOWGu6x4bxuVf9aTiYkf7ZjVF2lPn97EXOEGFWPZeZbH4
190 vdRFH9jMtP+rrLt6+3c9j0M8SIJYwBL1+CNpEC/BuHj/Ra/cmnG5ZNhYebm76h5f
191 T9iPW9fFww36FzFka4VPlvA4oB7ebBtquFg3sdQNU/MmTVV4jPFWXxh4oRDDR+8N
192 1bcPnbB11b5ary99F/mqr7RgQ+YFF0uKRE3SKa7a+6cIuHEZ7Za+zhPaQlzAOZlx
193 fuBmScum8uQTrEF5+Um5zkwC7EXTdH1co/+/V/fpOtxIg4XO4kcugZefVm5ERfVS
194 MA==
195 =dtMN
196 -----END PGP PUBLIC KEY BLOCK-----
197 saltstack_repo_xenial: "http://${_param:local_repo_url}/ubuntu-xenial stable salt"
198 saltstack_repo_trusty: "http://${_param:local_repo_url}/ubuntu-trusty stable salt"
199
Ondrej Smola9af2b082016-08-25 17:37:29 +0200200Single MAAS cluster service [multiple racks]
201
202.. code-block:: yaml
203
204 maas:
205 cluster:
206 enabled: true
Jakub Pavlikf43512b2016-08-30 10:25:42 +0200207 role: master/slave
Ondrej Smola9af2b082016-08-25 17:37:29 +0200208
azvyagintsev7605a662017-11-03 19:05:04 +0200209.. code-block:: yaml
210
211 maas:
212 cluster:
213 enabled: true
214 role: master/slave
215
216Module function's example:
217==========================
218
219* Wait for status of selected machine's:
220
221.. code-block:: bash
222
223 > cat maas/machines/wait_for_machines_ready.sls
224
225 ...
226
227 wait_for_machines_ready:
228 module.run:
229 - name: maas.wait_for_machine_status
230 - kwargs:
231 machines:
232 - kvm01
233 - kvm02
234 timeout: 1200 # in seconds
235 req_status: "Ready"
236 - require:
237 - cmd: maas_login_admin
238 ...
239
240If module run w/\o any extra paremeters - `wait_for_machines_ready` will wait for defined in salt machines. In those case, will be usefull to skip some machines:
241
242.. code-block:: bash
243
244 > cat maas/machines/wait_for_machines_deployed.sls
245
246 ...
247
248 wait_for_machines_ready:
249 module.run:
250 - name: maas.wait_for_machine_status
251 - kwargs:
252 timeout: 1200 # in seconds
253 req_status: "deployed"
254 ignore_machines:
255 - kvm01 # in case it's broken or whatever
256 - require:
257 - cmd: maas_login_admin
258 ...
259
260List of avaibled `req_status` defined in global variable:
261
262
Ales Komarekef982692016-02-21 14:56:07 +0100263Read more
264=========
265
Roald Nefsc86d84a2017-10-12 21:19:50 +0200266* https://maas.io/
Filip Pytlounc07d2352017-02-02 13:02:03 +0100267
268Documentation and Bugs
269======================
270
271To learn how to install and update salt-formulas, consult the documentation
272available online at:
273
274 http://salt-formulas.readthedocs.io/
275
276In the unfortunate event that bugs are discovered, they should be reported to
277the appropriate issue tracker. Use Github issue tracker for specific salt
278formula:
279
280 https://github.com/salt-formulas/salt-formula-maas/issues
281
282For feature requests, bug reports or blueprints affecting entire ecosystem,
283use Launchpad salt-formulas project:
284
285 https://launchpad.net/salt-formulas
286
287You can also join salt-formulas-users team and subscribe to mailing list:
288
289 https://launchpad.net/~salt-formulas-users
290
291Developers wishing to work on the salt-formulas projects should always base
292their work on master branch and submit pull request against specific formula.
293
294 https://github.com/salt-formulas/salt-formula-maas
295
296Any questions or feedback is always welcome so feel free to join our IRC
297channel:
298
299 #salt-formulas @ irc.freenode.net