[英]How to execute a shell script and use the result in ansible
首先,我仍然是一名新手,所以請原諒我的無知。
我不知道這是否可能,但我正在嘗試獲取此命令生成的URL:
curl -s https://api.github.com/repos/Radarr/Radarr/releases | grep linux.tar.gz | grep browser_download_url | head -1 | cut -d \" -f 4
並在游戲中使用它來下載包:
這是我的游戲:
- name: download Radarr
get_url:
url: "{{ Radarr_exe_url }}" #should be the url from above
dest: "{{ Radarr_data_path }}"
become: true
become_user: "{{ Radarr_user_name }}"
notify:
- Restart Radarr service
- name: Get Radar exe url
shell: curl -s https://api.github.com/repos/Radarr/Radarr/releases | grep linux.tar.gz | grep browser_download_url | head -1 | cut -d \" -f 4
register: shell_output
- set_fact:
Radarr_exe_url : "{{ shell_output.stdout }}"
這是純Ansible解決方案,當有模塊可用時調用shell
命令被認為是不好的做法:
- hosts: localhost
gather_facts: no
tasks:
- uri:
url: https://api.github.com/repos/Radarr/Radarr/releases
return_content: yes
body_format: json
changed_when: no
register: radarr_releases
- set_fact:
Radarr_exe_url: "{{ radarr_releases.json | json_query('[0].assets[].browser_download_url') | select('search','linux.tar.gz') | first }}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.