Kolla-ansible documentation guide<\/a> to learn more about the global options used above. The configuration is also highly commented. Go through the comments for each option to learn what it is about a specific option.<\/p>\n\n\n\nCopy Kolla-ansible deployment multinode inventory to the current working directory. Since we are deploying multinode OpenStack using Kolla-ansible, copy the multinode ansible inventory file. This is the file which contains all the information needed to determine what services run on which nodes<\/p>\n\n\n\n
cp $HOME\/kolla-ansible\/share\/kolla-ansible\/ansible\/inventory\/multinode .<\/pre>\n\n\n\nThis is how our multinode inventory is configured.<\/p>\n\n\n\n
cat multinode<\/code><\/pre>\n\n\n\n# These initial groups are the only groups required to be modified. The\n# additional groups are for more control of the environment.\n[control]\ncontroller01 ansible_connection=local neutron_external_interface=vethext\n\n# The above can also be specified as follows:\n#control[01:03] ansible_user=kolla\n\n# The network nodes are where your l3-agent and loadbalancers will run\n# This can be the same as a host in the control group\n[network]\ncontroller01 ansible_connection=local neutron_external_interface=vethext network_interface=br0\n\n[compute]\ncompute01 neutron_external_interface=enp2s0 network_interface=enp1s0\n\n\n[monitoring]\ncontroller01 ansible_connection=local neutron_external_interface=vethext\n\n# When compute nodes and control nodes use different interfaces,\n# you need to comment out \"api_interface\" and other interfaces from the globals.yml\n# and specify like below:\n#compute01 neutron_external_interface=eth0 api_interface=em1 tunnel_interface=em1\n\n[storage]\nstorage01 neutron_external_interface=enp10s0 network_interface=enp1s0\n\n[deployment]\nlocalhost ansible_connection=local\n\n[baremetal:children]\ncontrol\nnetwork\ncompute\nstorage\nmonitoring\n\n[tls-backend:children]\ncontrol\n\n# You can explicitly specify which hosts run each project by updating the\n# groups in the sections below. Common services are grouped together.\n\n[common:children]\ncontrol\nnetwork\ncompute\nstorage\nmonitoring\n\n[collectd:children]\ncompute\n\n[grafana:children]\nmonitoring\n\n[etcd:children]\ncontrol\n\n[influxdb:children]\nmonitoring\n\n[prometheus:children]\nmonitoring\n\n[kafka:children]\ncontrol\n\n[telegraf:children]\ncompute\ncontrol\nmonitoring\nnetwork\nstorage\n\n[hacluster:children]\ncontrol\n\n[hacluster-remote:children]\ncompute\n\n[loadbalancer:children]\nnetwork\n\n[mariadb:children]\ncontrol\n\n[rabbitmq:children]\ncontrol\n\n[outward-rabbitmq:children]\ncontrol\n\n[monasca-agent:children]\ncompute\ncontrol\nmonitoring\nnetwork\nstorage\n\n[monasca:children]\nmonitoring\n\n[storm:children]\nmonitoring\n\n[keystone:children]\ncontrol\n\n[glance:children]\ncontrol\n\n[nova:children]\ncontrol\n\n[neutron:children]\nnetwork\n\n[openvswitch:children]\nnetwork\ncompute\nmanila-share\n\n[cinder:children]\ncontrol\n\n[cloudkitty:children]\ncontrol\n\n[freezer:children]\ncontrol\n\n[memcached:children]\ncontrol\n\n[horizon:children]\ncontrol\n\n[swift:children]\ncontrol\n\n[barbican:children]\ncontrol\n\n[heat:children]\ncontrol\n\n[murano:children]\ncontrol\n\n[solum:children]\ncontrol\n\n[ironic:children]\ncontrol\n\n[magnum:children]\ncontrol\n\n[sahara:children]\ncontrol\n\n[mistral:children]\ncontrol\n\n[manila:children]\ncontrol\n\n[ceilometer:children]\ncontrol\n\n[aodh:children]\ncontrol\n\n[cyborg:children]\ncontrol\ncompute\n\n[gnocchi:children]\ncontrol\n\n[tacker:children]\ncontrol\n\n[trove:children]\ncontrol\n\n[senlin:children]\ncontrol\n\n[vitrage:children]\ncontrol\n\n[watcher:children]\ncontrol\n\n[octavia:children]\ncontrol\n\n[designate:children]\ncontrol\n\n[placement:children]\ncontrol\n\n[bifrost:children]\ndeployment\n\n[zookeeper:children]\ncontrol\n\n[zun:children]\ncontrol\n\n[skyline:children]\ncontrol\n\n[redis:children]\ncontrol\n\n[blazar:children]\ncontrol\n\n[venus:children]\nmonitoring\n\n# Additional control implemented here. These groups allow you to control which\n# services run on which hosts at a per-service level.\n#\n# Word of caution: Some services are required to run on the same host to\n# function appropriately. For example, neutron-metadata-agent must run on the\n# same host as the l3-agent and (depending on configuration) the dhcp-agent.\n\n# Common\n[cron:children]\ncommon\n\n[fluentd:children]\ncommon\n\n[kolla-logs:children]\ncommon\n\n[kolla-toolbox:children]\ncommon\n\n[opensearch:children]\ncontrol\n\n# Opensearch dashboards\n[opensearch-dashboards:children]\nopensearch\n\n# Glance\n[glance-api:children]\nglance\n\n# Nova\n[nova-api:children]\nnova\n\n[nova-conductor:children]\nnova\n\n[nova-super-conductor:children]\nnova\n\n[nova-novncproxy:children]\nnova\n\n[nova-scheduler:children]\nnova\n\n[nova-spicehtml5proxy:children]\nnova\n\n[nova-compute-ironic:children]\nnova\n\n[nova-serialproxy:children]\nnova\n\n# Neutron\n[neutron-server:children]\ncontrol\n\n[neutron-dhcp-agent:children]\nneutron\n\n[neutron-l3-agent:children]\nneutron\n\n[neutron-metadata-agent:children]\nneutron\n\n[neutron-ovn-metadata-agent:children]\ncompute\nnetwork\n\n[neutron-bgp-dragent:children]\nneutron\n\n[neutron-infoblox-ipam-agent:children]\nneutron\n\n[neutron-metering-agent:children]\nneutron\n\n[ironic-neutron-agent:children]\nneutron\n\n[neutron-ovn-agent:children]\ncompute\nnetwork\n\n# Cinder\n[cinder-api:children]\ncinder\n\n[cinder-backup:children]\nstorage\n\n[cinder-scheduler:children]\ncinder\n\n[cinder-volume:children]\nstorage\n\n# Cloudkitty\n[cloudkitty-api:children]\ncloudkitty\n\n[cloudkitty-processor:children]\ncloudkitty\n\n# Freezer\n[freezer-api:children]\nfreezer\n\n[freezer-scheduler:children]\nfreezer\n\n# iSCSI\n[iscsid:children]\ncompute\nstorage\nironic\n\n[tgtd:children]\nstorage\n\n# Manila\n[manila-api:children]\nmanila\n\n[manila-scheduler:children]\nmanila\n\n[manila-share:children]\nnetwork\n\n[manila-data:children]\nmanila\n\n# Swift\n[swift-proxy-server:children]\nswift\n\n[swift-account-server:children]\nstorage\n\n[swift-container-server:children]\nstorage\n\n[swift-object-server:children]\nstorage\n\n# Barbican\n[barbican-api:children]\nbarbican\n\n[barbican-keystone-listener:children]\nbarbican\n\n[barbican-worker:children]\nbarbican\n\n# Heat\n[heat-api:children]\nheat\n\n[heat-api-cfn:children]\nheat\n\n[heat-engine:children]\nheat\n\n# Murano\n[murano-api:children]\nmurano\n\n[murano-engine:children]\nmurano\n\n# Monasca\n[monasca-agent-collector:children]\nmonasca-agent\n\n[monasca-agent-forwarder:children]\nmonasca-agent\n\n[monasca-agent-statsd:children]\nmonasca-agent\n\n[monasca-api:children]\nmonasca\n\n[monasca-log-persister:children]\nmonasca\n\n[monasca-log-metrics:children]\nmonasca\n\n[monasca-thresh:children]\nmonasca\n\n[monasca-notification:children]\nmonasca\n\n[monasca-persister:children]\nmonasca\n\n# Storm\n[storm-worker:children]\nstorm\n\n[storm-nimbus:children]\nstorm\n\n# Ironic\n[ironic-api:children]\nironic\n\n[ironic-conductor:children]\nironic\n\n[ironic-inspector:children]\nironic\n\n[ironic-tftp:children]\nironic\n\n[ironic-http:children]\nironic\n\n# Magnum\n[magnum-api:children]\nmagnum\n\n[magnum-conductor:children]\nmagnum\n\n# Sahara\n[sahara-api:children]\nsahara\n\n[sahara-engine:children]\nsahara\n\n# Solum\n[solum-api:children]\nsolum\n\n[solum-worker:children]\nsolum\n\n[solum-deployer:children]\nsolum\n\n[solum-conductor:children]\nsolum\n\n[solum-application-deployment:children]\nsolum\n\n[solum-image-builder:children]\nsolum\n\n# Mistral\n[mistral-api:children]\nmistral\n\n[mistral-executor:children]\nmistral\n\n[mistral-engine:children]\nmistral\n\n[mistral-event-engine:children]\nmistral\n\n# Ceilometer\n[ceilometer-central:children]\nceilometer\n\n[ceilometer-notification:children]\nceilometer\n\n[ceilometer-compute:children]\ncompute\n\n[ceilometer-ipmi:children]\ncompute\n\n# Aodh\n[aodh-api:children]\naodh\n\n[aodh-evaluator:children]\naodh\n\n[aodh-listener:children]\naodh\n\n[aodh-notifier:children]\naodh\n\n# Cyborg\n[cyborg-api:children]\ncyborg\n\n[cyborg-agent:children]\ncompute\n\n[cyborg-conductor:children]\ncyborg\n\n# Gnocchi\n[gnocchi-api:children]\ngnocchi\n\n[gnocchi-statsd:children]\ngnocchi\n\n[gnocchi-metricd:children]\ngnocchi\n\n# Trove\n[trove-api:children]\ntrove\n\n[trove-conductor:children]\ntrove\n\n[trove-taskmanager:children]\ntrove\n\n# Multipathd\n[multipathd:children]\ncompute\nstorage\n\n# Watcher\n[watcher-api:children]\nwatcher\n\n[watcher-engine:children]\nwatcher\n\n[watcher-applier:children]\nwatcher\n\n# Senlin\n[senlin-api:children]\nsenlin\n\n[senlin-conductor:children]\nsenlin\n\n[senlin-engine:children]\nsenlin\n\n[senlin-health-manager:children]\nsenlin\n\n# Octavia\n[octavia-api:children]\noctavia\n\n[octavia-driver-agent:children]\noctavia\n\n[octavia-health-manager:children]\noctavia\n\n[octavia-housekeeping:children]\noctavia\n\n[octavia-worker:children]\noctavia\n\n# Designate\n[designate-api:children]\ndesignate\n\n[designate-central:children]\ndesignate\n\n[designate-producer:children]\ndesignate\n\n[designate-mdns:children]\nnetwork\n\n[designate-worker:children]\ndesignate\n\n[designate-sink:children]\ndesignate\n\n[designate-backend-bind9:children]\ndesignate\n\n# Placement\n[placement-api:children]\nplacement\n\n# Zun\n[zun-api:children]\nzun\n\n[zun-wsproxy:children]\nzun\n\n[zun-compute:children]\ncompute\n\n[zun-cni-daemon:children]\ncompute\n\n# Skyline\n[skyline-apiserver:children]\nskyline\n\n[skyline-console:children]\nskyline\n\n# Tacker\n[tacker-server:children]\ntacker\n\n[tacker-conductor:children]\ntacker\n\n# Vitrage\n[vitrage-api:children]\nvitrage\n\n[vitrage-notifier:children]\nvitrage\n\n[vitrage-graph:children]\nvitrage\n\n[vitrage-ml:children]\nvitrage\n\n[vitrage-persistor:children]\nvitrage\n\n# Blazar\n[blazar-api:children]\nblazar\n\n[blazar-manager:children]\nblazar\n\n# Prometheus\n[prometheus-node-exporter:children]\nmonitoring\ncontrol\ncompute\nnetwork\nstorage\n\n[prometheus-mysqld-exporter:children]\nmariadb\n\n[prometheus-haproxy-exporter:children]\nloadbalancer\n\n[prometheus-memcached-exporter:children]\nmemcached\n\n[prometheus-cadvisor:children]\nmonitoring\ncontrol\ncompute\nnetwork\nstorage\n\n[prometheus-alertmanager:children]\nmonitoring\n\n[prometheus-openstack-exporter:children]\nmonitoring\n\n[prometheus-elasticsearch-exporter:children]\nopensearch\n\n[prometheus-blackbox-exporter:children]\nmonitoring\n\n[prometheus-libvirt-exporter:children]\ncompute\n\n[prometheus-msteams:children]\nprometheus-alertmanager\n\n[masakari-api:children]\ncontrol\n\n[masakari-engine:children]\ncontrol\n\n[masakari-hostmonitor:children]\ncontrol\n\n[masakari-instancemonitor:children]\ncompute\n\n[ovn-controller:children]\novn-controller-compute\novn-controller-network\n\n[ovn-controller-compute:children]\ncompute\n\n[ovn-controller-network:children]\nnetwork\n\n[ovn-database:children]\ncontrol\n\n[ovn-northd:children]\novn-database\n\n[ovn-nb-db:children]\novn-database\n\n[ovn-sb-db:children]\novn-database\n\n[venus-api:children]\nvenus\n\n[venus-manager:children]\nvenus\n<\/code><\/pre>\n\n\n\nIn the storage node, we also created a block storage LVM volume group called cinder-volumes<\/strong>;<\/p>\n\n\n\nSee below command output executed on storage node;<\/p>\n\n\n\n
sudo vgs<\/pre>\n\n\n\n VG #PV #LV #SN Attr VSize VFree \n cinder-volumes 1 0 0 wz--n- <100.00g <100.00g<\/strong>\n glance 1 1 0 wz--n- <100.00g 0 \n ubuntu-vg 1 1 0 wz--n- <101.00g 0\n<\/code><\/pre>\n\n\n\nSee also that if different nodes have different interface names for network and management, define respective interface on each node as defined in the inventory file above.<\/p>\n\n\n\n
Generate Kolla Passwords<\/h4>\n\n\n\n
Kolla