Corrects this crash that occurs at the end of a local (e.g., a new DigitalOcean Ubuntu 16.04.1 x64 droplet) at the "congrats" parsing stage:
TASK [debug] *******************************************************************
fatal: [localhost]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: \"#----------------------------------------------------------------------#\"\n\"# Congratulations! #\"\n\"# Your Algo server is running. #\"\n\"# Config files and certificates are in the ./configs/ directory. #\"\n\"# Go to https://whoer.net/ after connecting #\"\n\"# and ensure that all your traffic passes through the VPN. #\"\n\"# Local DNS resolver and Proxy IP address: {{ local_service_ip }} #\"\n\"# The p12 password is {{ easyrsa_p12_export_password }} #\"\n\"# The CA key password is {{ easyrsa_CA_password }} #\"\n\"# Shell access: ssh -i {{ ansible_ssh_private_key_file }} {{ ansible_ssh_user }}@{{ ansible_ssh_host }} #\"\n\"#----------------------------------------------------------------------#\"\n: 'ansible_ssh_private_key_file' is undefined\n\nThe error appears to have been in '/root/algo/deploy.yml': line 61, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n post_tasks:\n - debug: msg=\"{{ congrats.split('\\n') }}\"\n ^ here\nWe could be wrong, but this one looks like it might be an issue with\nmissing quotes. Always quote template expression brackets when they\nstart a value. For instance:\n\n with_items:\n - {{ foo }}\n\nShould be written as:\n\n with_items:\n - \"{{ foo }}\"\n"}
It was very difficult to satisfy all the library dependencies, particularly for Digital Ocean ("dopy") and pycrypto ("cryptography") on RPM-based distros, particularly with the default version of Python that ships with the 6.x line. These steps allow an end-to-end install (verified on Digital Ocean and EC2) with zero warnings or errors.
Add explicit label for Algo-generated VPNs. If the user has multiple (non-Algo) VPNs for home/office, there is typically a label other than an IP address and "IKEv2". This can be seen, for example, on OSX on the top menu bar for networks.
It's not obvious to new users why some fields display and others are blank when entering values. Absent stars for secrets, this gives a small sanity nudge, and lessens likelihood of double pastes.
I know this is a bit goofy, but the t2.nano is not in the free tier for AWS even though it is smaller than the t2.micro instance. See: https://aws.amazon.com/blogs/aws/ec2-update-t2-nano-instances-now-available/ (the "PS" at the bottom), confirmed on pricing page. The difference is $4.30 per mo vs. free/$8.76 per mo. Maybe add this to config questions, but at least one reviewer has noted this as an issue for his just-setup AWS free account.