Saya menggunakan Ansible, antara lain, untuk mendukung tujuan. Saya menjalankan ansible-playbookdengan pengguna non-root (katakanlah itu user) dan ssh as user. Setelah itu, saya mengatur eskalasi hak istimewa untuk menjadi rootpada setiap server. Hingga saat ini, tidak ada masalah.
Untuk mengambil direktori jarak jauh, saya memiliki sesuatu yang setara dengan aturan berikut:
- synchronize:
mode: pull
delete: true
src: "{{ dir }}/"
dest: "{{ tank_base }}/{{ inventory_hostname }}/{{ dir }}/"
rsync_opts:
- "--exclude=tmp*"
- "--exclude=~*"
- "--exclude=*~"
- "--exclude=.gvfs/"
- "--exclude=.cache/"
tetapi untuk beberapa subdirektori ini memberikan kesalahan berikut (sedikit diedit untuk menyembunyikan data pribadi):
fatal: [server]: GAGAL! => {"diubah": false, "cmd": "/ usr / bin / rsync --delay-update -F --compress --delete-after --archive --rsh 'ssh -S none -o StrictHostKeyChecking = no '--exclude = tmp * --exclude = ~ * --exclude = * ~ --exclude = .gvfs / --exclude = .cache / --out-format =' <>% i% n% L ' \ "server: / var / backup / \" \ "/ var / tank / snapshot / server / backup / \" "," gagal ": true," msg ":" rsync: opendir \ "/ var / backup / subdir \ "gagal: Izin ditolak (13) \ nrsync kesalahan: beberapa file / attr tidak ditransfer (lihat kesalahan sebelumnya) (kode 23) di main.c (1650) [generator = 3.1.2] \ n", "rc" : 23}
Subdirektori yang gagal ( /var/backup/subdirdalam kasus di atas) dimiliki oleh root:rootdan hanya dapat dibaca / ditulis oleh pemilik. Dugaan saya rsyncadalah mencoba untuk menarik file sebagai usergantinya root.
Bagaimana saya bisa menarik direktori-direktori itu tanpa membahayakan keamanan dan mungkin tanpa mengubah apa pun di sisi server? Bagaimanapun eskalasi hak istimewa sudah ada dan berfungsi.
syncmodul ini dapat menggali lalu lintasnya dengan menggunakan kembali koneksi yang sudah ada alih-alih membuat yang baru. Saya akan menggali lebih banyak padadelegate_torute ...