JSON'u URI modülü aracılığıyla çekiyorum ve alınan içeriği bir dosyaya yazmak istiyorum. İçeriği alıp hata ayıklayıcıya gönderebiliyorum, böylece içeriğin alındığını biliyorum, ancak dosya yazmak için en iyi uygulamayı bilmiyorum.
JSON'u URI modülü aracılığıyla çekiyorum ve alınan içeriği bir dosyaya yazmak istiyorum. İçeriği alıp hata ayıklayıcıya gönderebiliyorum, böylece içeriğin alındığını biliyorum, ancak dosya yazmak için en iyi uygulamayı bilmiyorum.
Yanıtlar:
copy
Modülü şu content
parametre ile kullanabilirsiniz :
- copy: content="{{ your_json_feed }}" dest=/path/to/destination/file
Buradaki dokümanlar: kopyalama modülü
template:
modülü kullanabilir ve çalışma zamanında kaydedilen değişkenlerle doldurabilirsiniz.
shahash /path/to/file
(aradaki 2 boşluğa dikkat edin) ve ardından sha256sum -c shafile
Ansible aracılığıyla oluşturduklarınızı komut satırından (aracılığıyla ) doğrulamak istediğinizde daha iyi çalışır .
Ramon'un cevabına göre bir hatayla karşılaştım. JSON'da yazmaya çalıştığım boşlukların sorunu, başucu kitabındaki görevi şöyle görünecek şekilde değiştirerek sorunu çözdüm:
- copy:
content: "{{ your_json_feed }}"
dest: "/path/to/destination/file"
Şimdilik bunun neden gerekli olduğundan emin değilim. En iyi tahminim, değişkenlerin Ansible'da nasıl değiştirildiği ve sonuçta ortaya çıkan dosyanın ayrıştırılmasıyla bir ilgisi olduğu.
Çok küçük dosyalar yazmıyorsanız, muhtemelen şablon kullanmalısınız .
Misal:
- name: copy upstart script
template:
src: myCompany-service.conf.j2
dest: "/etc/init/myCompany-service.conf"
dest
Şimdi seçeneği ile hedef dosyayı direkt olarak belirleyebiliriz . Aşağıdaki örnekte, json çıktısı,/tmp/repo_version_file
- name: Get repository file repo_version model to set ambari_managed_repositories=false
uri:
url: 'http://<server IP>:8080/api/v1/stacks/HDP/versions/3.1/repository_versions/1?fields=operating_systems/*'
method: GET
force_basic_auth: yes
user: xxxxx
password: xxxxx
headers:
"X-Requested-By": "ambari"
"Content-type": "Application/json"
status_code: 200
dest: /tmp/repo_version_file