Commit | Line | Data |
7a668ea4 |
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 | |
bf7d9637 |
18 | rule key_not_installed_on { A K } { |
19 | authorized_keys_on A F |
20 | not_contains_line F K |
21 | } |
22 | |
7a668ea4 |
23 | rule my_config_dir D { |
24 | home_dir_on '' H |
25 | directory_in H '.keymangler' D |
26 | } |
27 | |
bf7d9637 |
28 | rule my_config_file { C F } { |
7a668ea4 |
29 | my_config_dir D |
30 | file_in D C F |
bf7d9637 |
31 | } |
32 | |
33 | rule config_contains_line { C L } { |
34 | my_config_file C F |
7a668ea4 |
35 | contains_line F L |
36 | } |
37 | |
bf7d9637 |
38 | rule config_not_contains_line { C L } { |
39 | my_config_file C F |
40 | not_contains_line F L |
41 | } |
42 | |
7a668ea4 |
43 | rule known_account A { config_contains_line 'accounts' A } |
44 | rule known_key K { config_contains_line 'keys' K } |
45 | rule known_dead D { config_contains_line 'keys.dead' D } |
46 | |
bf7d9637 |
47 | rule not_known_account A { config_not_contains_line 'accounts' A } |
48 | rule not_known_key K { config_not_contains_line 'keys' K } |
49 | rule not_known_dead D { config_not_contains_line 'keys.dead' D } |
50 | |
51 | rule account_synchronized A { |
7a668ea4 |
52 | foreach K { known_key K } { key_installed_on A K } |
53 | } |
bf7d9637 |
54 | |
55 | rule all_synchronized {} { |
56 | foreach A { known_account A } { account_synchronized A } |
57 | } |
58 | |
59 | rule unknown_installed_on { A K } { |
60 | key_installed_on A K |
61 | not { known_key K } |
62 | } |