Ansible get_url无法下载受基本身份验证保护的

nva*_*nva 6 ansible ansible-playbook

我正在尝试使用带有get_url模块的远程服务器使用HTTP从受保护的文件下载受保护的文件,但是用户名密码似乎未在请求中传递,因此任务失败。

我正在使用Ansible 1.9.2

这是我正在使用的get_url定义:

- name: Downloading Artifact
  get_url:  
    url: "http://myserver/somefile.tar.gz" 
    dest: "/home/jdoe/somefile.tar.gz"
    url_username: "jdoe"
    url_password: "mysecret"
    mode: 0600
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

failed: [myserver] => {"dest": "/home/jdoe/somefile.tar.gz", "failed": true,
"response": "HTTP Error 403: Forbidden", "state": "absent", 
"status_code": 403, "url": "http://myserver/somefile.tar.gz"}
msg: Request failed
FATAL: all hosts have already failed -- aborting
Run Code Online (Sandbox Code Playgroud)

现在,我尝试使用cURL下载文件,并且可以正常工作。

感谢您的帮助,因为我为此努力了2天。

alf*_*era 2

您可以使用uri模块:

---                                             

- hosts: hostname                                

  tasks:                                        

  - name: "download file"                       
    uri:                                        
      url: "http://somedomain.com/file.json"    
      method: GET                               
      user: "{{ somedomain.user }}"            
      password: "{{ somedomain.password }}"    
      force_basic_auth: yes                    
      dest: /tmp/somedomain.file.json           
      return_content: yes                       
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,可能与 httplib2 库版本有关。