उत्तरदायी एस 3 मॉड्यूल वर्तमान में डिस्क पर बाल्टी को सिंक्रनाइज़ करने के लिए कोई अंतर्निहित तरीका नहीं है।
सिद्धांत रूप में, आप एक
- name: register keys for syncronization
s3:
mode: list
bucket: hosts
object: /data/*
register: s3_bucket_items
- name: sync s3 bucket to disk
s3:
mode=get
bucket=hosts
object={{ item }}
dest=/etc/data/conf/
with_items: s3_bucket_items.s3_keys
साथ डाउनलोड करने के लिए चाबी लेने के लिए जब मैं अक्सर इस समाधान को देखने की कोशिश कर सकते हैं, यह एक के कारण, वर्तमान ansible/Boto संस्करणों के साथ काम करने के लिए प्रतीत नहीं होता नेस्टेड एस 3 'निर्देशिका' के साथ बग (अधिक जानकारी के लिए this bug report देखें), और उत्तरदायी एस 3 मॉड्यूल कुंजी के लिए उपनिर्देशिका नहीं बना रहा है। मेरा मानना है कि यह भी संभव है कि आप बहुत बड़ी बाल्टी को सिंक करते समय इस विधि का उपयोग करके कुछ स्मृति समस्याओं में भाग लेंगे।
मैं यह भी जोड़ना चाहता हूं कि आप अपनी प्लेबुक में कोड किए गए क्रेडेंशियल का उपयोग नहीं करना चाहते हैं - मेरा सुझाव है कि आप इसके बजाय IAM EC2 instance profiles का उपयोग करें, जो अधिक सुरक्षित और आरामदायक हैं।
एक समाधान है कि मेरे लिए काम करता है, इस होगा:
- name: Sync directory from S3 to disk
command: "s3cmd sync -q --no-preserve s3://hosts/{{ item }}/ /etc/data/conf/"
with_items:
- data
स्रोत
2016-12-28 11:20:31
** अद्यतन: ** एक है ansible 2.3 के रूप में s3_sync मॉड्यूल [http://docs.ansible.com/ansible/latest/s3_sync_module.html ](http://docs.ansible.com/ansible/latest/s3_sync_module.html) – Norm1710
@ Norm1710 s3_sync केवल मोड = पुश का समर्थन करता है (अपलोड करें) अब के लिए –