StreisandEffect / streisand

Streisand sets up a new server running your choice of WireGuard, OpenConnect, OpenSSH, OpenVPN, Shadowsocks, sslh, Stunnel, or a Tor bridge. It also generates custom instructions for all of these services. At the end of the run you are given an HTML file with instructions that can be shared with friends, family members, and fellow activists.
https://twitter.com/streisandvpn
Other
23.17k stars 1.99k forks source link

Failed to complete setting up Streisand on Digital Ocean droplet #1146

Closed marsroverdriver closed 6 years ago

marsroverdriver commented 6 years ago

Expected behavior:

Actual Behavior:

--snip--

TASK [download-and-verify : Download the OpenConnect files and signatures] *****
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'function' object has no attribute 'urlsplit'
failed: [188.166.93.186] (item=https://d25kfp60e9u1dw.cloudfront.net/ocserv-0.11.9.tar.xz) => {"changed": false, "item": "https://d25kfp60e9u1dw.cloudfront.net/ocserv-0.11.9.tar.xz", "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_ZXHAzS/ansible_module_get_url.py\", line 437, in <module>\n    main()\n  File \"/tmp/ansible_ZXHAzS/ansible_module_get_url.py\", line 358, in main\n    filename = url_filename(info['url'])\n  File \"/tmp/ansible_ZXHAzS/ansible_module_get_url.py\", line 192, in url_filename\n    fn = os.path.basename(urlparse.urlsplit(url)[2])\nAttributeError: 'function' object has no attribute 'urlsplit'\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'function' object has no attribute 'urlsplit'
failed: [188.166.93.186] (item=https://d25kfp60e9u1dw.cloudfront.net/ocserv-0.11.9.tar.xz.sig) => {"changed": false, "item": "https://d25kfp60e9u1dw.cloudfront.net/ocserv-0.11.9.tar.xz.sig", "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_Ys9pQC/ansible_module_get_url.py\", line 437, in <module>\n    main()\n  File \"/tmp/ansible_Ys9pQC/ansible_module_get_url.py\", line 358, in main\n    filename = url_filename(info['url'])\n  File \"/tmp/ansible_Ys9pQC/ansible_module_get_url.py\", line 192, in url_filename\n    fn = os.path.basename(urlparse.urlsplit(url)[2])\nAttributeError: 'function' object has no attribute 'urlsplit'\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}

RUNNING HANDLER [ssh : Restart SSH] ********************************************
        to retry, use: --limit @/usr/home/maxwell/tools/streisand/playbooks/digitalocean.retry

PLAY RECAP *********************************************************************
188.166.93.186             : ok=41   changed=29   unreachable=0    failed=1
localhost                  : ok=13   changed=3    unreachable=0    failed=0

--snip--

Steps to Reproduce:

As directed, I cloned the git repo (on a FreeBSD-11.1 box) and ran ./streisand. Most of the procedure seemed to go OK, but it ended with the above error.

I will destroy the droplet and try again.

I did not find this file.

[ contents of streisand-diagnostics.md here ]

Additional Details:

Log output from Ansible or other relevant services (link to Gist for longer output): I think the relevant part is quoted above.

Target Cloud Provider: DO
Operating System of target host: Ubuntu 16.04.3 LTS
Operating System of client: FreeBSD 11.1.
Version of Ansible, using ansible --version : 2.4.2.0
Output from git rev-parse HEAD in your Streisand directory : 236eb73bef1748f5fd92589a6c2a70f44612bb31
marsroverdriver commented 6 years ago

FWIW, this is reproducible: just tried again and got the same result.

I might try to set up at Linode instead, just in case it's different.

marsroverdriver commented 6 years ago

Shoot, setup also failed at Linode:

TASK [genesis-linode : Create the server] **************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (linode) module: alert_bwin_threshold,alert_bwout_threshold,alert_bwquota_threshold,alert_cpu_threshold,alert_diskio_threshold,kernel_id Supported parameters include: api_key,datacenter,distribution,linode_id,name,password,payment_term,plan,ssh_pub_key,state,swap,wait,wait_timeout"}
        to retry, use: --limit @/usr/home/maxwell/tools/streisand/playbooks/linode.retry

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=1   

I'm retrying with --limit @/usr/home/maxwell/tools/streisand/playbooks/digitalocean.retry as suggested in the original (DigitalOcean) error.

marsroverdriver commented 6 years ago

Nope, that didn't help. :-( Looks like the same failure as before.

cpu commented 6 years ago

Hi @marsroverdriver,

Apologies this issue sat unanswered for 10 days. I've been out of the mix on volunteer free software work for a little while.

I just tried to reproduce this issue with a fresh provision in Digital Ocean configured to enable/mirror OpenConnect and didn't encounter the same error. Based on the error message and the cloudfront URL involved I suspect the problem was temporary and has resolved itself.

I'm going to close this issue for now, but if you find that you encounter the same bug with a fresh provision I'd be happy to help dig in more actively.

Thanks!