summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBigfootACA2021-03-18 21:52:49 +0800
committerBigfootACA2021-03-18 21:52:49 +0800
commit5131dbfedca6c7c31369faa9d00b6ad7025e8b2c (patch)
tree954818bd0d368e2053ac084033e8e6c6de297ec5
downloadaur-5131dbfedca6c7c31369faa9d00b6ad7025e8b2c.tar.gz
upload to github
-rw-r--r--.SRCINFO164
-rw-r--r--.gitignore10
-rw-r--r--PKGBUILD247
-rw-r--r--openstack-nova-api.service15
-rw-r--r--openstack-nova-compute.service16
-rw-r--r--openstack-nova-conductor.service15
-rw-r--r--openstack-nova-metadata-api.service15
-rw-r--r--openstack-nova-novncproxy.service13
-rw-r--r--openstack-nova-os-compute-api.service14
-rw-r--r--openstack-nova-scheduler.service15
-rw-r--r--sysusers.conf2
-rw-r--r--tmpfiles.conf3
12 files changed, 529 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..7906e7198b4d
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,164 @@
+pkgbase = openstack-nova
+ pkgdesc = Cloud computing fabric controller
+ pkgver = 22.2.0
+ pkgrel = 1
+ url = https://docs.openstack.org/nova/latest/
+ arch = any
+ license = Apache
+ checkdepends = python-hacking
+ checkdepends = python-mypy
+ checkdepends = python-coverage
+ checkdepends = python-ddt
+ checkdepends = python-fixtures
+ checkdepends = python-mock
+ checkdepends = python-psycopg2
+ checkdepends = python-barbicanclient
+ checkdepends = python-ironicclient
+ checkdepends = python-requests-mock
+ checkdepends = python-oslotest
+ checkdepends = python-stestr
+ checkdepends = python-osprofiler
+ checkdepends = python-testresources
+ checkdepends = python-testscenarios
+ checkdepends = python-testtools
+ checkdepends = bandit
+ checkdepends = python-gabbi
+ checkdepends = python-wsgi-intercept
+ checkdepends = python-oslo-vmware
+ makedepends = python-setuptools
+ makedepends = python-sphinx
+ makedepends = python-sphinxcontrib-actdiag
+ makedepends = python-sphinxcontrib-seqdiag
+ makedepends = python-sphinxcontrib-svg2pdfconverter
+ makedepends = python-sphinx-feature-classification
+ makedepends = python-os-api-ref
+ makedepends = python-openstackdocstheme
+ makedepends = python-reno
+ makedepends = python-whereto
+ makedepends = python-osprofiler
+ depends = libffi
+ depends = libxml2
+ depends = libxslt
+ depends = openssh
+ depends = openssl
+ depends = pcre
+ depends = lsscsi
+ depends = libvirt
+ depends = libvirt-python
+ depends = qemu-headless
+ depends = novnc
+ depends = python
+ depends = python-pbr
+ depends = python-sqlalchemy
+ depends = python-decorator
+ depends = python-eventlet
+ depends = python-jinja
+ depends = python-keystonemiddleware
+ depends = python-lxml
+ depends = python-routes
+ depends = python-cryptography
+ depends = python-webob
+ depends = python-greenlet
+ depends = python-pastedeploy
+ depends = python-paste
+ depends = python-prettytable
+ depends = python-sqlalchemy-migrate
+ depends = python-netaddr
+ depends = python-netifaces
+ depends = python-paramiko
+ depends = python-iso8601
+ depends = python-jsonschema
+ depends = python-cinderclient
+ depends = python-keystoneauth1
+ depends = python-neutronclient
+ depends = python-glanceclient
+ depends = python-requests
+ depends = python-six
+ depends = python-stevedore
+ depends = websockify
+ depends = python-oslo-cache
+ depends = python-oslo-concurrency
+ depends = python-oslo-config
+ depends = python-oslo-context
+ depends = python-oslo-log
+ depends = python-oslo-reports
+ depends = python-oslo-serialization
+ depends = python-oslo-upgradecheck
+ depends = python-oslo-utils
+ depends = python-oslo-db
+ depends = python-oslo-rootwrap
+ depends = python-oslo-messaging
+ depends = python-oslo-policy
+ depends = python-oslo-privsep
+ depends = python-oslo-i18n
+ depends = python-oslo-service
+ depends = python-rfc3986
+ depends = python-oslo-middleware
+ depends = python-psutil
+ depends = python-oslo-versionedobjects
+ depends = python-os-brick
+ depends = python-os-resource-classes
+ depends = python-os-traits
+ depends = python-os-vif
+ depends = python-os-win
+ depends = python-castellan
+ depends = python-microversion-parse
+ depends = python-os-xenapi
+ depends = python-tooz
+ depends = python-cursive
+ depends = python-pypowervm
+ depends = python-retrying
+ depends = python-os-service-types
+ depends = python-taskflow
+ depends = python-dateutil
+ depends = python-zvmcloudconnector
+ depends = python-futurist
+ depends = python-openstacksdk
+ depends = python-dataclasses
+ depends = python-pyaml
+ depends = python-pymysql
+ source = https://pypi.io/packages/source/n/nova/nova-22.2.0.tar.gz
+ source = openstack-nova-api.service
+ source = openstack-nova-compute.service
+ source = openstack-nova-conductor.service
+ source = openstack-nova-metadata-api.service
+ source = openstack-nova-novncproxy.service
+ source = openstack-nova-os-compute-api.service
+ source = openstack-nova-scheduler.service
+ source = sysusers.conf
+ source = tmpfiles.conf
+ md5sums = c186cca0778eedf936fe4dd1d15e036b
+ md5sums = 3f26a8660462ae32a683ad79ef733b79
+ md5sums = c1d03d4898525c76d02f3b291ec46e21
+ md5sums = 3fa4675ec19fe27b37ee571961d54407
+ md5sums = febf170acc9605cacfc71a38c4b22825
+ md5sums = 9dbc29e1a098cce899a80db4c70135af
+ md5sums = 4c111886b0d64b5983d5f03b49e4dd9f
+ md5sums = de818eb31a86aaf4ae47bbf49a011a21
+ md5sums = fdc38aa4d35b511165091aac88c6614d
+ md5sums = a48b86a69b8875a250b59e628b21656e
+ sha256sums = dd2561a576f8f0c38e545e2cf71c896740bf64b40ac991537af1dec3d1fea3a1
+ sha256sums = ccee044c78f73566662b46ae1d2837b34fa998e607a5b965dff85c5042eb21de
+ sha256sums = 14c3724e55fa7d094cc95c334d564c5b2276d73bbf3771de6fa2c8acaab9f71b
+ sha256sums = 2cd6e2275d437297d6c2706cd6c1ccc38b4d2788da21ff1c82b2ce5597235c39
+ sha256sums = ef97d04c437367066261934babe31629240ec0b66929a2e32091e9fd0e13c0e7
+ sha256sums = d23df8531a2d395797a21c6f1a523b0d707ae45a098ab1500025c3ed7eb23b17
+ sha256sums = b4634822f93365a3a3b4133fe51698e307383936d8270a9e07a0e5cfb433db05
+ sha256sums = 5b6276b3480d30fc402a980e073e437fd81818cc024d1a04192bc6239177ad9d
+ sha256sums = ed64bd90f87a3c41ed57e8fea77055d9df85ed6229bd3f75d74627c42322eb4c
+ sha256sums = ca016a183d7e54570ae6f6fcc2338b89518de5a886514b257e4138a5a822e1bc
+ sha512sums = acb9745b2bebd669f919a2d3d73e9dc5dad5aa3de49690daddd779fb6467139f857d67c6d8af3761f12db9bf6c5120d1af7bee3e73b3c0e0c44d6b41cafe7883
+ sha512sums = bcd6c94e9d882528b4883fa947822e6dbea6ca8b438815556471f54f8f5bd8b413f0906d4cc210a85891fef09846972689d7d4c25ed1ae8a582fd413c22c4820
+ sha512sums = df839698bf257be1de5ed667c1c8f3c53c9384e549edc79b0988edae366ea6c10aff96ca9bbfb272852f5dd2348fbf1ea95c610ef261a771e8e6ca42b3448abc
+ sha512sums = e091ac769761211bcd7e864802f762c34012e9f539b5b629a70a69bfc784023500ad64486fa9b0a896204b9f7c5daf2a48547d341b7bc6efd78512f3c7541574
+ sha512sums = 6d7d0b51b138304eb0809c79be88e8bdc6890cd24c16ef5f88fe7620b4cdf9bf7143407964cdca94536a17714a0f605aa12557243b02b7fbea104592107bc053
+ sha512sums = 093d8db5544b7baf1522098d73ffa55f36bd3a75c49db5643027bcea999aad32b9b97840bf979fd42f5fa2609a0e5b0a5188bf3c43f8298fcca88205d461dc3b
+ sha512sums = 46faac9c58576a6c658a177ab0d567aa8945ce0ca170ac639f4565dc23c694b93e532da51d7a220a5fa964d6334af008b0bb1c5fd49dc2a6cd74d0e17ed8c46d
+ sha512sums = 3e0671510a19f700f75d5d0efc98ae49a1616984f0abbadf19c0f9732bce6700b5fde436933a90906426877a2c52fcdb1c0b643f97781df8169808847388e850
+ sha512sums = 77a3849f4604fdb4293dbaf7341f9dab62b6e2df82eeab5baa728ed5ae9b3d0ac73f4fd924aee2271d6696ba5c26a50ff21f2a2a452515b8a4a2c12e9fd6a7e9
+ sha512sums = a1dab8ab925fc43522e93b3a661468b727d9b5da34d490d7768f464b48e0edf5b9ebc696c645755c87eccad84e9ae26e10e2a0362839fe426f3a6e3f1df5ea09
+
+pkgname = openstack-nova
+
+pkgname = openstack-nova-doc
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..fcaabd513b1a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+pkg
+src
+*.tar
+*.gz
+*.xz
+*.zst
+*.zip
+*.lz4
+*.lzo
+*.bz
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..cd78b3893999
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,247 @@
+# Maintainer: BigfootACA <bigfoot@classfun.cn>
+
+_pyname=nova
+pkgbase=openstack-$_pyname
+pkgname=(openstack-$_pyname{,-doc})
+pkgver=22.2.0
+pkgrel=1
+pkgdesc="Cloud computing fabric controller"
+arch=('any')
+url="https://docs.openstack.org/nova/latest/"
+license=('Apache')
+depends=(
+ libffi
+ libxml2
+ libxslt
+ openssh
+ openssl
+ pcre
+ lsscsi
+ libvirt
+ libvirt-python
+ qemu-headless
+ novnc
+ python
+ python-pbr
+ python-sqlalchemy
+ python-decorator
+ python-eventlet
+ python-jinja
+ python-keystonemiddleware
+ python-lxml
+ python-routes
+ python-cryptography
+ python-webob
+ python-greenlet
+ python-pastedeploy
+ python-paste
+ python-prettytable
+ python-sqlalchemy-migrate
+ python-netaddr
+ python-netifaces
+ python-paramiko
+ python-iso8601
+ python-jsonschema
+ python-cinderclient
+ python-keystoneauth1
+ python-neutronclient
+ python-glanceclient
+ python-requests
+ python-six
+ python-stevedore
+ websockify
+ python-oslo-cache
+ python-oslo-concurrency
+ python-oslo-config
+ python-oslo-context
+ python-oslo-log
+ python-oslo-reports
+ python-oslo-serialization
+ python-oslo-upgradecheck
+ python-oslo-utils
+ python-oslo-db
+ python-oslo-rootwrap
+ python-oslo-messaging
+ python-oslo-policy
+ python-oslo-privsep
+ python-oslo-i18n
+ python-oslo-service
+ python-rfc3986
+ python-oslo-middleware
+ python-psutil
+ python-oslo-versionedobjects
+ python-os-brick
+ python-os-resource-classes
+ python-os-traits
+ python-os-vif
+ python-os-win
+ python-castellan
+ python-microversion-parse
+ python-os-xenapi
+ python-tooz
+ python-cursive
+ python-pypowervm
+ python-retrying
+ python-os-service-types
+ python-taskflow
+ python-dateutil
+ python-zvmcloudconnector
+ python-futurist
+ python-openstacksdk
+ python-dataclasses
+ python-pyaml
+ python-pymysql
+)
+makedepends=(
+ python-setuptools
+ python-sphinx
+ python-sphinxcontrib-actdiag
+ python-sphinxcontrib-seqdiag
+ python-sphinxcontrib-svg2pdfconverter
+ python-sphinx-feature-classification
+ python-os-api-ref
+ python-openstackdocstheme
+ python-reno
+ python-whereto
+ python-osprofiler
+)
+checkdepends=(
+ python-hacking
+ python-mypy
+ python-coverage
+ python-ddt
+ python-fixtures
+ python-mock
+ python-psycopg2
+ python-barbicanclient
+ python-ironicclient
+ python-requests-mock
+ python-oslotest
+ python-stestr
+ python-osprofiler
+ python-testresources
+ python-testscenarios
+ python-testtools
+ bandit
+ python-gabbi
+ python-wsgi-intercept
+ python-oslo-vmware
+)
+source=(
+ "https://pypi.io/packages/source/${_pyname::1}/$_pyname/$_pyname-$pkgver.tar.gz"
+ openstack-nova-api.service
+ openstack-nova-compute.service
+ openstack-nova-conductor.service
+ openstack-nova-metadata-api.service
+ openstack-nova-novncproxy.service
+ openstack-nova-os-compute-api.service
+ openstack-nova-scheduler.service
+ sysusers.conf
+ tmpfiles.conf
+)
+md5sums=('c186cca0778eedf936fe4dd1d15e036b'
+ '3f26a8660462ae32a683ad79ef733b79'
+ 'c1d03d4898525c76d02f3b291ec46e21'
+ '3fa4675ec19fe27b37ee571961d54407'
+ 'febf170acc9605cacfc71a38c4b22825'
+ '9dbc29e1a098cce899a80db4c70135af'
+ '4c111886b0d64b5983d5f03b49e4dd9f'
+ 'de818eb31a86aaf4ae47bbf49a011a21'
+ 'fdc38aa4d35b511165091aac88c6614d'
+ 'a48b86a69b8875a250b59e628b21656e')
+sha256sums=('dd2561a576f8f0c38e545e2cf71c896740bf64b40ac991537af1dec3d1fea3a1'
+ 'ccee044c78f73566662b46ae1d2837b34fa998e607a5b965dff85c5042eb21de'
+ '14c3724e55fa7d094cc95c334d564c5b2276d73bbf3771de6fa2c8acaab9f71b'
+ '2cd6e2275d437297d6c2706cd6c1ccc38b4d2788da21ff1c82b2ce5597235c39'
+ 'ef97d04c437367066261934babe31629240ec0b66929a2e32091e9fd0e13c0e7'
+ 'd23df8531a2d395797a21c6f1a523b0d707ae45a098ab1500025c3ed7eb23b17'
+ 'b4634822f93365a3a3b4133fe51698e307383936d8270a9e07a0e5cfb433db05'
+ '5b6276b3480d30fc402a980e073e437fd81818cc024d1a04192bc6239177ad9d'
+ 'ed64bd90f87a3c41ed57e8fea77055d9df85ed6229bd3f75d74627c42322eb4c'
+ 'ca016a183d7e54570ae6f6fcc2338b89518de5a886514b257e4138a5a822e1bc')
+sha512sums=('acb9745b2bebd669f919a2d3d73e9dc5dad5aa3de49690daddd779fb6467139f857d67c6d8af3761f12db9bf6c5120d1af7bee3e73b3c0e0c44d6b41cafe7883'
+ 'bcd6c94e9d882528b4883fa947822e6dbea6ca8b438815556471f54f8f5bd8b413f0906d4cc210a85891fef09846972689d7d4c25ed1ae8a582fd413c22c4820'
+ 'df839698bf257be1de5ed667c1c8f3c53c9384e549edc79b0988edae366ea6c10aff96ca9bbfb272852f5dd2348fbf1ea95c610ef261a771e8e6ca42b3448abc'
+ 'e091ac769761211bcd7e864802f762c34012e9f539b5b629a70a69bfc784023500ad64486fa9b0a896204b9f7c5daf2a48547d341b7bc6efd78512f3c7541574'
+ '6d7d0b51b138304eb0809c79be88e8bdc6890cd24c16ef5f88fe7620b4cdf9bf7143407964cdca94536a17714a0f605aa12557243b02b7fbea104592107bc053'
+ '093d8db5544b7baf1522098d73ffa55f36bd3a75c49db5643027bcea999aad32b9b97840bf979fd42f5fa2609a0e5b0a5188bf3c43f8298fcca88205d461dc3b'
+ '46faac9c58576a6c658a177ab0d567aa8945ce0ca170ac639f4565dc23c694b93e532da51d7a220a5fa964d6334af008b0bb1c5fd49dc2a6cd74d0e17ed8c46d'
+ '3e0671510a19f700f75d5d0efc98ae49a1616984f0abbadf19c0f9732bce6700b5fde436933a90906426877a2c52fcdb1c0b643f97781df8169808847388e850'
+ '77a3849f4604fdb4293dbaf7341f9dab62b6e2df82eeab5baa728ed5ae9b3d0ac73f4fd924aee2271d6696ba5c26a50ff21f2a2a452515b8a4a2c12e9fd6a7e9'
+ 'a1dab8ab925fc43522e93b3a661468b727d9b5da34d490d7768f464b48e0edf5b9ebc696c645755c87eccad84e9ae26e10e2a0362839fe426f3a6e3f1df5ea09')
+
+export PBR_VERSION=$pkgver
+
+build(){
+ cd $_pyname-$pkgver
+ export PYTHONPATH="${PWD}"
+ python setup.py build
+ sphinx-build -b html doc/source doc/build/html
+}
+
+#check(){
+# cd $_pyname-$pkgver
+# export PYTHONPATH="${PWD}"
+# stestr run
+#}
+
+_package_pkg(){
+ optdepends=(
+ "python-openstackclient: OpenStack CLI Client"
+ "${pkgbase}-doc: Documents for ${pkgdesc}"
+ )
+ backup=(
+ etc/nova/api-paste.ini
+ etc/nova/logging_sample.conf
+ etc/nova/nova.conf
+ etc/nova/policy.yaml
+ etc/nova/policy.json
+ etc/nova/rootwrap.conf
+ etc/nova/rootwrap.d/compute.filters
+ )
+ cd $_pyname-$pkgver
+ export PYTHONPATH=${PWD}
+ _DATADIR="$pkgdir/usr/share"
+ _CONFDIR="$pkgdir/etc"
+ _DOCDIR="$_DATADIR/doc"
+ DATADIR="$_DATADIR/$_pyname"
+ DOCDIR="$_DOCDIR/$_pyname"
+ LIBDIR="$pkgdir/usr/lib"
+ CONFDIR="$_CONFDIR/$_pyname"
+ python setup.py install --root "$pkgdir" --optimize=1
+ mv "$pkgdir"{/usr,}/etc
+ for i in "${source[@]}"
+ do case "${i}" in
+ ?*.service)install -Dm644 "$srcdir/$i" "$pkgdir/usr/lib/systemd/system/$i"
+ esac
+ done
+ install -Dm644 ${srcdir}/tmpfiles.conf "$pkgdir"/usr/lib/tmpfiles.d/$_pyname.conf
+ install -Dm644 ${srcdir}/sysusers.conf "$pkgdir"/usr/lib/sysusers.d/$_pyname.conf
+ oslo-config-generator --config-file=etc/nova/nova-config-generator.conf
+ oslopolicy-sample-generator --config-file=etc/nova/nova-policy-generator.conf
+ install -Dm644 etc/$_pyname/rootwrap.conf -t "$CONFDIR"
+ install -Dm644 etc/$_pyname/rootwrap.conf -t "$DATADIR"
+ install -Dm644 etc/$_pyname/api-paste.ini -t "$CONFDIR"
+ install -Dm644 etc/$_pyname/api-paste.ini -t "$DATADIR"
+ install -Dm644 etc/$_pyname/logging_sample.conf -t "$CONFDIR"
+ install -Dm644 etc/$_pyname/logging_sample.conf -t "$DATADIR"
+ install -Dm644 etc/$_pyname/rootwrap.d/compute.filters -t "$CONFDIR/rootwrap.d"
+ install -Dm644 etc/$_pyname/*.*.sample -t "$CONFDIR"
+ install -Dm644 etc/$_pyname/*.*.sample -t "$DATADIR"
+ echo '{}' >"$CONFDIR/policy.json"
+ for i in "$CONFDIR/"*.*.sample
+ do mv -v "$i" "${i//.sample}"
+ done
+}
+
+_package_doc(){
+ pkgdesc="${pkgdesc} Documents"
+ depends=()
+ cd $_pyname-$pkgver
+ mkdir -p "${pkgdir}/usr/share/doc"
+ cp -r doc/build/html "${pkgdir}/usr/share/doc/${pkgname}"
+ rm -r "${pkgdir}/usr/share/doc/${pkgname}/.doctrees"
+}
+
+eval "package_${pkgbase}(){ _package_pkg; }"
+eval "package_${pkgbase}-doc(){ _package_doc; }"
diff --git a/openstack-nova-api.service b/openstack-nova-api.service
new file mode 100644
index 000000000000..9c83f6da431e
--- /dev/null
+++ b/openstack-nova-api.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=OpenStack Nova API Server
+After=syslog.target network.target
+
+[Service]
+Type=notify
+NotifyAccess=all
+TimeoutStartSec=0
+Restart=always
+User=nova
+ExecStart=/usr/bin/nova-api --log-file /var/log/nova/api.log
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack-nova-compute.service b/openstack-nova-compute.service
new file mode 100644
index 000000000000..1e1f1b4ddbe3
--- /dev/null
+++ b/openstack-nova-compute.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=OpenStack Nova Compute Server
+After=syslog.target network.target libvirtd.service virtqemud.service
+
+[Service]
+Environment=LIBGUESTFS_ATTACH_METHOD=appliance
+Type=notify
+NotifyAccess=all
+TimeoutStartSec=0
+Restart=always
+User=nova
+ExecStart=/usr/bin/nova-compute --log-file /var/log/nova/compute.log
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack-nova-conductor.service b/openstack-nova-conductor.service
new file mode 100644
index 000000000000..bca3c738efb1
--- /dev/null
+++ b/openstack-nova-conductor.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=OpenStack Nova Conductor Server
+After=syslog.target network.target
+
+[Service]
+Type=notify
+NotifyAccess=all
+TimeoutStartSec=0
+Restart=always
+User=nova
+ExecStart=/usr/bin/nova-conductor --log-file /var/log/nova/conductor.log
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack-nova-metadata-api.service b/openstack-nova-metadata-api.service
new file mode 100644
index 000000000000..6885b682cd29
--- /dev/null
+++ b/openstack-nova-metadata-api.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=OpenStack Nova Metadata API Server
+After=syslog.target network.target
+
+[Service]
+Type=notify
+NotifyAccess=all
+TimeoutStartSec=0
+Restart=always
+User=nova
+ExecStart=/usr/bin/nova-api-metadata --log-file /var/log/nova/metadata.log
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/openstack-nova-novncproxy.service b/openstack-nova-novncproxy.service
new file mode 100644
index 000000000000..648aab89f889
--- /dev/null
+++ b/openstack-nova-novncproxy.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenStack Nova NoVNC Proxy Server
+After=syslog.target network.target
+
+[Service]
+Type=simple
+User=nova
+EnvironmentFile=-/etc/conf.d/openstack-nova-novncproxy
+ExecStart=/usr/bin/nova-novncproxy --web /usr/share/webapps/novnc/ --log-file /var/log/nova/novnc.log $OPTIONS
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack-nova-os-compute-api.service b/openstack-nova-os-compute-api.service
new file mode 100644
index 000000000000..0720a52213d9
--- /dev/null
+++ b/openstack-nova-os-compute-api.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=OpenStack Nova Compute API Server
+After=syslog.target network.target
+
+[Service]
+Type=notify
+NotifyAccess=all
+TimeoutStartSec=0
+Restart=always
+User=nova
+ExecStart=/usr/bin/nova-api-os-compute --log-file /var/log/nova/api-os-compute.log
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack-nova-scheduler.service b/openstack-nova-scheduler.service
new file mode 100644
index 000000000000..14e30fe7c136
--- /dev/null
+++ b/openstack-nova-scheduler.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=OpenStack Nova Scheduler Server
+After=syslog.target network.target
+
+[Service]
+Type=notify
+NotifyAccess=all
+TimeoutStartSec=0
+Restart=always
+User=nova
+ExecStart=/usr/bin/nova-scheduler --log-file /var/log/nova/scheduler.log
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/sysusers.conf b/sysusers.conf
new file mode 100644
index 000000000000..3367b4a0f238
--- /dev/null
+++ b/sysusers.conf
@@ -0,0 +1,2 @@
+m nova libvirt
+u nova - "OpenStack Compute Service" /var/lib/nova
diff --git a/tmpfiles.conf b/tmpfiles.conf
new file mode 100644
index 000000000000..71154dad7477
--- /dev/null
+++ b/tmpfiles.conf
@@ -0,0 +1,3 @@
+d /var/log/nova 0750 nova nova -
+d /var/lib/nova 0750 nova nova -
+d /var/lib/nova/instances 0750 nova nova -