summaryrefslogtreecommitdiff
path: root/openstack/usr/lib/systemd/system
diff options
context:
space:
mode:
Diffstat (limited to 'openstack/usr/lib/systemd/system')
-rw-r--r--openstack/usr/lib/systemd/system/apache-httpd.service16
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-api.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-backup.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-scheduler.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-volume.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-glance-api.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-glance-registry.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-glance-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openstack-horizon-setup.service10
-rw-r--r--openstack/usr/lib/systemd/system/openstack-keystone-setup.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-keystone.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-network-setup.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service16
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service17
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-server.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-setup.service10
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-api.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-cert.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-compute.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-conductor.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-consoleauth.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-novncproxy.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-scheduler.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-serialproxy.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch-db-server.service11
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch-setup.service10
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch.service12
-rw-r--r--openstack/usr/lib/systemd/system/postgres-server.service24
-rw-r--r--openstack/usr/lib/systemd/system/rabbitmq-server.service16
34 files changed, 437 insertions, 0 deletions
diff --git a/openstack/usr/lib/systemd/system/apache-httpd.service b/openstack/usr/lib/systemd/system/apache-httpd.service
new file mode 100644
index 00000000..adc84f40
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/apache-httpd.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Apache Web Server
+After=network-online.target remote-fs.target nss-lookup.target
+Wants=network-online.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/httpd.pid
+ExecStart=/usr/sbin/apachectl start
+ExecStop=/usr/sbin/apachectl graceful-stop
+ExecReload=/usr/sbin/apachectl graceful
+PrivateTmp=true
+LimitNOFILE=infinity
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-api.service b/openstack/usr/lib/systemd/system/openstack-cinder-api.service
new file mode 100644
index 00000000..c863f3f5
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-api.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Volume Service (code-named Cinder) API server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=cinder
+ExecStart=/usr/bin/cinder-api --config-file /etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-api.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-backup.service b/openstack/usr/lib/systemd/system/openstack-cinder-backup.service
new file mode 100644
index 00000000..2f489228
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-backup.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Cinder backup server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=cinder
+ExecStart=/usr/bin/cinder-backup --config-file /etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-backup.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-scheduler.service b/openstack/usr/lib/systemd/system/openstack-cinder-scheduler.service
new file mode 100644
index 00000000..025f1f3c
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-scheduler.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Cinder scheduler server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=cinder
+ExecStart=/usr/bin/cinder-scheduler --config-file /etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-scheduler.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-setup.service b/openstack/usr/lib/systemd/system/openstack-cinder-setup.service
new file mode 100644
index 00000000..bac80b6b
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-setup.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Run cinder-setup Ansible scripts
+After=local-fs.target openstack-keystone-setup.service postgres-server.service
+
+[Service]
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/cinder.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-volume.service b/openstack/usr/lib/systemd/system/openstack-cinder-volume.service
new file mode 100644
index 00000000..4a8da9c3
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-volume.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Cinder volume server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=cinder
+ExecStart=/usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-volume.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-glance-api.service b/openstack/usr/lib/systemd/system/openstack-glance-api.service
new file mode 100644
index 00000000..e1387118
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-glance-api.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenStack Image Service (code-named Glance) API server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=glance
+ExecStart=/usr/bin/glance-api --config-file /etc/glance/glance-api.conf
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack/usr/lib/systemd/system/openstack-glance-registry.service b/openstack/usr/lib/systemd/system/openstack-glance-registry.service
new file mode 100644
index 00000000..f3134352
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-glance-registry.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenStack Image Service (code-named Glance) Registry server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=glance
+ExecStart=/usr/bin/glance-registry --config-file /etc/glance/glance-registry.conf
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack/usr/lib/systemd/system/openstack-glance-setup.service b/openstack/usr/lib/systemd/system/openstack-glance-setup.service
new file mode 100644
index 00000000..c00c520c
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-glance-setup.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Run glance-setup Ansible scripts
+After=local-fs.target openstack-keystone-setup.service postgres-server.service
+
+[Service]
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/glance.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-horizon-setup.service b/openstack/usr/lib/systemd/system/openstack-horizon-setup.service
new file mode 100644
index 00000000..9ec3197a
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-horizon-setup.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Run horizon-setup Ansible scripts
+After=local-fs.target
+Before=apache-httpd.service
+
+[Service]
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/horizon.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-keystone-setup.service b/openstack/usr/lib/systemd/system/openstack-keystone-setup.service
new file mode 100644
index 00000000..9ea04c1d
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-keystone-setup.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Run keystone-setup Ansible scripts
+After=local-fs.target postgres-server.service
+ConditionPathExists=/etc/openstack/keystone.conf
+
+[Service]
+# Oneshot, since others setup have to wait until this service finishes
+Type=oneshot
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/keystone.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-keystone.service b/openstack/usr/lib/systemd/system/openstack-keystone.service
new file mode 100644
index 00000000..0aa9e1ef
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-keystone.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenStack Identity Service (code-named Keystone)
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=notify
+Restart=always
+User=keystone
+ExecStart=/usr/bin/keystone-all --config-file /etc/keystone/keystone.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-network-setup.service b/openstack/usr/lib/systemd/system/openstack-network-setup.service
new file mode 100644
index 00000000..90c9ecf7
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-network-setup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Run Ansible scripts to configure internal network for OpenStack
+After=openvswitch.service openvswitch-setup.service
+Before=systemd-networkd.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/network.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service
new file mode 100644
index 00000000..34a682b6
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Neutron DHCP Agent
+After=network-online.target openstack-neutron-ovs-cleanup.service
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=neutron
+ExecStart=/usr/bin/neutron-dhcp-agent \
+ --config-file=/etc/neutron/neutron.conf \
+ --config-file=/etc/neutron/dhcp_agent.ini \
+ --log-file=/var/log/neutron/dhcp-agent.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service
new file mode 100644
index 00000000..bd514aa1
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Neutron Layer 3 Agent
+After=network-online.target openstack-neutron-ovs-cleanup.service
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=neutron
+ExecStart=/usr/bin/neutron-l3-agent \
+ --config-file=/etc/neutron/neutron.conf \
+ --config-file=/etc/neutron/l3_agent.ini \
+ --config-file=/etc/neutron/fwaas_driver.ini \
+ --log-file=/var/log/neutron/l3-agent.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service
new file mode 100644
index 00000000..22bbf675
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Neutron Metadata Plugin Agent
+After=network-online.target openstack-neutron-setup.service
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=neutron
+ExecStart=/usr/bin/neutron-metadata-agent \
+ --config-file=/etc/neutron/neutron.conf \
+ --config-file=/etc/neutron/metadata_agent.ini \
+ --log-file=/var/log/neutron/metadata-agent.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service b/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service
new file mode 100644
index 00000000..544531ed
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Neutron OVS cleanup
+After=network-online.target openstack-neutron-setup.service openvswitch.service
+Wants=network-online.target
+Before=openstack-neutron-plugin-openvswitch-agent.service
+ConditionFileIsExecutable=/usr/bin/neutron-ovs-cleanup
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+User=neutron
+ExecStart=/usr/bin/neutron-ovs-cleanup \
+ --log-file /var/log/neutron/ovs-cleanup.log \
+ --config-file /etc/neutron/neutron.conf --verbose
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service
new file mode 100644
index 00000000..894c3a45
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Neutron OpenvSwitch Plugin Agent
+After=network-online.target openstack-neutron-setup.service
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=neutron
+ExecStart=/usr/bin/neutron-openvswitch-agent \
+ --config-file=/etc/neutron/neutron.conf \
+ --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini \
+ --log-file=/var/log/neutron/openvswitch-agent.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-server.service b/openstack/usr/lib/systemd/system/openstack-neutron-server.service
new file mode 100644
index 00000000..05dfb7aa
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-server.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Neutron Api Server
+Wants=openstack-neutron-network-configuration-one-node.service network-online.target
+After=network-online.target openstack-neutron-setup.service openstack-neutron-network-configuration-one-node.service
+
+[Service]
+Type=simple
+User=neutron
+ExecStart=/usr/bin/neutron-server \
+ --config-file=/etc/neutron/neutron.conf \
+ --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini \
+ --log-file=/var/log/neutron/neutron-server.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-setup.service b/openstack/usr/lib/systemd/system/openstack-neutron-setup.service
new file mode 100644
index 00000000..99213b6a
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-setup.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Run neutron-setup Ansible scripts
+After=network-online.target openstack-keystone-setup.service postgres-server.service
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/neutron.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-api.service b/openstack/usr/lib/systemd/system/openstack-nova-api.service
new file mode 100644
index 00000000..8ee9cefa
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-api.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Compute Service (code-named Nova) API server
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-api --config-file /etc/nova/nova.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-cert.service b/openstack/usr/lib/systemd/system/openstack-nova-cert.service
new file mode 100644
index 00000000..b2a2e1cc
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-cert.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Nova Cert
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-cert --config-file /etc/nova/nova.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-compute.service b/openstack/usr/lib/systemd/system/openstack-nova-compute.service
new file mode 100644
index 00000000..95a3a872
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-compute.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenStack Compute Service (code-named Nova) compute server
+After=syslog.target network-online.target libvirtd.service
+Wants=network-online.target
+Requires=libvirtd.service
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-compute --config-file /etc/nova/nova.conf --config-file /etc/nova/nova-compute.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-conductor.service b/openstack/usr/lib/systemd/system/openstack-nova-conductor.service
new file mode 100644
index 00000000..1d2ece69
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-conductor.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Database-access support for Compute nodes (nova-conductor)
+After=syslog.target network-online.target libvirtd.service
+Wants=network-online.target
+Requires=libvirtd.service
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-conductor --config-file /etc/nova/nova.conf --logfile /var/log/nova/conductor.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-consoleauth.service b/openstack/usr/lib/systemd/system/openstack-nova-consoleauth.service
new file mode 100644
index 00000000..66442d11
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-consoleauth.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Openstack Console Auth (nova-consoleauth)
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-consoleauth --config-file /etc/nova/nova.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-novncproxy.service b/openstack/usr/lib/systemd/system/openstack-nova-novncproxy.service
new file mode 100644
index 00000000..597f357a
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-novncproxy.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Nova NoVNC proxy
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-novncproxy --config-file /etc/nova/nova.conf --web /usr/share/novnc
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-scheduler.service b/openstack/usr/lib/systemd/system/openstack-nova-scheduler.service
new file mode 100644
index 00000000..d317b624
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-scheduler.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Nova Scheduler
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-scheduler --config-file /etc/nova/nova.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-serialproxy.service b/openstack/usr/lib/systemd/system/openstack-nova-serialproxy.service
new file mode 100644
index 00000000..2d95c1fa
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-serialproxy.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Nova Serial Proxy
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-serialproxy --config-file /etc/nova/nova.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-nova-setup.service b/openstack/usr/lib/systemd/system/openstack-nova-setup.service
new file mode 100644
index 00000000..a4ad6ae7
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-setup.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Run nova-setup Ansible scripts
+After=local-fs.target libvirtd.service openstack-keystone-setup.service postgres-server.service
+
+[Service]
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/nova.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openvswitch-db-server.service b/openstack/usr/lib/systemd/system/openvswitch-db-server.service
new file mode 100644
index 00000000..7ea7942a
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch-db-server.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Open vSwitch Database Server Daemon
+After=local-fs.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ovsdb-server --remote=punix:/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --pidfile --detach
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack/usr/lib/systemd/system/openvswitch-setup.service b/openstack/usr/lib/systemd/system/openvswitch-setup.service
new file mode 100644
index 00000000..6fdd7db6
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch-setup.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Run openvswitch-setup Ansible scripts
+After=local-fs.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/ansible-playbook -v -i /usr/share/openstack/hosts /usr/share/openstack/openvswitch.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openvswitch.service b/openstack/usr/lib/systemd/system/openvswitch.service
new file mode 100644
index 00000000..6f1a93a8
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Open vSwitch Daemon
+Wants=network-pre.target
+After=openvswitch-initialize-db.service
+Before=network-pre.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ovs-vswitchd --pidfile --detach
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/postgres-server.service b/openstack/usr/lib/systemd/system/postgres-server.service
new file mode 100644
index 00000000..d824fc7b
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/postgres-server.service
@@ -0,0 +1,24 @@
+[Unit]
+Description=PostgreSQL database server
+
+[Service]
+Type=forking
+TimeoutSec=120
+User=postgres
+Group=postgres
+
+Environment=PGROOT=/var/lib/pgsql
+
+SyslogIdentifier=postgres
+PIDFile=/var/lib/pgsql/data/postmaster.pid
+
+ExecStart= /usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120
+ExecReload=/usr/bin/pg_ctl -s -D ${PGROOT}/data reload
+ExecStop= /usr/bin/pg_ctl -s -D ${PGROOT}/data stop -m fast
+
+# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in
+# killing Postgres, so adjust it downward
+OOMScoreAdjust=-200
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/rabbitmq-server.service b/openstack/usr/lib/systemd/system/rabbitmq-server.service
new file mode 100644
index 00000000..f161b9d0
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/rabbitmq-server.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=RabbitMQ broker
+After=syslog.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=notify
+User=rabbitmq
+Group=rabbitmq
+Environment=HOME=/var/lib/rabbitmq
+WorkingDirectory=/var/lib/rabbitmq
+ExecStart=/usr/sbin/rabbitmq-server
+ExecStop=/usr/sbin/rabbitmqctl stop
+
+[Install]
+WantedBy=multi-user.target