On Fri, 8 Jun 2012 17:45:30 -0400, Matt Wagner <matt.wagner(a)redhat.com> wrote:
I'm running into a bunch of problems with aeolus-configure. I
don't know
that they're related to our packages, but they're certainly causing
grief either way.
The overall set of failures:
https://gist.github.com/2898232
Line 18 shows a Deltacloud failure. Then line 40 begins a barrage of
database-related errors.
I have the Deltacloud-specific errors here:
https://gist.github.com/2898237 -- it seems like it's failing because
it can't find the user "nobody".
Deltacloud fails because /usr/bin/ruby is not allowed read() on
/etc/passwd, so it is denied by SELinux.
Currently, on F17, deltacloud is being invoked by systemd via its
sysvinit script. Thin is trying to do the daemonization, which roughly
amounts to:
1. Start ruby (thin) as root
2. Read config, determine thin should run as 'nobody'
3. Read /etc/passwd to determine the uid of the 'nobody'
4. Fork and call setuid() to the nobody user
(3) is where it all goes wrong and it fails to start before daemonizing.
The easy and proper fix is to lauch deltacloud as a proper systemd
service unit. Then, systemd can manage all of the daemonization and
user switching (which it is permitted to do by policy). I'm attaching a
service unit I threw together, you can drop it in
/etc/systemd/system/deltacloud-core.service and see if it helps (it did
for me).
After fixing deltacloud, I'm also seeing failures for
conductor-delayed_job, conductor-dbomatic, and aeolus-conductor as well.
I haven't dug into those but I'm guessing they suffer from roughly the
same problem.
I don't know if there's a useful log for the database errors.
Postgres
looks to be running fine. thin.log and rails.log are both blank.
configure's log doesn't look to have anything I didn't paste above.
FWIW I can't reproduce the Postgres error.
[Unit]
Description=Deltacloud Core Daemon
[Service]
ExecStart=/usr/bin/deltacloudd -i mock -e production --port 3002 --host localhost
User=nobody
Group=nobody
[Install]
WantedBy=multi-user.target