diff --git a/roles/backup_server/molecule.yml b/roles/backup_server/molecule.yml new file mode 100644 index 0000000000000000000000000000000000000000..d2841716299ab65782ee982ebe4c83aae5f3204c --- /dev/null +++ b/roles/backup_server/molecule.yml @@ -0,0 +1,37 @@ +--- + +dependency: {} + +driver: + name: vagrant + +vagrant: + + platforms: + - name: debian-jessie64 + box: debian/contrib-jessie64 + + providers: + - name: virtualbox + type: virtualbox + options: + memory: 512 + cpus: 1 + + instances: + - name: parameters-mandatory + interfaces: + - network_name: private_network + type: static + ip: 10.31.127.10 + auto_config: yes + + - name: parameters-optional + interfaces: + - network_name: private_network + type: static + ip: 10.31.127.11 + auto_config: yes + +verifier: + name: testinfra diff --git a/roles/backup_server/playbook.yml b/roles/backup_server/playbook.yml new file mode 100644 index 0000000000000000000000000000000000000000..0b85061b2a64faa9d7ce5fa88fca627d4f16ed92 --- /dev/null +++ b/roles/backup_server/playbook.yml @@ -0,0 +1,34 @@ +--- + +- hosts: all + tasks: + + - name: Update all caches to avoid errors due to missing remote archives + apt: + update_cache: yes + +- hosts: parameters-mandatory + roles: + - role: backup_server + backup_host_ssh_private_keys: + dsa: "{{ lookup('file', 'tests/data/ssh/server_dsa') }}" + rsa: "{{ lookup('file', 'tests/data/ssh/server_rsa') }}" + ed25519: "{{ lookup('file', 'tests/data/ssh/server_ed25519') }}" + ecdsa: "{{ lookup('file', 'tests/data/ssh/server_ecdsa') }}" + +- hosts: parameters-optional + roles: + - role: backup_server + backup_host_ssh_private_keys: + dsa: "{{ lookup('file', 'tests/data/ssh/server_dsa') }}" + rsa: "{{ lookup('file', 'tests/data/ssh/server_rsa') }}" + ed25519: "{{ lookup('file', 'tests/data/ssh/server_ed25519') }}" + ecdsa: "{{ lookup('file', 'tests/data/ssh/server_ecdsa') }}" + backup_clients: + - server: client1.backup + ip: 10.31.127.1 + public_key: "{{ lookup('file', 'tests/data/ssh/client1.pub') }}" + - server: client2-backup + uid: 5001 + ip: 10.31.127.3 + public_key: "{{ lookup('file', 'tests/data/ssh/client2.pub') }}" diff --git a/roles/backup_server/tests/data/ssh/client1 b/roles/backup_server/tests/data/ssh/client1 new file mode 100644 index 0000000000000000000000000000000000000000..f479da587f71e5feec43afb3a1cdb670a975b558 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/client1 @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEINHLWDWSpuuGgHT5cGpzkPMdnmT493/zqrBSyMOGPPrqoAoGCCqGSM49 +AwEHoUQDQgAE1gEshzmIJDC93lAg7kdjUWeFrI8I26Mvi7IAM37SBfU2a08KMDWR +QvLygMvp6rixo4QRpkUp5lDcl24fybh6xQ== +-----END EC PRIVATE KEY----- \ No newline at end of file diff --git a/roles/backup_server/tests/data/ssh/client1.pub b/roles/backup_server/tests/data/ssh/client1.pub new file mode 100644 index 0000000000000000000000000000000000000000..e4be7aa32385bbb830346bcda281afb5090d7548 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/client1.pub @@ -0,0 +1 @@ +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNYBLIc5iCQwvd5QIO5HY1FnhayPCNujL4uyADN+0gX1NmtPCjA1kULy8oDL6eq4saOEEaZFKeZQ3JduH8m4esU= user@client1 \ No newline at end of file diff --git a/roles/backup_server/tests/data/ssh/client2 b/roles/backup_server/tests/data/ssh/client2 new file mode 100644 index 0000000000000000000000000000000000000000..2ccdeaae319790751cdaef141a29864581c282ca --- /dev/null +++ b/roles/backup_server/tests/data/ssh/client2 @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEICwzh3hupZa3aKFWFwdRosm8kXS6czUWw/sHIvgKWNEcoAoGCCqGSM49 +AwEHoUQDQgAEPh00CkvI6wEACjGfETwsP1RwyekgFsiQl7IvuJ4Nc20GgdvzRw6n +gFDn1F4NkfdJl1Fg2UNLMeXWG4murieuBA== +-----END EC PRIVATE KEY----- \ No newline at end of file diff --git a/roles/backup_server/tests/data/ssh/client2.pub b/roles/backup_server/tests/data/ssh/client2.pub new file mode 100644 index 0000000000000000000000000000000000000000..5929d300519fe13aaa5cbac6d39fef1e85b6cfe3 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/client2.pub @@ -0,0 +1 @@ +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD4dNApLyOsBAAoxnxE8LD9UcMnpIBbIkJeyL7ieDXNtBoHb80cOp4BQ59ReDZH3SZdRYNlDSzHl1huJrq4nrgQ= user@client2 \ No newline at end of file diff --git a/roles/backup_server/tests/data/ssh/known_hosts b/roles/backup_server/tests/data/ssh/known_hosts new file mode 100644 index 0000000000000000000000000000000000000000..8b6b13123fd9d798f9a043ba56c9a78e72fdcda2 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/known_hosts @@ -0,0 +1,8 @@ +[10.31.127.10]:2222 ssh-dss AAAAB3NzaC1kc3MAAACBALf+gfHQnAMOR4N/IjCZlniejPcAkdB6/E8YwiG26aKeRo3x2Q2budFWqJMtbtfcz0++hVAO2LvYYk2uVMe2WoVwWSZGQA4fcGUrs5B4CHTpOl/lHuu3GixNshCz+8ueQDqs/NYp/BdUcU4yIxvUII6+3hB/bkRz8LpczYJKJqVlAAAAFQD6yuMkAdrYcViFtbTciGEytGtBvwAAAIBFUdmJVFPPQd8NynBAkk+eKMUQFR2CcYgD1w/BfT0UP85hL/mYX1Eaiy+U3ylN6g8+RNalQX0IymIYMisXSRPF1gElVpbuCF9VV49c03q/9LfRogV1tRpZeEz9JK5xbBviEnI+kKP8o1ivmIjAVln72lnKdH+t4njma5CBpG9zJQAAAIAYAG/Udg4i/2q8Iemqs5TuP48ge1CxQcyFw4vVl2zr85MPZ24rBf+ZPGy1CsEBpJqHQ5agftMYR9CRcxlqAP44JpIPcSq1NsL59HnXDsdCe/IJjO4JmL1HL+VIcWkXgj0MxGds8hck+HC5lX7jGAKjZBea8ksBZD/Ma2WvYKXpgg== +[10.31.127.10]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2SqbwZNanhTMM8wL1iGtNOR7nYbXcCQNbU65crXN43W1tz4GXoyluHEEXs0we7jmZZyow19X89Ve5w8ODL42KRDtNXoN8wjoLwZ1l7iGsrN1oUXJP7i6i9lH/0F+fudFB3Tm53ieBr0MEMdxAQBpk+MCi64G0iuvZeE0sKG5JfSky82ZZ26m5EchORJuiiKObB17EsUGl091S8eiLXIIiQQvg4d9933oAqNCLe0uxbNfJcbMJAdr+m9rYxyVoPXweUm1beb/6/vZQzAf0HL5+Ic/mbLu3z4httCh0dIlCqjRe/8llqF21psIlN8D8hZkzY6WEo7/v9wHAGFTFFFlJ +[10.31.127.10]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLaZb8xcw5PbzQ8Jo8xygcUaI6ziGLs+ZqsAqJSOIou9iN0zSKO9a4ujbeMgIbfZZPB5UWcv1CxNekTZ4tkrAaM= +[10.31.127.10]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOQzNj16lZ3ucIJvwnFYzR/vZT3SuWiIVPNOhK5JGlq6 +[10.31.127.11]:2222 ssh-dss AAAAB3NzaC1kc3MAAACBALf+gfHQnAMOR4N/IjCZlniejPcAkdB6/E8YwiG26aKeRo3x2Q2budFWqJMtbtfcz0++hVAO2LvYYk2uVMe2WoVwWSZGQA4fcGUrs5B4CHTpOl/lHuu3GixNshCz+8ueQDqs/NYp/BdUcU4yIxvUII6+3hB/bkRz8LpczYJKJqVlAAAAFQD6yuMkAdrYcViFtbTciGEytGtBvwAAAIBFUdmJVFPPQd8NynBAkk+eKMUQFR2CcYgD1w/BfT0UP85hL/mYX1Eaiy+U3ylN6g8+RNalQX0IymIYMisXSRPF1gElVpbuCF9VV49c03q/9LfRogV1tRpZeEz9JK5xbBviEnI+kKP8o1ivmIjAVln72lnKdH+t4njma5CBpG9zJQAAAIAYAG/Udg4i/2q8Iemqs5TuP48ge1CxQcyFw4vVl2zr85MPZ24rBf+ZPGy1CsEBpJqHQ5agftMYR9CRcxlqAP44JpIPcSq1NsL59HnXDsdCe/IJjO4JmL1HL+VIcWkXgj0MxGds8hck+HC5lX7jGAKjZBea8ksBZD/Ma2WvYKXpgg== +[10.31.127.11]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2SqbwZNanhTMM8wL1iGtNOR7nYbXcCQNbU65crXN43W1tz4GXoyluHEEXs0we7jmZZyow19X89Ve5w8ODL42KRDtNXoN8wjoLwZ1l7iGsrN1oUXJP7i6i9lH/0F+fudFB3Tm53ieBr0MEMdxAQBpk+MCi64G0iuvZeE0sKG5JfSky82ZZ26m5EchORJuiiKObB17EsUGl091S8eiLXIIiQQvg4d9933oAqNCLe0uxbNfJcbMJAdr+m9rYxyVoPXweUm1beb/6/vZQzAf0HL5+Ic/mbLu3z4httCh0dIlCqjRe/8llqF21psIlN8D8hZkzY6WEo7/v9wHAGFTFFFlJ +[10.31.127.11]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLaZb8xcw5PbzQ8Jo8xygcUaI6ziGLs+ZqsAqJSOIou9iN0zSKO9a4ujbeMgIbfZZPB5UWcv1CxNekTZ4tkrAaM= +[10.31.127.11]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOQzNj16lZ3ucIJvwnFYzR/vZT3SuWiIVPNOhK5JGlq6 diff --git a/roles/backup_server/tests/data/ssh/server_dsa b/roles/backup_server/tests/data/ssh/server_dsa new file mode 100644 index 0000000000000000000000000000000000000000..d02624d4fff39fd17fcc134898aa8cd340699e88 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/server_dsa @@ -0,0 +1,12 @@ +-----BEGIN DSA PRIVATE KEY----- +MIIBuwIBAAKBgQC3/oHx0JwDDkeDfyIwmZZ4noz3AJHQevxPGMIhtuminkaN8dkN +m7nRVqiTLW7X3M9PvoVQDti72GJNrlTHtlqFcFkmRkAOH3BlK7OQeAh06Tpf5R7r +txosTbIQs/vLnkA6rPzWKfwXVHFOMiMb1CCOvt4Qf25Ec/C6XM2CSialZQIVAPrK +4yQB2thxWIW1tNyIYTK0a0G/AoGARVHZiVRTz0HfDcpwQJJPnijFEBUdgnGIA9cP +wX09FD/OYS/5mF9RGosvlN8pTeoPPkTWpUF9CMpiGDIrF0kTxdYBJVaW7ghfVVeP +XNN6v/S30aIFdbUaWXhM/SSucWwb4hJyPpCj/KNYr5iIwFZZ+9pZynR/reJ45muQ +gaRvcyUCgYAYAG/Udg4i/2q8Iemqs5TuP48ge1CxQcyFw4vVl2zr85MPZ24rBf+Z +PGy1CsEBpJqHQ5agftMYR9CRcxlqAP44JpIPcSq1NsL59HnXDsdCe/IJjO4JmL1H +L+VIcWkXgj0MxGds8hck+HC5lX7jGAKjZBea8ksBZD/Ma2WvYKXpggIVANDGn68D +y8jb/9mLaOM8bd9VFfdC +-----END DSA PRIVATE KEY----- \ No newline at end of file diff --git a/roles/backup_server/tests/data/ssh/server_ecdsa b/roles/backup_server/tests/data/ssh/server_ecdsa new file mode 100644 index 0000000000000000000000000000000000000000..22e62fcf5773fee0cb7b086581dbe53ca0e73345 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/server_ecdsa @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEICsNfHic+b1E8HsU2kXcQNXozt4SHCb9VQC06GvbTkZuoAoGCCqGSM49 +AwEHoUQDQgAEtplvzFzDk9vNDwmjzHKBxRojrOIYuz5mqwColI4ii72I3TNIo71r +i6Nt4yAht9lk8HlRZy/ULE16RNni2SsBow== +-----END EC PRIVATE KEY----- \ No newline at end of file diff --git a/roles/backup_server/tests/data/ssh/server_ed25519 b/roles/backup_server/tests/data/ssh/server_ed25519 new file mode 100644 index 0000000000000000000000000000000000000000..e6ad182ff60b3b234dc1d5fb23573232448143b5 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/server_ed25519 @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACDkMzY9epWd7nCCb8JxWM0f72U90rloiFTzToSuSRpaugAAAJDQ62Z20Otm +dgAAAAtzc2gtZWQyNTUxOQAAACDkMzY9epWd7nCCb8JxWM0f72U90rloiFTzToSuSRpaug +AAAEDvdmF74GsQAOmsWcFWmXsbzdcSoHNbLiTkSWaVp0CtV+QzNj16lZ3ucIJvwnFYzR/v +ZT3SuWiIVPNOhK5JGlq6AAAADGJyYW5rb0BtYXJrcwE= +-----END OPENSSH PRIVATE KEY----- diff --git a/roles/backup_server/tests/data/ssh/server_ed25519.pub b/roles/backup_server/tests/data/ssh/server_ed25519.pub new file mode 100644 index 0000000000000000000000000000000000000000..f658dfaba1ab3cfa6ab80346f1468e6561426eb3 --- /dev/null +++ b/roles/backup_server/tests/data/ssh/server_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOQzNj16lZ3ucIJvwnFYzR/vZT3SuWiIVPNOhK5JGlq6 branko@marks diff --git a/roles/backup_server/tests/data/ssh/server_rsa b/roles/backup_server/tests/data/ssh/server_rsa new file mode 100644 index 0000000000000000000000000000000000000000..a8b3b7720aa6a7af27da156374ac3c483687c4eb --- /dev/null +++ b/roles/backup_server/tests/data/ssh/server_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAtkqm8GTWp4UzDPMC9YhrTTke52G13AkDW1OuXK1zeN1tbc+B +l6MpbhxBF7NMHu45mWcqMNfV/PVXucPDgy+NikQ7TV6DfMI6C8GdZe4hrKzdaFFy +T+4uovZR/9Bfn7nRQd05ud4nga9DBDHcQEAaZPjAouuBtIrr2XhNLChuSX0pMvNm +WdupuRHITkSbooijmwdexLFBpdPdUvHoi1yCIkEL4OHffd96AKjQi3tLsWzXyXGz +CQHa/pva2MclaD18HlJtW3m/+v72UMwH9By+fiHP5my7t8+IbbQodHSJQqo0Xv/J +ZahdtabCJTfA/IWZM2OlhKO/7/cBwBhUxRRZSQIDAQABAoIBAG/EObKuwQWZH4HT +BX9xkwiX+yC2wgAU7p/yILfmCSST7uIjFjvY6DAA1tAnOIbGXT53CGFGFIeyDYVy +R8+JOmkKCKoZRtkZZOmMXmr+pFrw6hdpyILFcIauK/yCz/5ouap+b0RMt0BGKvrJ +b1dddlFuSv4ZEz+U5aJCpl5qs6QONO5Niz69eYM+b+Pz9uRYL1W/hZoQrDUQR8oD +QBUUhnaSACawe8KBGjFp19K3NrEwtWKYQrdENdc7wb+ho3wBQY0CXgjgA3gTMGbk +VLBBqcDlTMbHlOaWT8iUeq+8nJ6ikJTC9LkUjDHZlhM90dHKs3ZOXyAsgm/u5ybM +yTSEgWECgYEA8C2oDFRHrAZrSCLyAdzDZ/tiOksQ/wYZVQirE3p8cAqcpd9Y3T6Z +kK64aCIV+bOunvK0gewmPsc9HN/XfVtr4PlBHDtfERWmSQFwCmnu+a4V/pkfTBWf +SwhUKTExEMdzlPZ+WnHXiiBaPHdOmq2tZr8gEzCyFyQiuplzYBIQHF0CgYEAwkzM +r6I2EWR3NTFTODr6OqFSUs7HenyVQawG4SSsKZ6xIsmUt0EJ6uJRmJx40cC88bRd +AbclJm68mzdP8Nj3fau50tGMogaf1pFykmnwcP35dVriGWuBM0XtDlXOw6A1asz6 +ul9JXuOjZdTtb9uAGn4j3D2sWgJrlSJP/fRVgd0CgYEAsX0b9diGiqLHvyxL6YJq +STplcaytp7irGcLpIeDferDs6EtwUTeEpn3nutSNptTZE49KQ8Tu0m/MQr1MctAP +nda0/hcF/wsfsk3ErX1xY8P5bwdbMI++AuXpw/MdTkgGqyupXk9IuEOGS67jQL1e +KlLNckEHKsDChWEG+RUAIOUCgYAnq9CbB66sbGveg3yvXXNb5zZMzAV0n91FtF8P +NxKjyM/3/1qK9A+XUrBATappgUXSv/XBdOhz6WY+9tMupM4bbaWaQsjJCDs4bygK +dvDt0R1O9ch2UjnmAx/8rk5yKNLfRIzo4q2zXx0snIYCMbn9LsYZoMoA8r+Oipv0 +iR+wTQKBgQCpVCOigFz1pxUxWdbjQicEwug8k7dOtXkWepNqmXXFQTXUQnhsJ4iP +DlDGllPBJasoReRLAnI4OTkbuU1qECnUilVvFnqnuuox3vJ4IWeTdAxcmUAK7+WD +7EYQgHFDybzjEhxXtXGaMSfndAEVwPMRitZMUXaBjnufFW/j/8mrYg== +-----END RSA PRIVATE KEY----- \ No newline at end of file