On 09/10/2013 22:46, Loic Dachary wrote:
> 
> 
> On 08/10/2013 16:20, Don Talton (dotalton) wrote:> Hi Loic, 
>>
> 
>> We utilize stackforge's puppet modules to do our heavy lifting, including 
>> p-openstack, p-cinder, p-glance. There are dependency chains so that 
>> services will be restarted after configuration changes are made. Since many 
>> of our customers don't allow their baremetal  nodes Internet access, we've 
>> added the packages to our APT repo to avoid the version issues with using 
>> either stock or public packages.
>>
>> You can probably find some other useful code the 
>> https://github.com/CiscoSystems/ repo, including what is needed to 
>> cohabitate MON/OSD nodes with OpenStack service nodes 
>> (https://github.com/CiscoSystems/puppet-coe/tree/grizzly/manifests/ceph) and 
>> more. The primary orchestration is in grizzly-manifests. You can see HOWTOs 
>> for different deployment scenarios here: 
>> http://docwiki.cisco.com/wiki/OpenStack:Ceph-COI-Installation. 
>>
>> Hope this helps some!
> 
> It does and it's great that all this is documented :-) Although there are a 
> few modules around, re-using ceph-deploy seems to be the preferred method. I 
> wonder what Alfredo would suggest. From a previous discussion we had I think 
> he will suggest to use ceph-disk directly + cli / rest call instead. Looking 
> at 
> 
> https://github.com/ceph/ceph-deploy/blob/master/ceph_deploy/new.py
> https://github.com/ceph/ceph-deploy/blob/master/ceph_deploy/mon.py
> etc.
> 
> the layer provided by ceph-deploy is indeed thin. But is it something that 
> needs to be duplicated in a puppet module ?
> 

I took a look at ceph-deploy and it won't rely on sudo if run from root

ceph_deploy/sudo_pushy.py
def needs_sudo():
    if getpass.getuser() == 'root':
        return False
    return True

and that it won't rely on ssh if the target host is localhost:

ceph_deploy/lib/remoto/connection.py
def needs_ssh(hostname, _socket=None):
    """
    Obtains remote hostname of the socket and cuts off the domain part
    of its FQDN.
    """
    _socket = _socket or socket
    local_hostname = _socket.gethostname()
    local_short_hostname = local_hostname.split('.')[0]
    if local_hostname == hostname or local_short_hostname == hostname:
        return False
    return True

Since puppet-cephdeploy runs on the target host as root, it means that

puppet-cephdeploy/manifests/init.pp
  file {"/home/$user/.ssh/authorized_keys":
...
etc.

could probably be avoided since puppet-cephdeploy/manifests/mon.pp runs

command => "/usr/local/bin/ceph-deploy mon create $::hostname",

runs as root, on the target host.

I'm not sure if the distribution of the keys would work though as it relies on 
files collected by "gatherkeys" which is still a little mysterious for me :-)

Cheers

-- 
Loïc Dachary, Artisan Logiciel Libre
All that is necessary for the triumph of evil is that good people do nothing.





Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to