├── README.md ├── basic-ubuntu.sh ├── lamp-phpmyadmin-server.sh ├── lamp-server.sh ├── mean.sh └── ubuntu-rdp.sh /README.md: -------------------------------------------------------------------------------- 1 | ec2-ubuntu-init-scripts 2 | ======================= 3 | 4 | Shell scripts that can be put in user data for Ubuntu servers run in Amazon EC2. 5 | 6 | They were written using the AMIs from http://alestic.com/, which was Ubuntu 15.04 as of this writing. 7 | 8 | -------------------------------------------------------------------------------- /basic-ubuntu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # basic ubuntu15 4 | # 5 | 6 | set -e 7 | set -x 8 | 9 | # Forces output to be sent to syslog 10 | # Taken from https://alestic.com/2010/12/ec2-user-data-output/, 11 | # last access, Feb 7, 2022 12 | exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 13 | 14 | echo "BEGIN USER DATA" 15 | 16 | # Skip prompts 17 | export DEBIAN_FRONTEND=noninteractive 18 | 19 | # Set timezone 20 | sudo timedatectl set-timezone America/New_York 21 | 22 | # fix color of directory, which in PuTTy ends up as dark blue on 23 | # black background 24 | bashrc_append=$(cat <<'EOT' 25 | d=.dircolors 26 | test -r $d && eval "$(dircolors $d)" 27 | EOT 28 | ) 29 | 30 | echo "$bashrc_append" >> /home/ubuntu/.bashrc 31 | dircolors -p > /home/ubuntu/.dircolors 32 | sed -i -e 's/DIR 01;.*/DIR 01;36 # directory/' /home/ubuntu/.dircolors 33 | sudo chown ubuntu:ubuntu /home/ubuntu/.dircolors 34 | 35 | # Upgrade 36 | sudo apt-get update 37 | sudo apt-get upgrade -y 38 | 39 | echo "END USER DATA" 40 | -------------------------------------------------------------------------------- /lamp-phpmyadmin-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # install-lamp-server ubuntu15 4 | # 5 | 6 | set -e 7 | set -x 8 | 9 | exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 10 | 11 | # Skip prompt for the MySQL root password 12 | export DEBIAN_FRONTEND=noninteractive 13 | 14 | # Set timezone 15 | sudo timedatectl set-timezone America/New_York 16 | 17 | # fix color of directory, which in PuTTy ends up as dark blue on 18 | # black background 19 | bashrc_append=$(cat <<'EOT' 20 | d=.dircolors 21 | test -r $d && eval "$(dircolors $d)" 22 | EOT 23 | ) 24 | 25 | echo "$bashrc_append" >> /home/ubuntu/.bashrc 26 | dircolors -p > /home/ubuntu/.dircolors 27 | sed -i -e 's/DIR 01;.*/DIR 01;36 # directory/' /home/ubuntu/.dircolors 28 | sudo chown ubuntu:ubuntu /home/ubuntu/.dircolors 29 | 30 | # Sets up MOTD 31 | motdcontents=$(cat <<'EOT' 32 | #!/bin/bash 33 | 34 | # check to see if mysql is installed 35 | if [ -e /usr/bin/mysql ]; then 36 | # check to see if root password is set 37 | /usr/bin/mysql --no-beep -u root -e "quit" 2>/dev/null 38 | if [ $? -eq "0" ]; then 39 | echo "" 40 | echo "MySQL root password NOT set, change it with mysqladmin -u root password" 41 | fi 42 | else 43 | echo "" 44 | echo "MySQL not finished installing, once it is remember to change root password with mysqladmin -u root password" 45 | fi 46 | EOT 47 | ) 48 | 49 | sudo echo "$motdcontents" >/etc/update-motd.d/80-mysql-remind 50 | sudo chmod a+x /etc/update-motd.d/80-mysql-remind 51 | 52 | # Upgrade 53 | sudo apt-get update 54 | sudo apt-get upgrade -y 55 | 56 | sudo debconf-set-selections <> /home/ubuntu/.bashrc 24 | dircolors -p > /home/ubuntu/.dircolors 25 | sed -i -e 's/DIR 01;.*/DIR 01;36 # directory/' /home/ubuntu/.dircolors 26 | sudo chown ubuntu:ubuntu /home/ubuntu/.dircolors 27 | 28 | # Sets up MOTD 29 | motdcontents=$(cat <<'EOT' 30 | #!/bin/bash 31 | 32 | # check to see if mysql is installed 33 | if [ -e /usr/bin/mysql ]; then 34 | # check to see if root password is set 35 | /usr/bin/mysql --no-beep -u root -e "quit" 2>/dev/null 36 | if [ $? -eq "0" ]; then 37 | echo "" 38 | echo "MySQL root password NOT set, change it with sudo mysqladmin -u root password" 39 | fi 40 | else 41 | echo "" 42 | echo "MySQL not finished installing, once it is remember to change root password with sudo mysqladmin -u root password" 43 | fi 44 | echo "" 45 | echo "Remember that mysql client must be launched as sudo mysql" 46 | EOT 47 | ) 48 | 49 | sudo echo "$motdcontents" >/etc/update-motd.d/80-mysql-remind 50 | sudo chmod a+x /etc/update-motd.d/80-mysql-remind 51 | 52 | # Upgrade 53 | sudo apt-get update 54 | # sudo apt-get upgrade -y 55 | sudo apt-get install tasksel -y 56 | 57 | # Install packages. 58 | tasksel install lamp-server 59 | 60 | sudo chown -R ubuntu:ubuntu /var/www 61 | 62 | -------------------------------------------------------------------------------- /mean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # MEAN server (ubuntu 15) 4 | # 5 | 6 | set -e 7 | set -x 8 | 9 | # Skip prompts 10 | export DEBIAN_FRONTEND=noninteractive 11 | 12 | # Set timezone 13 | sudo timedatectl set-timezone America/New_York 14 | 15 | # fix color of directory, which in PuTTy ends up as dark blue on 16 | # black background 17 | bashrc_append=$(cat <<'EOT' 18 | d=.dircolors 19 | test -r $d && eval "$(dircolors $d)" 20 | EOT 21 | ) 22 | 23 | echo "$bashrc_append" >> /home/ubuntu/.bashrc 24 | dircolors -p > /home/ubuntu/.dircolors 25 | sed -i -e 's/DIR 01;.*/DIR 01;36 # directory/' /home/ubuntu/.dircolors 26 | sudo chown ubuntu:ubuntu /home/ubuntu/.dircolors 27 | 28 | # Add mongo repo and keys 29 | #sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 30 | #echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list 31 | # using debian mongo repo as fix 32 | # for issue in https://jira.mongodb.org/browse/SERVER-17742 33 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 34 | echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list 35 | 36 | # Update packages 37 | sudo apt-get update 38 | 39 | # Install node, npm, and mondo 40 | sudo apt-get install -y npm mongodb-org 41 | # Install n and express 42 | sudo npm install -g n express 43 | # Install latest stable version of node 44 | sudo n stable 45 | 46 | # Start mongo 47 | sudo service mongod start 48 | 49 | # Upgrade 50 | sudo apt-get upgrade -y 51 | 52 | 53 | -------------------------------------------------------------------------------- /ubuntu-rdp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # ubuntu20-rdp 4 | # 5 | #set this to the username of the rdp user you wish 6 | rdpuser="rdpuser" 7 | 8 | set -e 9 | set -x 10 | 11 | # Skip prompts 12 | export DEBIAN_FRONTEND=noninteractive 13 | 14 | # Set timezone 15 | sudo timedatectl set-timezone America/New_York 16 | 17 | # fix color of directory, which in PuTTy ends up as dark blue on 18 | # black background 19 | bashrc_append=$(cat <<'EOT' 20 | d=.dircolors 21 | test -r $d && eval "$(dircolors $d)" 22 | EOT 23 | ) 24 | 25 | echo "$bashrc_append" >> /home/ubuntu/.bashrc 26 | dircolors -p > /home/ubuntu/.dircolors 27 | sed -i -e 's/DIR 01;.*/DIR 01;36 # directory/' /home/ubuntu/.dircolors 28 | sudo chown ubuntu:ubuntu /home/ubuntu/.dircolors 29 | 30 | # Create the remote desktop user 31 | sudo adduser $rdpuser --disabled-login --gecos "" 32 | sudo usermod -aG sudo $rdpuser 33 | 34 | motdcontents=$(cat <