key manager example
[scpubgit/DKit.git] / examples / keyman
1 rule dot_ssh_on { A D } {
2   home_dir_on A H
3   directory_in H '.ssh' D
4   mode D '0700'
5 }
6
7 rule authorized_keys_on { A F } {
8   dot_ssh_on A D
9   file_in D 'authorized_keys' F
10   mode F '0600'
11 }
12
13 rule key_installed_on { A K } {
14   authorized_keys_on A F
15   contains_line F K
16 }
17
18 rule my_config_dir D {
19   home_dir_on '' H
20   directory_in H '.keymangler' D
21 }
22
23 rule config_contains_line { C L } {
24   my_config_dir D
25   file_in D C F
26   contains_line F L
27 }
28
29 rule known_account A { config_contains_line 'accounts' A }
30 rule known_key K { config_contains_line 'keys' K }
31 rule known_dead D { config_contains_line 'keys.dead' D }
32
33 rule sync_account A {
34   foreach K { known_key K } { key_installed_on A K }
35 }