shellscripts/aws/emr/bootstrap/ba_test.sh

155 lines
3.2 KiB
Bash

#!/bin/bash
set -x
install_jupyter=false
build_vim() {
cd /tmp
git clone http://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
cd /tmp
git clone https://github.com/vim/vim.git
cd vim
./configure \
--with-features=huge \
--enable-cscope \
--enable-pythoninterp \
--enable-luainterp \
--enable-multibyte \
--enable-fontset \
--disable-gui \
--without-x \
--disable-netbeans \
--enable-largefile
make
sudo make install
if [ -e /usr/bin/vi ]; then
sudo rm /usr/bin/vi
fi
sudo ln -s /usr/local/bin/vim /usr/bin/vi
rm -rf /tmp/vim
}
provision_packages() {
sudo yum groupinstall -y "Development Tools"
sudo yum install -y \
tmux \
wget \
htop \
mlocate \
git \
rake \
zsh \
jq \
at \
bind-utils \
strace \
lua \
lua-devel \
ncurses \
ncurses-devel \
gmp \
gmp-devel \
ctags \
tcl-devel \
perl \
perl-devel \
perl-ExtUtils-ParseXS \
perl-ExtUtils-CBuilder \
perl-ExtUtils-Embed
wget https://bootstrap.pypa.io/get-pip.py
sudo python2.7 ./get-pip.py
sudo env "PATH=$PATH" pip install awscli
cd ~
wget https://raw.githubusercontent.com/o0beaner/dotfiles/master/install.sh
chmod +x install.sh
./install.sh
sudo chmod 644 /usr/bin/chsh
sudo chmod +x /usr/bin/chsh
sudo /usr/bin/chsh -s /bin/zsh $USER
sudo updatedb
cd $util_path
wget --no-check-certificate $s3_utils/suntracker.sh
chmod +x $util_path/suntracker.sh
(crontab -l ; echo "0 3 * * * $util_path/suntracker.sh") | crontab -
$util_path/suntracker.sh
touch ~/.zsh.prompts
mkdir ~/.zsh.after/
echo "prompt agnoster" > ~/.zsh.after/prompt.zsh
}
install_ssm() {
cd /tmp
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
}
s3ify_zeppelin() {
cd $util_path
wget --no-check-certificate $s3_utils/configure_zeppelin_s3.sh
chmod +x $util_path/configure_zeppelin_s3.sh
aws emr add-steps --cluster-id $cluster_id --steps Type=CUSTOM_JAR,Name="Configure Zeppelin for S3",Jar="command-runner.jar",Args=[$util_path/configure_zeppelin_s3.sh]
}
install_jupyter() {
cd $util_path
wget --no-check-certificate https://s3.amazonaws.com/aws-bigdata-blog/artifacts/aws-blog-emr-jupyter/install-jupyter-emr5.sh
chmod +x $util_path/install-jupyter-emr5.sh
$util_path/install-jupyter-emr5.sh \
--r \
--julia \
--toree \
--torch \
--ruby \
--ds-packages \
--ml-packages \
--python-packages ggplot nilearn \
--port 8002 \
--password jupyter \
--jupyterhub \
--jupyterhub-port 8001 \
--cached-install \
--notebook-dir s3://ty-emr/XRR/jupyter/notebooks/ \
--copy-samples \
--s3fs
}
# get input parameters
while [ $# -gt 0 ]; do
case "$1" in
--jupyter)
install_jupyter=true
;;
-*)
error_msg "unrecognized option: $1"
;;
*)
break;
;;
esac
shift
done
s3_utils='https://s3.amazonaws.com/ty-emr/XRR/utils'
build_vim=false
util_path="~/.utils"
mkdir -p $util_path
provision_packages &
build_vim &
install_ssm &
is_master=false
if grep isMaster /mnt/var/lib/info/instance.json | grep true;
then
s3ify_zeppelin &
if [ "$install_jupyter" == true ]; then
install_jupyter &
fi
fi