コード例 #1
0
def sync_key(key_name, client=None):
    if not client:
        cloud = env.cloud()
        client = ssh.master_client(cloud)

    ssh.sudo(
            client,
            'salt \'*\' ssh.set_auth_key_from_file ubuntu salt://keys/%s' % \
            key_name)
コード例 #2
0
ファイル: salt.py プロジェクト: cloudseed-project/cloudseed2
def sync_key(key_name, client=None):
    if not client:
        cloud = env.cloud()
        client = ssh.master_client(cloud)

    ssh.sudo(
            client,
            'salt \'*\' ssh.set_auth_key_from_file ubuntu salt://keys/%s' % \
            key_name)
コード例 #3
0
def highstate(minion_id=None, grain=None):

    cloud = env.cloud()
    client = ssh.master_client(cloud)

    if minion_id:
        ssh.sudo(client, 'salt \'%s\' state.highstate' % minion_id)
    elif grain:
        ssh.sudo(client, 'salt -G \'%s\' state.highstate' % grain)
コード例 #4
0
ファイル: salt.py プロジェクト: cloudseed-project/cloudseed2
def highstate(minion_id=None, grain=None):

    cloud = env.cloud()
    client = ssh.master_client(cloud)

    if minion_id:
        ssh.sudo(client, 'salt \'%s\' state.highstate' % minion_id)
    elif grain:
        ssh.sudo(client, 'salt -G \'%s\' state.highstate' % grain)
コード例 #5
0
ファイル: keys.py プロジェクト: cloudseed-project/cloudseed2
def _add_key():
    user_path = os.path.expanduser('~/.ssh')
    files = glob.glob(os.path.join(user_path, 'id_rsa.pub'))

    if len(files) < 1:
        # TODO ERROR MESSAGES
        return

    target = files[0]
    log.debug('Transferring public key \'%s\' to master', target)
    cloud = env.cloud()

    with open(target, 'rb') as f:
        key_name = hashlib.md5(f.read()).hexdigest()

    sync_file(target, '/tmp/%s' % key_name, cloud)

    client = ssh.master_client(cloud)
    ssh.sudo(
        client,
        'mv /tmp/%s /srv/cloudseed/keys && chmod 600 /srv/cloudseed/keys/%s' % \
        (key_name, key_name))

    salt.sync_key(key_name, client=client)