[openstack-dev] [heat] Sofware Config progress [for appliances]
Clint Byrum
clint at fewbar.com
Thu Feb 6 09:19:19 UTC 2014
Excerpts from Mike Spreitzer's message of 2014-02-05 22:17:50 -0800:
> > From: Prasad Vellanki <prasad.vellanki at oneconvergence.com>
> > To: "OpenStack Development Mailing List (not for usage questions)"
> > <openstack-dev at lists.openstack.org>,
> > Date: 01/21/2014 02:16 AM
> > Subject: Re: [openstack-dev] [heat] Sofware Config progress
> >
> > Steve & Clint
> >
> > That should work. We will look at implementing a resource that spins
> > up a shortlived VM for bootstrapping a service VM and informing
> > configuration server for further configuration.
> >
> > thanks
> > prasadv
> >
>
> > On Wed, Jan 15, 2014 at 7:53 PM, Steven Dake <sdake at redhat.com> wrote:
> > On 01/14/2014 09:27 PM, Clint Byrum wrote:
> > Excerpts from Prasad Vellanki's message of 2014-01-14 18:41:46 -0800:
> > Steve
> >
> > I did not mean to have custom solution at all. In fact that would be
> > terrible. I think Heat model of software config and deployment is
> really
> > good. That allows configurators such as Chef, Puppet, Salt or Ansible to
> be
> > plugged into it and all users need to write are modules for those.
> >
> > What I was thinking is if there is a way to use software
> config/deployment
> > to do initial configuration of the appliance by using agentless system
> > such as Ansible or Salt, thus requiring no cfminit. I am not sure this
> > will work either, since it might require ssh keys to be installed for
> > getting ssh to work without password prompting. But I do see that
> ansible
> > and salt support username/password option.
> > If this would not work, I agree that the best option is to make them
> > support cfminit...
> > Ansible is not agent-less. It just makes use of an extremely flexible
> > agent: sshd. :) AFAIK, salt does use an agent though maybe they've added
> > SSH support.
> >
> > Anyway, the point is, Heat's engine should not be reaching into your
> > machines. It talks to API's, but that is about it.
> >
> > What you really want is just a VM that spins up and does the work for
> > you and then goes away once it is done.
> > Good thinking. This model might work well without introducing the
> > "groan another daemon" problems pointed out elsewhere in this thread
> > that were snipped. Then the "modules" could simply be heat
> > templates available to the Heat engine to do the custom config setup.
> >
> > The custom config setup might still be a problem with the original
> > constraints (not modifying images to inject SSH keys).
> >
> > That model wfm.
> >
> > Regards
> > -steve
> >
>
> (1) What destroys the short-lived VM if the heat engine crashes between
> creating and destroying that short-lived VM?
>
The heat-engine that takes over the stack. Same as the answer for what
happens when a stack is half-created and heat-engine dies.
> (2) What if something goes wrong and the heat engine never gets the signal
> it is waiting for?
>
Timeouts already cause failed state or rollback.
> (3) This still has the problem that something needs to be configured
> some(client-ish)where to support the client authorization solution
> (usually username/password).
>
The usual answer is "that's cloud-init's job" but we're discussing
working around not having cloud-init, so I suspect it has to be built
into the image (which, btw, is a really really bad idea). Another option
is that these weird proprietary systems might reach out to an auth
service which the short-lived VM would also be able to contact given
appropriate credentials for said auth service fed in via parameters.
> (4) Given that everybody seems sanguine about solving the client
> authorization problem, what is wrong with code in the heat engine opening
> and using a connection to code in an appliance? Steve, what do you mean
> by "reaching into your machines" that is critically different from calling
> their APIs?
>
We can, and should, poke holes from heat-engine, out through a firewall,
so it can connect to all of the endpoints. However, if we start letting
it talk to all the managed machines, it becomes a really handy DoS tool
and also spends a ton of time talking to things that we have no control
over, thus taking up resources to an unknown degree.
Heat-engine is precious, it has access to a database with a ton of really
sensitive information. It is also expensive when heat-engine dies (until
we can make all tasks distributed) as it may force failure states. So
I think we need to be very careful about what we let it do.
> (5) Are we really talking about the same kind of software configuration
> here? Many appliances do not let you SSH into a bash shell and do
> whatever you want; they provide only their own API or special command
> language over a telnet/ssh sort of connection. Is hot-software-config
> intended to cover that? Is this what the OneConvergence guys are
> concerned with?
>
No. We are suggesting a solution to their unique problem of having to
talk to said API/special command language/telnet/IP-over-avian-carrier.
The short-lived VM can just have a UserData section which does all of
this really.
More information about the OpenStack-dev
mailing list