Skip to content

Instantly share code, notes, and snippets.

@kennwhite
Last active May 25, 2017 18:09
Show Gist options
  • Save kennwhite/a7fb49fecac55bd5ad1b to your computer and use it in GitHub Desktop.
Save kennwhite/a7fb49fecac55bd5ad1b to your computer and use it in GitHub Desktop.
Amazon Linux 2015.09 for LetsEncrypt beta installer
#!/bin/bash
#
# Amazon Linux (2015.09.1 x86_64 minimal HVM EBS: ami-fbb9c991)
#
# See: https://gist.github.com/kennwhite/aa74c164bcdf092a7a10 for more background & notes
# The use case is a standalone build on stock distro, then ssh push cert/keys to
# public-facing web server (nginx, etc). IMHO, there are too many dev packages
# required for Internet-exposed production boxes, but your use case may vary.
# If you get stuck, just:
# cd ~/ && rm -rf ./letsencrypt && rm -rf ~/.local/share/letsencrypt
# and try again.
#
# Usage (as root; note the leading space): . amazon_linux_letsencrypt_installer.sh
yum -q -y update
yum -q -y install augeas-devel bzip2 bzip2-devel dialog gcc git libffi-devel make openssl-devel patch python-devel python27-pip readline-devel sqlite sqlite-devel wget zlib-devel
PATH=/usr/local/bin:$PATH
pip install virtualenv
# A little insane, so read and run at your own risk!!!
# This installs pyenv manager to run non-system multiple/parallel versions of python
# (Rationale in short: LE official python client requires very specific versions of libraries)
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# There will be a long pause at the patch update while pyenv compiles 2.7.9
echo 'To monitor build process, from another terminal: tail -f /tmp/$(ls -t /tmp | grep log$ | head -n 1)'
pyenv install 2.7.9
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv global 2.7.9
echo "Next line should show: '2.7.9'"
python -V
# Build LetsEncrypt official client as a standalone
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --agree-dev-preview -d www.EXAMPLE.org --authenticator manual certonly
@philihp
Copy link

philihp commented May 25, 2017

I had to append --no-bootstrap to the end of the last command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment