[Unit] Description=Openstack nova-compute Container After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 Restart=always ExecStartPre=-/usr/bin/docker kill %n ExecStartPre=-/usr/bin/docker rm %n ExecStart=/usr/bin/docker run --name %n \ -e "GLANCE_CONTROLLER_HOST={{ hostvars[groups['glance-controller'][0]]['listen_ip'] | default(hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address']) }}" \ -e "KEYSTONE_HOST={{ keystone_external_fqdn | default(hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address']) }}" \ -e "METADATA_SECRET={{ secrets['METADATA_SECRET'] }}" \ -e "MEMCACHED_HOST={{ hostvars[groups['memcached'][0]]['listen_ip'] | default(hostvars[groups['memcached'][0]]['ansible_default_ipv4']['address']) }}" \ -e "MY_IP={{ listen_ip | default(ansible_default_ipv4.address) }}" \ -e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['listen_ip'] | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }}" \ -e "MYSQL_ROOT_PASSWORD={{ secrets['MYSQL_ROOT_PASSWORD'] }}" \ -e "NEUTRON_CONTROLLER_HOST={{ hostvars[groups['neutron-controller'][0]]['listen_ip'] | default(hostvars[groups['neutron-controller'][0]]['ansible_default_ipv4']['address']) }}" \ -e "NEUTRON_PASSWORD={{ secrets['NEUTRON_PASSWORD'] }}" \ -e "NEUTRON_USER=neutron" \ -e "NOVA_COMPUTE_USER=nova_compute" \ -e "NOVA_CONTROLLER_HOST={{ hostvars[groups['nova-controller'][0]]['listen_ip'] | default(hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address']) }}" \ -e "NOVA_PASSWORD={{ secrets['NOVA_PASSWORD'] }}" \ -e "NOVA_PASSWORD={{ secrets['NOVA_PASSWORD'] }}" \ -e "NOVA_PLACEMENT_PASSWORD={{ secrets['NOVA_PLACEMENT_PASSWORD'] }}" \ -e "NOVA_PLACEMENT_USER=placement" \ -e "NOVA_USER=nova" \ -e "OVERLAY_IP={{ overlay_ip }}" \ -e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}" \ -e "PHYSICAL_INTERFACE_MAPPINGS={{ physical_interface_mappings }}" \ -e "RABBIT_HOST={{ hostvars[groups['rabbitmq'][0]]['listen_ip'] | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}" \ -e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" \ -e "RABBIT_USER=openstack" \ -e "USE_CEPH={{ use_ceph }}" \ -e "MON_INITIAL_MEMBERS={{ ceph_mon_initial_members }}" \ -e "MON_HOST={{ ceph_mon_host }}" \ -e "PUBLIC_NETWORK={{ ceph_public_network }}" \ -e "OSD_POOL_DEFAULT_SIZE={{ ceph_osd_pool_default_size }}" \ -e "RBD_SECRET_UUID={{ secrets['NOVA_RBD_SECRET_UUID'] }}" \ --add-host=keystone:{{ hostvars[groups['keystone'][0]]['listen_ip'] | default(hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address']) }} \ --add-host=mariadb:{{ hostvars[groups['databases'][0]]['listen_ip'] | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }} \ --privileged \ -v /dev:/dev \ -v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \ -v /var/lib/nova/instances:/var/lib/nova/instances \ -v /var/run/netns:/var/run/netns \ -v /lib/modules:/lib/modules \ -v /etc/machine-id:/etc/machine-id \ -v /etc/ceph:/etc/ceph \ -v /etc/hosts:/etc/hosts \ --network host \ {{ docker_image }} /etc/run.sh [Install] WantedBy=multi-user.target