summaryrefslogtreecommitdiff
path: root/openstack/usr/lib/systemd
diff options
context:
space:
mode:
Diffstat (limited to 'openstack/usr/lib/systemd')
-rw-r--r--openstack/usr/lib/systemd/system/apache-httpd.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-api.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-backup.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-scheduler.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openstack-cinder-volume.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-glance-api.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-glance-registry.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-glance-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openstack-horizon-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openstack-keystone-setup.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-keystone.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service14
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service14
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-network-configuration-one-node.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service14
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service14
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-server.service15
-rw-r--r--openstack/usr/lib/systemd/system/openstack-neutron-setup.service13
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-api.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-cert.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-compute.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-conductor.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-consoleauth.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-novncproxy.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-scheduler.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-nova-setup.service9
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch-create-links-one-node.service14
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch-db-server.service11
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch-initialize-db.service10
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch-setup.service11
-rw-r--r--openstack/usr/lib/systemd/system/openvswitch.service10
-rw-r--r--openstack/usr/lib/systemd/system/postgres-server.service24
-rw-r--r--openstack/usr/lib/systemd/system/rabbitmq-server.service15
35 files changed, 429 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..f1211ac9
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/apache-httpd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Apache Web Server
+After=network.target remote-fs.target nss-lookup.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..a4a100f8
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-api.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Volume Service (code-named Cinder) API server
+After=syslog.target network.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..a8f09ae0
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-backup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Cinder backup server
+After=syslog.target network.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..feff70f4
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-scheduler.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Cinder scheduler server
+After=syslog.target network.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..b166674b
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-setup.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Run cinder-setup Ansile 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..8852c90f
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-cinder-volume.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Cinder volume server
+After=syslog.target network.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..7958f84c
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-glance-api.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Image Service (code-named Glance) API server
+After=syslog.target network.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..18a60ae1
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-glance-registry.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Image Service (code-named Glance) Registry server
+After=syslog.target network.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..9805a38f
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-horizon-setup.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Run horizon-setup Ansible scripts
+After=local-fs.target
+
+[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..82b2d078
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-keystone.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Identity Service (code-named Keystone)
+After=syslog.target network.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-neutron-dhcp-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service
new file mode 100644
index 00000000..a86b7a0a
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Neutron DHCP Agent
+After=network-online.target openstack-neutron-ovs-cleanup.service
+
+[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..7fe12f46
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Neutron Layer 3 Agent
+After=network-online.target openstack-neutron-ovs-cleanup.service
+
+[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..15fd406f
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Neutron Metadata Plugin Agent
+After=network-online.target openstack-neutron-setup.service
+
+[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-network-configuration-one-node.service b/openstack/usr/lib/systemd/system/openstack-neutron-network-configuration-one-node.service
new file mode 100644
index 00000000..2b1d168b
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-network-configuration-one-node.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Configuration script to set Openstack in one node networking
+Wants=network-online.target
+After=network-online.target openvswitch.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/openstack/openstack-neutron-network-configuration-for-one-node
+Restart=no
+RemainAfterExit=yes
+
+[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..5eaf8a30
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Neutron OVS cleanup
+After=network-online.target openstack-neutron-setup.service
+ConditionFileIsExecutable=/usr/bin/neutron-ovs-cleanup
+
+[Service]
+Type=simple
+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..12498cc9
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Neutron OpenvSwitch Plugin Agent
+After=network-online.target openstack-neutron-setup.service
+
+[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..b9484b94
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-server.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Neutron Api Server
+Wants=openvswitch-create-links-one-node.service
+After=network-online.target openstack-neutron-setup.service openvswitch-create-links-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..4c09907e
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-neutron-setup.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Run openstack-neutron-setup (once)
+Wants=openvswitch-create-links-one-node.service
+After=network-online.target openstack-keystone-setup.service openvswitch-create-links-one-node.service postgres-server.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/openstack/openstack-neutron-setup
+Restart=no
+RemainAfterExit=yes
+
+[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..de7412ee
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-api.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Compute Service (code-named Nova) API server
+After=syslog.target network.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..c21246bf
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-cert.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Nova Cert
+After=syslog.target network.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..dc18f225
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-compute.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Compute Service (code-named Nova) API server
+After=syslog.target network.target libvirtd.service
+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..68e0a6ed
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-conductor.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Database-access support for Compute nodes (nova-conductor)
+After=syslog.target network.target libvirtd.service
+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..2c582518
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-consoleauth.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Openstack Console Auth (nova-consoleauth)
+After=syslog.target network.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..21013244
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-novncproxy.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Nova NoVNC proxy
+After=syslog.target network.target
+
+[Service]
+Type=simple
+User=nova
+ExecStart=/usr/bin/nova-novncproxy --config-file /etc/nova/nova.conf
+
+[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..519ef5eb
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-nova-scheduler.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenStack Nova Scheduler
+After=syslog.target network.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-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-create-links-one-node.service b/openstack/usr/lib/systemd/system/openvswitch-create-links-one-node.service
new file mode 100644
index 00000000..bacfc433
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch-create-links-one-node.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Create Veth pairs
+Wants=openstack-neutron-network-configuration-one-node.service
+After=network-online.target openstack-neutron-network-configuration-one-node.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/openstack/create_openvswitch_veth_pairs
+RemainAfterExit=yes
+Restart=no
+
+[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..e1cd2042
--- /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 openvswitch-setup.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ovsdb-server --remote=punix:/usr/local/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-initialize-db.service b/openstack/usr/lib/systemd/system/openvswitch-initialize-db.service
new file mode 100644
index 00000000..3c564c5a
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch-initialize-db.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Run openvswitch-initialize-db (once)
+After=local-fs.target openvswitch-db-server.service
+
+ConditionPathExists=!/usr/local/var/run/openvswitch/openvswitch-initialize-db-flag
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/ovs-vsctl --no-wait init
+ExecStart=/bin/touch /usr/local/var/run/openvswitch/openvswitch-initialize-db-flag
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..bfe67002
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch-setup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Run openvswitch-setup (once)
+After=local-fs.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/openstack/openvswitch-setup
+Restart=no
+
+[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..446c0f95
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openvswitch.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Open vSwitch Daemon
+After=openvswitch-initialize-db.service
+
+[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..f0d60f51
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/rabbitmq-server.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=RabbitMQ broker
+After=syslog.target network.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