#!/bin/bash # here be dragons... see http://fvue.nl/wiki/Bash:_Error_handling set -eux config_fqdn=$(hostname --fqdn) config_domain=$(hostname --domain) echo "127.0.0.1 $config_fqdn" >>/etc/hosts # enable systemd-journald persistent logs. sed -i -E 's,^#?(Storage=).*,\1persistent,' /etc/systemd/journald.conf systemctl restart systemd-journald # disable IPv6. cat >/etc/sysctl.d/98-disable-ipv6.conf <<'EOF' net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 EOF systemctl restart procps sed -i -E 's,(GRUB_CMDLINE_LINUX=.+)",\1 ipv6.disable=1",' /etc/default/grub update-grub2 # update the package cache. apt-get -y update # vim. apt-get install -y --no-install-recommends vim cat >/etc/vim/vimrc.local <<'EOF' syntax on set background=dark set esckeys set ruler set laststatus=2 set nobackup autocmd BufNewFile,BufRead Vagrantfile set ft=ruby EOF # create a self-signed certificate. pushd /etc/ssl/private openssl genrsa \ -out $config_fqdn-keypair.pem \ 2048 \ 2>/dev/null chmod 400 $config_fqdn-keypair.pem openssl req -new \ -sha256 \ -subj "/CN=$config_fqdn" \ -key $config_fqdn-keypair.pem \ -out $config_fqdn-csr.pem openssl x509 -req -sha256 \ -signkey $config_fqdn-keypair.pem \ -extensions a \ -extfile <(echo "[a] subjectAltName=DNS:$config_fqdn extendedKeyUsage=serverAuth ") \ -days 365 \ -in $config_fqdn-csr.pem \ -out $config_fqdn-crt.pem openssl x509 \ -in $config_fqdn-crt.pem \ -outform der \ -out $config_fqdn-crt.der openssl x509 \ -noout \ -text \ -in $config_fqdn-crt.pem # copy the certificate to a place where it can be used by other machines. mkdir -p /vagrant/shared cp $config_fqdn-crt.* /vagrant/shared # configure our system to trust the certificate. cp $config_fqdn-crt.pem /usr/local/share/ca-certificates/$config_fqdn.crt update-ca-certificates -v popd # install and configure nginx to proxy to nexus. # see https://help.sonatype.com/display/NXRM3/Installation#Installation-RunningBehindaReverseProxy apt-get install -y --no-install-recommends nginx rm -f /etc/nginx/sites-enabled/default cat >/etc/nginx/sites-available/$config_fqdn.conf <