Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
        ###
        # Possible replacement for the above code. Add SSH key to existing
        # account without replacing the file.
        ###
        define key ($ensure = 'present', $destuser, $sourcekeys) {

                ### 
                # First thing we do in this definition, make sure that 
                # the users authorized_keys file exists and has the 
                # right permissions. This is before we make any changes.
                ###
#               $group = generate("/usr/bin/id","-g","$destuser")
                file {  
                        "/home/$destuser":
                                ensure  => directory,
                                owner   => $destuser;

                        "/home/$destuser/.ssh":
                                ensure  => directory,
                                owner   => $destuser,
                                mode    => 700, 
                                require => File["/home/$destuser"];

                        "/home/$destuser/.ssh/authorized_keys":
                                ensure  => present,
                                owner   => $destuser,
                                mode    => 644, 
                                require => File["/home/$destuser/.ssh"],
                }

                case $ensure {
                        present:  {
                                $key = file("/etc/puppet/files/idcadmin/auth/keys/$sourcekeys.pub")
                                line {
                                        "append_auth_key_$sourcekeys_to_$destuser":
                                        line    => $key,
                                        ensure  => present,
                                        require => File["/home/$destuser/.ssh/authorized_keys"],
                                        file    => "/home/$destuser/.ssh/authorized_keys";
                                }
                        }
                }

        }