импортирайте съществуващи ssh_authorized_keys в ресурс за марионетки

Има ли начин за автоматично импортиране на всички съществуващи ssh ключове от /root/.ssh/authorized_keys в марионетка? Пример:

ако имам следното съдържание в /root/.ssh/ssh_authorized_keys:

ssh-rsa AAAAakljsehrkjysdfjkhasdkfhskjghg== userA@hostA
ssh-rsa AAAAajklrkljeykljrsyehkrjryekjdkj== userB@hostB

Бих искал да стартирам нещо като:

puppet resource ssh_authorized_key

И получете следния изход:

ssh_authorized_key {'userA':
    ensure => present,
    key    => 'AAAAakljsehrkjysdfjkhasdkfhskjghg==',
    type   => 'ssh-rsa',
    name   => 'userA@hostA',
    user   => 'root',
}
ssh_authorized_key {'userB':
    ensure => present,
    key    => 'AAAAajklrkljeykljrsyehkrjryekjdkj==',
    type   => 'ssh-rsa',
    name   => 'userB@hostB',
    user   => 'root',
}

Възможно ли е това по някакъв начин?


person cripton    schedule 11.02.2013    source източник


Отговори (1)


Може да е малко пресилено, но можете да изпълните план и да вземете необходимите секции или прост bash скрипт :

while read line; do 
    keytype=$(echo $line | awk '{print $1}'); 
    keystr=$(echo $line | awk '{print $2}'); 
    username=$(echo $line | awk '{print $3}');

    echo "ssh_authorized_key {'$(echo $username | awk -F'@' '{print $1}')':"; 
    echo "  ensure => present,"; 
    echo "  key => '$keystr',"; 
    echo "  type => '$keytype',"; 
    echo "  name => '$username',"; 
    echo "  user => '$(whoami)',"; 
    echo "}"; 
done < .ssh/authorized_keys

източник: http://shtuff.it/article/7/Generate_Puppet_ssh_authorized_keys_resource_from_existing_keys

person Chris Montanaro    schedule 11.02.2013