blob: 9af981f08903079dcf717372818a5786c6d8f5d1 [file] [log] [blame]
Filip Pytloun4a72d792015-10-06 16:28:32 +02001
Aleš Komárek72152852017-04-11 13:48:48 +02002============
3Nova Formula
4============
Filip Pytloun4a72d792015-10-06 16:28:32 +02005
Jakub Pavlikfcf34f82016-05-20 09:35:51 +02006OpenStack Nova provides a cloud computing fabric controller, supporting a wide
7variety of virtualization technologies, including KVM, Xen, LXC, VMware, and
8more. In addition to its native API, it includes compatibility with the
9commonly encountered Amazon EC2 and S3 APIs.
Filip Pytloun4a72d792015-10-06 16:28:32 +020010
Aleš Komárek72152852017-04-11 13:48:48 +020011Sample Pillars
Filip Pytloun4a72d792015-10-06 16:28:32 +020012==============
13
14Controller nodes
15----------------
16
17Nova services on the controller node
18
19.. code-block:: yaml
20
21 nova:
22 controller:
23 version: juno
24 enabled: true
25 security_group: true
Lachlan Evensonb72de502016-01-20 15:34:04 -080026 cpu_allocation_ratio: 8.0
27 ram_allocation_ratio: 1.0
Jiri Konecny9344a372016-03-21 19:25:48 +010028 disk_allocation_ratio: 1.0
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +030029 cross_az_attach: false
Jiri Konecnyb5a80e42016-03-22 11:51:01 +010030 workers: 8
Jakub Pavlik617a8962016-09-04 18:50:06 +020031 report_interval: 60
Filip Pytloun4a72d792015-10-06 16:28:32 +020032 bind:
33 public_address: 10.0.0.122
34 public_name: openstack.domain.com
35 novncproxy_port: 6080
36 database:
37 engine: mysql
38 host: 127.0.0.1
39 port: 3306
40 name: nova
41 user: nova
42 password: pwd
43 identity:
44 engine: keystone
45 host: 127.0.0.1
46 port: 35357
47 user: nova
48 password: pwd
49 tenant: service
50 message_queue:
51 engine: rabbitmq
52 host: 127.0.0.1
53 port: 5672
54 user: openstack
55 password: pwd
56 virtual_host: '/openstack'
57 network:
58 engine: neutron
59 host: 127.0.0.1
60 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020061 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020062 identity:
63 engine: keystone
64 host: 127.0.0.1
65 port: 35357
66 user: neutron
67 password: pwd
68 tenant: service
69 metadata:
70 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010071 audit:
72 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010073 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030074 barbican:
75 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020076
Jiri Konecnye31f2c52016-04-14 17:16:02 +020077
Filip Pytloun4a72d792015-10-06 16:28:32 +020078Nova services from custom package repository
79
80.. code-block:: yaml
81
82 nova:
83 controller:
84 version: juno
85 source:
86 engine: pkg
87 address: http://...
88 ....
89
Jiri Konecnye31f2c52016-04-14 17:16:02 +020090
91Client-side RabbitMQ HA setup
92
93.. code-block:: yaml
94
95 nova:
96 controller:
97 ....
98 message_queue:
99 engine: rabbitmq
100 members:
101 - host: 10.0.16.1
102 - host: 10.0.16.2
103 - host: 10.0.16.3
104 user: openstack
105 password: pwd
106 virtual_host: '/openstack'
107 ....
108
109
Petr Michalecaa23dc02016-11-29 16:30:25 +0100110Enable auditing filter, ie: CADF
111
112.. code-block:: yaml
113
114 nova:
115 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100116 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100117 enabled: true
118 ....
119 filter_factory: 'keystonemiddleware.audit:filter_factory'
120 map_file: '/etc/pycadf/nova_api_audit_map.conf'
121 ....
122
123
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200124Enable CORS parameters
125
126.. code-block:: yaml
127
128 nova:
129 controller:
130 cors:
131 allowed_origin: https:localhost.local,http:localhost.local
132 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
133 allow_methods: GET,PUT,POST,DELETE,PATCH
134 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
135 allow_credentials: True
136 max_age: 86400
137
Dmitry Ukov3562a082017-05-04 00:00:48 +0400138Configuration of policy.json file
139
140.. code-block:: yaml
141
142 nova:
143 controller:
144 ....
145 policy:
146 context_is_admin: 'role:admin or role:administrator'
147 'compute:create': 'rule:admin_or_owner'
148 # Add key without value to remove line from policy.json
149 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200150
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300151Enable Barbican integration
152
153.. code-block:: yaml
154
155 nova:
156 controller:
157 ....
158 barbican:
159 enabled: true
160
Jiri Broulik789179a2018-02-13 16:16:46 +0100161Enable cells update:
162
163**Note:** Useful when upgrading Openstack. To update cells to test sync db agains duplicated production database.
164
165.. code-block:: yaml
166
167 nova:
168 controller:
169 update_cells: true
170
Kirill Bespalov64617172017-07-11 14:43:14 +0300171
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300172Configuring TLS communications
173------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300174
Kirill Bespalov64617172017-07-11 14:43:14 +0300175
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300176**Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
177
178
179
180- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300181
182.. code-block:: yaml
183
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300184 nova:
185 compute:
Kirill Bespalov64617172017-07-11 14:43:14 +0300186 message_queue:
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300187 port: 5671
Kirill Bespalov64617172017-07-11 14:43:14 +0300188 ssl:
189 enabled: True
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300190 (optional) cacert: cert body if the cacert_file does not exists
191 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
192 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300193
194
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300195- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300196
197.. code-block:: yaml
198
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300199 nova:
200 controller:
201 database:
Kirill Bespalov64617172017-07-11 14:43:14 +0300202 ssl:
203 enabled: True
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300204 (optional) cacert: cert body if the cacert_file does not exists
205 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300206
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300207- **Openstack HTTPS API**
208
209
210Set the ``https`` as protocol at ``nova:compute`` and ``nova:controller`` sections :
Kirill Bespalov64617172017-07-11 14:43:14 +0300211
212.. code-block:: yaml
213
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300214 nova:
215 controller :
216 identity:
217 protocol: https
218 (optional) cacert_file: /etc/openstack/proxy.pem
219 network:
220 protocol: https
221 (optional) cacert_file: /etc/openstack/proxy.pem
222 glance:
223 protocol: https
224 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300225
226
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300227.. code-block:: yaml
228
229 nova:
230 compute:
231 identity:
232 protocol: https
233 (optional) cacert_file: /etc/openstack/proxy.pem
234 network:
235 protocol: https
236 (optional) cacert_file: /etc/openstack/proxy.pem
237 image:
238 protocol: https
239 (optional) cacert_file: /etc/openstack/proxy.pem
240 ironic:
241 protocol: https
242 (optional) cacert_file: /etc/openstack/proxy.pem
243
244
245**Note:** the barbican, cinder and placement url endpoints are discovering using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300246
247
Filip Pytloun4a72d792015-10-06 16:28:32 +0200248Compute nodes
249-------------
250
251Nova controller services on compute node
252
253.. code-block:: yaml
254
255 nova:
256 compute:
257 version: juno
258 enabled: true
259 virtualization: kvm
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300260 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300261 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100262 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200263 aggregates:
264 - hosts_with_fc
265 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200266 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200267 resume_guests_state_on_host_boot: False
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300268 my_ip: 10.1.0.16
Filip Pytloun4a72d792015-10-06 16:28:32 +0200269 bind:
270 vnc_address: 172.20.0.100
271 vnc_port: 6080
272 vnc_name: openstack.domain.com
273 vnc_protocol: http
274 database:
275 engine: mysql
276 host: 127.0.0.1
277 port: 3306
278 name: nova
279 user: nova
280 password: pwd
281 identity:
282 engine: keystone
283 host: 127.0.0.1
284 port: 35357
285 user: nova
286 password: pwd
287 tenant: service
288 message_queue:
289 engine: rabbitmq
290 host: 127.0.0.1
291 port: 5672
292 user: openstack
293 password: pwd
294 virtual_host: '/openstack'
295 image:
296 engine: glance
297 host: 127.0.0.1
298 port: 9292
299 network:
300 engine: neutron
301 host: 127.0.0.1
302 port: 9696
303 identity:
304 engine: keystone
305 host: 127.0.0.1
306 port: 35357
307 user: neutron
308 password: pwd
309 tenant: service
310 qemu:
311 max_files: 4096
312 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300313 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200314
kkalynovskyif50f0c02017-12-12 17:52:57 +0200315Group and user to be used for QEMU processes run by the system instance
316
317.. code-block:: yaml
318
319 nova:
320 compute:
321 enabled: true
322 ...
323 qemu:
324 user: nova
325 group: cinder
326 dynamic_ownership: 1
327
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300328Group membership for user nova (upgrade related)
329
330.. code-block:: yaml
331
332 nova:
333 compute:
334 enabled: true
335 ...
336 user:
337 groups:
338 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200339
340Nova services on compute node with OpenContrail
341
342.. code-block:: yaml
343
344 nova:
345 compute:
346 enabled: true
347 ...
348 networking: contrail
349
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200350
Filip Pytloun4a72d792015-10-06 16:28:32 +0200351Nova services on compute node with memcached caching
352
353.. code-block:: yaml
354
355 nova:
356 compute:
357 enabled: true
358 ...
359 cache:
360 engine: memcached
361 members:
362 - host: 127.0.0.1
363 port: 11211
364 - host: 127.0.0.1
365 port: 11211
366
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200367
368Client-side RabbitMQ HA setup
369
370.. code-block:: yaml
371
372 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300373 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200374 ....
375 message_queue:
376 engine: rabbitmq
377 members:
378 - host: 10.0.16.1
379 - host: 10.0.16.2
380 - host: 10.0.16.3
381 user: openstack
382 password: pwd
383 virtual_host: '/openstack'
384 ....
385
maxstack39e6aca2016-05-04 13:50:13 +0000386Nova with ephemeral configured with Ceph
387
388.. code-block:: yaml
389
390 nova:
391 compute:
392 enabled: true
393 ...
394 ceph:
395 ephemeral: yes
396 rbd_pool: nova
397 rbd_user: nova
398 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300399 ....
maxstack39e6aca2016-05-04 13:50:13 +0000400
Kalynovskyi0bc79692017-07-21 16:22:09 +0300401Nova with ephemeral configured with LVM
402
403.. code-block:: yaml
404
405 nova:
406 compute:
407 enabled: true
408 ...
409 lvm:
410 ephemeral: yes
411 images_volume_group: nova_vg
412
413 linux:
414 storage:
415 lvm:
416 nova_vg:
417 name: nova_vg
418 devices:
419 - /dev/sdf
420 - /dev/sdd
421 - /dev/sdg
422 - /dev/sde
423 - /dev/sdc
424 - /dev/sdj
425 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000426
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300427Enable Barbican integration
428
429.. code-block:: yaml
430
431 nova:
432 compute:
433 ....
434 barbican:
435 enabled: true
436
Vasyl Saienko2d591282018-02-05 14:19:02 +0200437Nova metadata custom bindings
438
439.. code-block:: yaml
440
441 nova:
442 controller:
443 enabled: true
444 ...
445 metadata:
446 bind:
447 address: 1.2.3.4
448 port: 8776
449
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300450
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100451Client role
452-----------
453
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300454Nova configured with NFS
455
456.. code-block:: yaml
457
458 nova:
459 compute:
460 instances_path: /mnt/nova/instances
461
462 linux:
463 storage:
464 enabled: true
465 mount:
466 nfs_nova:
467 enabled: true
468 path: ${nova:compute:instances_path}
469 device: 172.31.35.145:/data
470 file_system: nfs
471 opts: rw,vers=3
472
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100473Nova flavors
474
475.. code-block:: yaml
476
477 nova:
478 client:
479 enabled: true
480 server:
481 identity:
482 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100483 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100484 flavor_id: 10
485 ram: 4096
486 disk: 10
487 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100488 flavor2:
489 flavor_id: auto
490 ram: 4096
491 disk: 20
492 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100493 identity1:
494 flavor:
495 ...
496
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100497
498Availability zones
499
500.. code-block:: yaml
501
502 nova:
503 client:
504 enabled: true
505 server:
506 identity:
507 availability_zones:
508 - availability_zone_01
509 - availability_zone_02
510
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200511
512
513Aggregates
514
515.. code-block:: yaml
516
517 nova:
518 client:
519 enabled: true
520 server:
521 identity:
522 aggregates:
523 - aggregate1
524 - aggregate2
525
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300526Upgrade levels
527
528.. code-block:: yaml
529
530 nova:
531 controller:
532 upgrade_levels:
533 compute: juno
534
535 nova:
536 compute:
537 upgrade_levels:
538 compute: juno
539
Petr Jedinýd855ef22017-03-06 22:24:33 +0100540SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100541------
542
543Add PciPassthroughFilter into scheduler filters and NICs on specific compute nodes.
544
545.. code-block:: yaml
546
547 nova:
548 controller:
549 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000550 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100551
552 nova:
553 compute:
554 sriov:
555 nic_one:
556 devname: eth1
557 physical_network: physnet1
558
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100559CPU pinning & Hugepages
560-----------------------
561
562CPU pinning of virtual machine instances to dedicated physical CPU cores.
563Hugepages mount point for libvirt.
564
565.. code-block:: yaml
566
567 nova:
568 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000569 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100570
571 nova:
572 compute:
573 vcpu_pin_set: 2,3,4,5
574 hugepages:
575 mount_points:
576 - path: /mnt/hugepages_1GB
577 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100578
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200579Custom Scheduler filters
580------------------------
581
582If you have a custom filter, that needs to be included in the scheduler, then you can include it like so:
583
584.. code-block:: yaml
585
586 nova:
587 controller:
588 scheduler_custom_filters:
589 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
590
591 # Then add your custom filter on the end (make sure to include all other ones that you need as well)
sandriichenko4fe321d2018-01-22 17:34:06 +0000592 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200593
Michel Nederlofeb566f62017-04-21 15:37:47 +0200594Hardware Trip/Unmap Support
595---------------------------
596
597To enable TRIM support for ephemeral images (thru nova managed images), libvirt has this option.
598
599.. code-block:: yaml
600
601 nova:
602 compute:
603 libvirt:
604 hw_disk_discard: unmap
605
606In order to actually utilize this feature, the following metadata must be set on the image as well, so the SCSI unmap is supported.
607
608.. code-block:: bash
609
610 glance image-update --property hw_scsi_model=virtio-scsi <image>
611 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100612
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200613
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000614Scheduler Host Manager
615----------------------
616
617Specify a custom host manager.
618
Thom Gerdesec00afd2017-04-07 18:06:59 +0000619libvirt CPU mode
620----------------
621
622Allow setting the model of CPU that is exposed to a VM. This allows better
623support live migration between hypervisors with different hardware, among other
624things. Defaults to host-passthrough.
625
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200626
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000627.. code-block:: yaml
628
629 nova:
630 controller:
631 scheduler_host_manager: ironic_host_manager
632
Thom Gerdesec00afd2017-04-07 18:06:59 +0000633 compute:
634 cpu_mode: host-model
635
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200636Nova compute cpu model
637----------------------
638
639.. code-block:: yaml
640
641 nova:
642 compute:
643 cpu_mode: custom
644 libvirt:
645 cpu_model: IvyBridge
646
647
Michel Nederloff7eefb22017-07-10 11:14:33 +0200648Nova compute workarounds
649------------------------
650
651Live snapshotting is disabled by default in nova. To enable this, it needs a manual switch.
652
653From manual:
654
655.. code-block:: yaml
656
657 # When using libvirt 1.2.2 live snapshots fail intermittently under load
658 # (likely related to concurrent libvirt/qemu operations). This config
659 # option provides a mechanism to disable live snapshot, in favor of cold
660 # snapshot, while this is resolved. Cold snapshot causes an instance
661 # outage while the guest is going through the snapshotting process.
662 #
663 # For more information, refer to the bug report:
664 #
665 # https://bugs.launchpad.net/nova/+bug/1334398
666
667Configurable pillar data:
668
669.. code-block:: yaml
670
671 nova:
672 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200673 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200674 disable_libvirt_livesnapshot: False
675
Michel Nederlofb51a5142017-06-27 08:31:35 +0200676Config drive options
677--------------------
678
679See example below on how to configure the options for the config drive.
680
681.. code-block:: yaml
682
683 nova:
684 compute:
685 config_drive:
686 forced: True # Default: True
687 cdrom: True # Default: False
688 format: iso9660 # Default: vfat
689 inject_password: False # Default: False
690
Michel Nederloff81919b2017-11-20 09:37:07 +0100691Number of concurrent live migrates
692----------------------------------
693
694Default is to have no concurrent live migrations (so 1 live-migration at a time).
695
696Excerpt from config options page (https://docs.openstack.org/ocata/config-reference/compute/config-options.html):
697
698 Maximum number of live migrations to run concurrently. This limit is
699 enforced to avoid outbound live migrations overwhelming the host/network
700 and causing failures. It is not recommended that you change this unless
701 you are very sure that doing so is safe and stable in your environment.
702
703 Possible values:
704
705 - 0 : treated as unlimited.
706 - Negative value defaults to 0.
707 - Any positive integer representing maximum number of live migrations to run concurrently.
708
709To configure this option:
710
711.. code-block:: yaml
712
713 nova:
714 compute:
715 max_concurrent_live_migrations: 1 # (1 is the default)
716
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400717Enhanced logging with logging.conf
718----------------------------------
719
720By default logging.conf is disabled.
721
722That is possible to enable per-binary logging.conf with new variables:
723 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
724 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200725 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400726
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200727Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400728
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400729Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400730
731.. code-block:: yaml
732
733 nova:
734 controller:
735 logging:
736 log_appender: true
737 log_handlers:
738 watchedfile:
739 enabled: true
740 fluentd:
741 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200742 ossyslog:
743 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400744
745 compute:
746 logging:
747 log_appender: true
748 log_handlers:
749 watchedfile:
750 enabled: true
751 fluentd:
752 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200753 ossyslog:
754 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000755
Vasyl Saienko7243a952018-05-11 21:26:54 +0300756The log level might be configured per logger by using the
757following pillar structure:
758
759.. code-block:: yaml
760
761 nova:
762 compute:
763 logging:
764 loggers:
765 <logger_name>:
766 level: WARNING
767
768 nova:
769 compute:
770 logging:
771 loggers:
772 <logger_name>:
773 level: WARNING
774
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000775Configure syslog parameters for libvirtd
776----------------------------------------
777
778To configure syslog parameters for libvirtd the below pillar structure should be used with values which are supported
779by libvirtd. These values might be known from the documentation.
780
781 nova:
782 compute:
783 libvirt:
784 logging:
785 level: 3
786 filters: '3:remote 4:event'
787 outputs: '3:syslog:libvirtd'
788 buffer_size: 64
789
790#################################################################
791#
792# Logging controls
793#
794
795# Logging level: 4 errors, 3 warnings, 2 information, 1 debug
796# basically 1 will log everything possible
797#log_level = 3
798
799# Logging filters:
800# A filter allows to select a different logging level for a given category
801# of logs
802# The format for a filter is one of:
803# x:name
804# x:+name
805# where name is a string which is matched against source file name,
806# e.g., "remote", "qemu", or "util/json", the optional "+" prefix
807# tells libvirt to log stack trace for each message matching name,
808# and x is the minimal level where matching messages should be logged:
809# 1: DEBUG
810# 2: INFO
811# 3: WARNING
812# 4: ERROR
813#
814# Multiple filter can be defined in a single @filters, they just need to be
815# separated by spaces.
816#
817# e.g. to only get warning or errors from the remote layer and only errors
818# from the event layer:
819#log_filters="3:remote 4:event"
820
821# Logging outputs:
822# An output is one of the places to save logging information
823# The format for an output can be:
824# x:stderr
825# output goes to stderr
826# x:syslog:name
827# use syslog for the output and use the given name as the ident
828# x:file:file_path
829# output to a file, with the given filepath
830# In all case the x prefix is the minimal level, acting as a filter
831# 1: DEBUG
832# 2: INFO
833# 3: WARNING
834# 4: ERROR
835#
836# Multiple output can be defined, they just need to be separated by spaces.
837# e.g. to log all warnings and errors to syslog under the libvirtd ident:
838#log_outputs="3:syslog:libvirtd"
839#
840
841# Log debug buffer size: default 64
842# The daemon keeps an internal debug log buffer which will be dumped in case
843# of crash or upon receiving a SIGUSR2 signal. This setting allows to override
844# the default buffer size in kilobytes.
845# If value is 0 or less the debug log buffer is deactivated
846#log_buffer_size = 64
847
848To configure logging parameters for qemu the below pillar structure and logging parameters should be used:
849
850 nova:
851 compute:
852 qemu:
853 logging:
854 handler: logd
855 virtlog:
856 enabled: true
857 level: 4
858 filters: '3:remote 3:event'
859 outputs: '4:syslog:virtlogd'
860 max_clients: 512
861 max_size: 2097100
862 max_backups: 2
863
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300864Inject password to VM
865---------------------
866
867By default nova blocks up any inject to VM because 'inject_partition' param is equal '-2'
868If you want to inject password to VM, you will need to define 'inject_partition' greater or equal to '-1' and define 'inject_password' to 'True'
869
870For example:
871
872 nova:
873 compute:
874 inject_partition: '-1'
875 inject_password: True
876
877# Allow the injection of an admin password for instance only at ``create`` and
878# ``rebuild`` process.
879#
880# There is no agent needed within the image to do this. If *libguestfs* is
881# available on the host, it will be used. Otherwise *nbd* is used. The file
882# system of the image will be mounted and the admin password, which is provided
883# in the REST API call will be injected as password for the root user. If no
884# root user is available, the instance won't be launched and an error is thrown.
885# Be aware that the injection is *not* possible when the instance gets launched
886# from a volume.
887#
888# Possible values:
889#
890# * True: Allows the injection.
891# * False (default): Disallows the injection. Any via the REST API provided
892# admin password will be silently ignored.
893#
894# Related options:
895#
896# * ``inject_partition``: That option will decide about the discovery and usage
897# of the file system. It also can disable the injection at all.
898# (boolean value)
899
900You can read more about injecting the administrator password here:
901 https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
902
903
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100904Documentation and Bugs
905======================
906
907To learn how to install and update salt-formulas, consult the documentation
908available online at:
909
910 http://salt-formulas.readthedocs.io/
911
912In the unfortunate event that bugs are discovered, they should be reported to
913the appropriate issue tracker. Use Github issue tracker for specific salt
914formula:
915
916 https://github.com/salt-formulas/salt-formula-nova/issues
917
918For feature requests, bug reports or blueprints affecting entire ecosystem,
919use Launchpad salt-formulas project:
920
921 https://launchpad.net/salt-formulas
922
923You can also join salt-formulas-users team and subscribe to mailing list:
924
925 https://launchpad.net/~salt-formulas-users
926
927Developers wishing to work on the salt-formulas projects should always base
928their work on master branch and submit pull request against specific formula.
929
930 https://github.com/salt-formulas/salt-formula-nova
931
932Any questions or feedback is always welcome so feel free to join our IRC
933channel:
934
935 #salt-formulas @ irc.freenode.net